-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapplescript.js
98 lines (97 loc) · 3.38 KB
/
applescript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
module.exports = function(hljs) {
var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''});
var TITLE = {
className: 'title', begin: hljs.UNDERSCORE_IDENT_RE
};
var PARAMS = {
className: 'params',
begin: '\\(', end: '\\)',
contains: ['self', hljs.C_NUMBER_MODE, STRING]
};
var COMMENTS = [
{
className: 'comment',
begin: '--', end: '$',
},
{
className: 'comment',
begin: '\\(\\*', end: '\\*\\)',
contains: ['self', {begin: '--', end: '$'}] //allow nesting
},
hljs.HASH_COMMENT_MODE
];
return {
keywords: {
keyword:
'about above after against and around as at back before beginning ' +
'behind below beneath beside between but by considering ' +
'contain contains continue copy div does eighth else end equal ' +
'equals error every exit fifth first for fourth from front ' +
'get given global if ignoring in into is it its last local me ' +
'middle mod my ninth not of on onto or over prop property put ref ' +
'reference repeat returning script second set seventh since ' +
'sixth some tell tenth that the then third through thru ' +
'timeout times to transaction try until where while whose with ' +
'without',
constant:
'AppleScript false linefeed return pi quote result space tab true',
type:
'alias application boolean class constant date file integer list ' +
'number real record string text',
command:
'activate beep count delay launch log offset read round ' +
'run say summarize write',
property:
'character characters contents day frontmost id item length ' +
'month name paragraph paragraphs rest reverse running time version ' +
'weekday word words year'
},
contains: [
STRING,
hljs.C_NUMBER_MODE,
{
className: 'type',
begin: '\\bPOSIX file\\b'
},
{
className: 'command',
begin:
'\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +
'mount volume|path to|(close|open for) access|(get|set) eof|' +
'current date|do shell script|get volume settings|random number|' +
'set volume|system attribute|system info|time to GMT|' +
'(load|run|store) script|scripting components|' +
'ASCII (character|number)|localized string|' +
'choose (application|color|file|file name|' +
'folder|from list|remote application|URL)|' +
'display (alert|dialog))\\b|^\\s*return\\b'
},
{
className: 'constant',
begin:
'\\b(text item delimiters|current application|missing value)\\b'
},
{
className: 'keyword',
begin:
'\\b(apart from|aside from|instead of|out of|greater than|' +
"isn't|(doesn't|does not) (equal|come before|come after|contain)|" +
'(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +
'contained by|comes (before|after)|a (ref|reference))\\b'
},
{
className: 'property',
begin:
'\\b(POSIX path|(date|time) string|quoted form)\\b'
},
{
className: 'function_start',
beginWithKeyword: true,
keywords: 'on',
illegal: '[${=;\\n]',
contains: [TITLE, PARAMS]
}
].concat(COMMENTS),
illegal: '//'
};
};