first commit
This commit is contained in:
189
app_vue/node_modules/highlight.js/lib/languages/applescript.js
generated
vendored
Normal file
189
app_vue/node_modules/highlight.js/lib/languages/applescript.js
generated
vendored
Normal file
@ -0,0 +1,189 @@
|
||||
/**
|
||||
* @param {string} value
|
||||
* @returns {RegExp}
|
||||
* */
|
||||
|
||||
/**
|
||||
* @param {RegExp | string } re
|
||||
* @returns {string}
|
||||
*/
|
||||
function source(re) {
|
||||
if (!re) return null;
|
||||
if (typeof re === "string") return re;
|
||||
|
||||
return re.source;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {...(RegExp | string) } args
|
||||
* @returns {string}
|
||||
*/
|
||||
function concat(...args) {
|
||||
const joined = args.map((x) => source(x)).join("");
|
||||
return joined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Any of the passed expresssions may match
|
||||
*
|
||||
* Creates a huge this | this | that | that match
|
||||
* @param {(RegExp | string)[] } args
|
||||
* @returns {string}
|
||||
*/
|
||||
function either(...args) {
|
||||
const joined = '(' + args.map((x) => source(x)).join("|") + ")";
|
||||
return joined;
|
||||
}
|
||||
|
||||
/*
|
||||
Language: AppleScript
|
||||
Authors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>
|
||||
Category: scripting
|
||||
Website: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html
|
||||
Audit: 2020
|
||||
*/
|
||||
|
||||
/** @type LanguageFn */
|
||||
function applescript(hljs) {
|
||||
const STRING = hljs.inherit(
|
||||
hljs.QUOTE_STRING_MODE, {
|
||||
illegal: null
|
||||
});
|
||||
const PARAMS = {
|
||||
className: 'params',
|
||||
begin: /\(/,
|
||||
end: /\)/,
|
||||
contains: [
|
||||
'self',
|
||||
hljs.C_NUMBER_MODE,
|
||||
STRING
|
||||
]
|
||||
};
|
||||
const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);
|
||||
const COMMENT_MODE_2 = hljs.COMMENT(
|
||||
/\(\*/,
|
||||
/\*\)/,
|
||||
{
|
||||
contains: [
|
||||
'self', // allow nesting
|
||||
COMMENT_MODE_1
|
||||
]
|
||||
}
|
||||
);
|
||||
const COMMENTS = [
|
||||
COMMENT_MODE_1,
|
||||
COMMENT_MODE_2,
|
||||
hljs.HASH_COMMENT_MODE
|
||||
];
|
||||
|
||||
const KEYWORD_PATTERNS = [
|
||||
/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)/,
|
||||
/POSIX (file|path)/,
|
||||
/(date|time) string/,
|
||||
/quoted form/
|
||||
];
|
||||
|
||||
const BUILT_IN_PATTERNS = [
|
||||
/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)/
|
||||
];
|
||||
|
||||
return {
|
||||
name: 'AppleScript',
|
||||
aliases: [ 'osascript' ],
|
||||
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|0 then third through thru ' +
|
||||
'timeout times to transaction try until where while whose with ' +
|
||||
'without',
|
||||
literal:
|
||||
'AppleScript false linefeed return pi quote result space tab true',
|
||||
built_in:
|
||||
'alias application boolean class constant date file integer list ' +
|
||||
'number real record string text ' +
|
||||
'activate beep count delay launch log offset read round ' +
|
||||
'run say summarize write ' +
|
||||
'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: 'built_in',
|
||||
begin: concat(
|
||||
/\b/,
|
||||
either(...BUILT_IN_PATTERNS),
|
||||
/\b/
|
||||
)
|
||||
},
|
||||
{
|
||||
className: 'built_in',
|
||||
begin: /^\s*return\b/
|
||||
},
|
||||
{
|
||||
className: 'literal',
|
||||
begin:
|
||||
/\b(text item delimiters|current application|missing value)\b/
|
||||
},
|
||||
{
|
||||
className: 'keyword',
|
||||
begin: concat(
|
||||
/\b/,
|
||||
either(...KEYWORD_PATTERNS),
|
||||
/\b/
|
||||
)
|
||||
},
|
||||
{
|
||||
beginKeywords: 'on',
|
||||
illegal: /[${=;\n]/,
|
||||
contains: [
|
||||
hljs.UNDERSCORE_TITLE_MODE,
|
||||
PARAMS
|
||||
]
|
||||
},
|
||||
...COMMENTS
|
||||
],
|
||||
illegal: /\/\/|->|=>|\[\[/
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = applescript;
|
Reference in New Issue
Block a user