coffeescript function
Highlight.js language definition for coffeescript.
Implementation
Mode coffeescript(Highlight hljs) {
final Mode mode0 = Mode();
final Mode mode1 = Mode();
final Mode mode2 = Mode();
final Mode mode3 = Mode();
final Mode mode4 = Mode();
final Mode mode5 = Mode();
final Mode mode6 = Mode();
final Mode mode7 = Mode();
final Mode mode8 = Mode();
final Mode mode9 = Mode();
final Mode mode10 = Mode();
final Mode mode11 = Mode();
final Mode mode12 = Mode();
final Mode mode13 = Mode();
final Mode mode14 = Mode();
final Mode mode15 = Mode();
final Mode mode16 = Mode();
final Mode mode17 = Mode();
final Mode mode18 = Mode();
final Mode mode19 = Mode();
final Mode mode20 = Mode();
final Mode mode21 = Mode();
final Mode mode22 = Mode();
mode0.scope = r'number';
mode0.begin = r'\b(0b[01]+)';
mode0.relevance = 0;
mode1.scope = r'number';
mode1.begin =
r'(-?)(\b0[xX][a-fA-F0-9]+|(\b\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?)';
mode1.relevance = 0;
mode1.starts = mode2;
mode2.end = r'(\s*/)?';
mode2.relevance = 0;
mode3.scope = r'string';
mode3.variants = [mode4, mode6, mode7, mode20];
mode4.begin = r"'''";
mode4.end = r"'''";
mode4.contains = [mode5];
mode5.begin = r'\\[\s\S]';
mode5.relevance = 0;
mode6.begin = r"'";
mode6.end = r"'";
mode6.contains = [mode5];
mode7.begin = r'"""';
mode7.end = r'"""';
mode7.contains = [mode5, mode8];
mode8.scope = r'subst';
mode8.begin = r'#\{';
mode8.end = r'\}';
mode8.keywords = {
r'keyword': [
r'as',
r'in',
r'of',
r'if',
r'for',
r'while',
r'finally',
r'new',
r'do',
r'return',
r'void',
r'else',
r'break',
r'catch',
r'instanceof',
r'with',
r'throw',
r'case',
r'default',
r'try',
r'switch',
r'continue',
r'typeof',
r'delete',
r'yield',
r'class',
r'debugger',
r'async',
r'await',
r'import',
r'from',
r'export',
r'extends',
r'using',
r'then',
r'unless',
r'until',
r'loop',
r'by',
r'when',
r'and',
r'or',
r'is',
r'isnt',
r'not',
],
r'literal': [
r'true',
r'false',
r'null',
r'undefined',
r'NaN',
r'Infinity',
r'yes',
r'no',
r'on',
r'off',
],
r'built_in': [
r'setInterval',
r'setTimeout',
r'clearInterval',
r'clearTimeout',
r'require',
r'exports',
r'eval',
r'isFinite',
r'isNaN',
r'parseFloat',
r'parseInt',
r'decodeURI',
r'decodeURIComponent',
r'encodeURI',
r'encodeURIComponent',
r'escape',
r'unescape',
r'Object',
r'Function',
r'Boolean',
r'Symbol',
r'Math',
r'Date',
r'Number',
r'BigInt',
r'String',
r'RegExp',
r'Array',
r'Float32Array',
r'Float64Array',
r'Int8Array',
r'Uint8Array',
r'Uint8ClampedArray',
r'Int16Array',
r'Int32Array',
r'Uint16Array',
r'Uint32Array',
r'BigInt64Array',
r'BigUint64Array',
r'Set',
r'Map',
r'WeakSet',
r'WeakMap',
r'ArrayBuffer',
r'SharedArrayBuffer',
r'Atomics',
r'DataView',
r'JSON',
r'Promise',
r'Generator',
r'GeneratorFunction',
r'AsyncFunction',
r'Reflect',
r'Proxy',
r'Intl',
r'WebAssembly',
r'Error',
r'EvalError',
r'InternalError',
r'RangeError',
r'ReferenceError',
r'SyntaxError',
r'TypeError',
r'URIError',
r'npm',
r'print',
],
};
mode8.contains = [mode0, mode1, mode3, mode9, mode16, mode17];
mode9.scope = r'regexp';
mode9.variants = [mode10, mode14, mode15];
mode10.begin = r'///';
mode10.end = r'///';
mode10.contains = [mode8, mode11];
mode11.scope = r'comment';
mode11.begin = r'#';
mode11.end = r'$';
mode11.contains = [mode12, mode13];
mode12.scope = r'doctag';
mode12.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
mode12.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
mode12.excludeBegin = true;
mode12.relevance = 0;
mode13.begin =
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
mode14.begin = r'//[gim]{0,3}(?=\W)';
mode14.relevance = 0;
mode15.begin = r'\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)';
mode16.begin = r'@[A-Za-z$_][0-9A-Za-z$_]*';
mode17.subLanguage = r'javascript';
mode17.excludeBegin = true;
mode17.excludeEnd = true;
mode17.variants = [mode18, mode19];
mode18.begin = r'```';
mode18.end = r'```';
mode19.begin = r'`';
mode19.end = r'`';
mode20.begin = r'"';
mode20.end = r'"';
mode20.contains = [mode5, mode8];
mode21.scope = r'params';
mode21.begin = r'\([^\(]';
mode21.returnBegin = true;
mode21.contains = [mode22];
mode22.begin = r'\(';
mode22.end = r'\)';
mode22.keywords = {
r'keyword': [
r'as',
r'in',
r'of',
r'if',
r'for',
r'while',
r'finally',
r'new',
r'do',
r'return',
r'void',
r'else',
r'break',
r'catch',
r'instanceof',
r'with',
r'throw',
r'case',
r'default',
r'try',
r'switch',
r'continue',
r'typeof',
r'delete',
r'yield',
r'class',
r'debugger',
r'async',
r'await',
r'import',
r'from',
r'export',
r'extends',
r'using',
r'then',
r'unless',
r'until',
r'loop',
r'by',
r'when',
r'and',
r'or',
r'is',
r'isnt',
r'not',
],
r'literal': [
r'true',
r'false',
r'null',
r'undefined',
r'NaN',
r'Infinity',
r'yes',
r'no',
r'on',
r'off',
],
r'built_in': [
r'setInterval',
r'setTimeout',
r'clearInterval',
r'clearTimeout',
r'require',
r'exports',
r'eval',
r'isFinite',
r'isNaN',
r'parseFloat',
r'parseInt',
r'decodeURI',
r'decodeURIComponent',
r'encodeURI',
r'encodeURIComponent',
r'escape',
r'unescape',
r'Object',
r'Function',
r'Boolean',
r'Symbol',
r'Math',
r'Date',
r'Number',
r'BigInt',
r'String',
r'RegExp',
r'Array',
r'Float32Array',
r'Float64Array',
r'Int8Array',
r'Uint8Array',
r'Uint8ClampedArray',
r'Int16Array',
r'Int32Array',
r'Uint16Array',
r'Uint32Array',
r'BigInt64Array',
r'BigUint64Array',
r'Set',
r'Map',
r'WeakSet',
r'WeakMap',
r'ArrayBuffer',
r'SharedArrayBuffer',
r'Atomics',
r'DataView',
r'JSON',
r'Promise',
r'Generator',
r'GeneratorFunction',
r'AsyncFunction',
r'Reflect',
r'Proxy',
r'Intl',
r'WebAssembly',
r'Error',
r'EvalError',
r'InternalError',
r'RangeError',
r'ReferenceError',
r'SyntaxError',
r'TypeError',
r'URIError',
r'npm',
r'print',
],
};
mode22.contains = [r'self', mode0, mode1, mode3, mode9, mode16, mode17];
return Mode(
name: r'CoffeeScript',
aliases: [r'coffee', r'cson', r'iced'],
keywords: {
r'keyword': [
r'as',
r'in',
r'of',
r'if',
r'for',
r'while',
r'finally',
r'new',
r'do',
r'return',
r'void',
r'else',
r'break',
r'catch',
r'instanceof',
r'with',
r'throw',
r'case',
r'default',
r'try',
r'switch',
r'continue',
r'typeof',
r'delete',
r'yield',
r'class',
r'debugger',
r'async',
r'await',
r'import',
r'from',
r'export',
r'extends',
r'using',
r'then',
r'unless',
r'until',
r'loop',
r'by',
r'when',
r'and',
r'or',
r'is',
r'isnt',
r'not',
],
r'literal': [
r'true',
r'false',
r'null',
r'undefined',
r'NaN',
r'Infinity',
r'yes',
r'no',
r'on',
r'off',
],
r'built_in': [
r'setInterval',
r'setTimeout',
r'clearInterval',
r'clearTimeout',
r'require',
r'exports',
r'eval',
r'isFinite',
r'isNaN',
r'parseFloat',
r'parseInt',
r'decodeURI',
r'decodeURIComponent',
r'encodeURI',
r'encodeURIComponent',
r'escape',
r'unescape',
r'Object',
r'Function',
r'Boolean',
r'Symbol',
r'Math',
r'Date',
r'Number',
r'BigInt',
r'String',
r'RegExp',
r'Array',
r'Float32Array',
r'Float64Array',
r'Int8Array',
r'Uint8Array',
r'Uint8ClampedArray',
r'Int16Array',
r'Int32Array',
r'Uint16Array',
r'Uint32Array',
r'BigInt64Array',
r'BigUint64Array',
r'Set',
r'Map',
r'WeakSet',
r'WeakMap',
r'ArrayBuffer',
r'SharedArrayBuffer',
r'Atomics',
r'DataView',
r'JSON',
r'Promise',
r'Generator',
r'GeneratorFunction',
r'AsyncFunction',
r'Reflect',
r'Proxy',
r'Intl',
r'WebAssembly',
r'Error',
r'EvalError',
r'InternalError',
r'RangeError',
r'ReferenceError',
r'SyntaxError',
r'TypeError',
r'URIError',
r'npm',
r'print',
],
},
illegal: r'\/\*',
contains: [
mode0,
mode1,
mode3,
mode9,
mode16,
mode17,
Mode(
scope: r'comment',
begin: r'###',
end: r'###',
contains: [
Mode(
scope: r'doctag',
begin: r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',
end: r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
),
mode11,
Mode(
scope: r'function',
begin: r'^\s*[A-Za-z$_][0-9A-Za-z$_]*\s*=\s*(\(.*\)\s*)?\B[-=]>',
end: r'[-=]>',
returnBegin: true,
contains: [
Mode(
scope: r'title',
begin: r'[A-Za-z$_][0-9A-Za-z$_]*',
relevance: 0,
),
mode21,
],
),
Mode(
begin: r'[:\(,=]\s*',
relevance: 0,
contains: [
Mode(
scope: r'function',
begin: r'(\(.*\)\s*)?\B[-=]>',
end: r'[-=]>',
returnBegin: true,
contains: [mode21],
),
],
),
Mode(
variants: [
Mode(
match: [
r'class\s+',
r'[A-Za-z$_][0-9A-Za-z$_]*',
r'\s+extends\s+',
r'[A-Za-z$_][0-9A-Za-z$_]*',
],
),
Mode(match: [r'class\s+', r'[A-Za-z$_][0-9A-Za-z$_]*']),
],
scope: {2: r'title.class', 4: r'title.class.inherited'},
keywords: {
r'keyword': [
r'as',
r'in',
r'of',
r'if',
r'for',
r'while',
r'finally',
r'new',
r'do',
r'return',
r'void',
r'else',
r'break',
r'catch',
r'instanceof',
r'with',
r'throw',
r'case',
r'default',
r'try',
r'switch',
r'continue',
r'typeof',
r'delete',
r'yield',
r'class',
r'debugger',
r'async',
r'await',
r'import',
r'from',
r'export',
r'extends',
r'using',
r'then',
r'unless',
r'until',
r'loop',
r'by',
r'when',
r'and',
r'or',
r'is',
r'isnt',
r'not',
],
r'literal': [
r'true',
r'false',
r'null',
r'undefined',
r'NaN',
r'Infinity',
r'yes',
r'no',
r'on',
r'off',
],
r'built_in': [
r'setInterval',
r'setTimeout',
r'clearInterval',
r'clearTimeout',
r'require',
r'exports',
r'eval',
r'isFinite',
r'isNaN',
r'parseFloat',
r'parseInt',
r'decodeURI',
r'decodeURIComponent',
r'encodeURI',
r'encodeURIComponent',
r'escape',
r'unescape',
r'Object',
r'Function',
r'Boolean',
r'Symbol',
r'Math',
r'Date',
r'Number',
r'BigInt',
r'String',
r'RegExp',
r'Array',
r'Float32Array',
r'Float64Array',
r'Int8Array',
r'Uint8Array',
r'Uint8ClampedArray',
r'Int16Array',
r'Int32Array',
r'Uint16Array',
r'Uint32Array',
r'BigInt64Array',
r'BigUint64Array',
r'Set',
r'Map',
r'WeakSet',
r'WeakMap',
r'ArrayBuffer',
r'SharedArrayBuffer',
r'Atomics',
r'DataView',
r'JSON',
r'Promise',
r'Generator',
r'GeneratorFunction',
r'AsyncFunction',
r'Reflect',
r'Proxy',
r'Intl',
r'WebAssembly',
r'Error',
r'EvalError',
r'InternalError',
r'RangeError',
r'ReferenceError',
r'SyntaxError',
r'TypeError',
r'URIError',
r'npm',
r'print',
],
},
),
Mode(
begin: r'[A-Za-z$_][0-9A-Za-z$_]*:',
end: r':',
returnBegin: true,
returnEnd: true,
relevance: 0,
),
],
);
}