livescript function

Mode livescript(
  1. Highlight hljs
)

Highlight.js language definition for livescript.

Implementation

Mode livescript(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();
  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)*(\.(\d(\d|_\d)*)?)?(_*[eE]([-+]\d(_\d|\d)*)?)?[_a-z]*)';
  mode1.relevance = 0;
  mode1.starts = mode2;
  mode2.end = r'(\s*/)?';
  mode2.relevance = 0;
  mode3.scope = r'string';
  mode3.variants = [mode4, mode6, mode7, mode18, mode19];
  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, mode17];
  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'var',
      r'new',
      r'function',
      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'let',
      r'yield',
      r'const',
      r'class',
      r'debugger',
      r'async',
      r'await',
      r'static',
      r'import',
      r'from',
      r'export',
      r'extends',
      r'using',
      r'then',
      r'unless',
      r'until',
      r'loop',
      r'of',
      r'by',
      r'when',
      r'and',
      r'or',
      r'is',
      r'isnt',
      r'not',
      r'it',
      r'that',
      r'otherwise',
      r'from',
      r'to',
      r'til',
      r'fallthrough',
      r'case',
      r'enum',
      r'native',
      r'list',
      r'map',
      r'__hasProp',
      r'__extends',
      r'__slice',
      r'__bind',
      r'__indexOf',
    ],
    r'literal': [
      r'true',
      r'false',
      r'null',
      r'undefined',
      r'NaN',
      r'Infinity',
      r'yes',
      r'no',
      r'on',
      r'off',
      r'it',
      r'that',
      r'void',
    ],
    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, mode15, mode16];
  mode9.scope = r'regexp';
  mode9.variants = [mode10, mode14];
  mode10.begin = r'//';
  mode10.end = r'//[gim]*';
  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'\/(?![ *])(\\.|[^\\\n])*?\/[gim]*(?=\W)';
  mode15.begin = r'@[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';
  mode16.begin = r'``';
  mode16.end = r'``';
  mode16.excludeBegin = true;
  mode16.excludeEnd = true;
  mode16.subLanguage = r'javascript';
  mode17.scope = r'subst';
  mode17.begin = r'#[A-Za-z$_]';
  mode17.end = r'(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';
  mode17.keywords = {
    r'keyword': [
      r'as',
      r'in',
      r'of',
      r'if',
      r'for',
      r'while',
      r'finally',
      r'var',
      r'new',
      r'function',
      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'let',
      r'yield',
      r'const',
      r'class',
      r'debugger',
      r'async',
      r'await',
      r'static',
      r'import',
      r'from',
      r'export',
      r'extends',
      r'using',
      r'then',
      r'unless',
      r'until',
      r'loop',
      r'of',
      r'by',
      r'when',
      r'and',
      r'or',
      r'is',
      r'isnt',
      r'not',
      r'it',
      r'that',
      r'otherwise',
      r'from',
      r'to',
      r'til',
      r'fallthrough',
      r'case',
      r'enum',
      r'native',
      r'list',
      r'map',
      r'__hasProp',
      r'__extends',
      r'__slice',
      r'__bind',
      r'__indexOf',
    ],
    r'literal': [
      r'true',
      r'false',
      r'null',
      r'undefined',
      r'NaN',
      r'Infinity',
      r'yes',
      r'no',
      r'on',
      r'off',
      r'it',
      r'that',
      r'void',
    ],
    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',
    ],
  };
  mode18.begin = r'"';
  mode18.end = r'"';
  mode18.contains = [mode5, mode8, mode17];
  mode19.begin = r'\\';
  mode19.end = r'(\s|$)';
  mode19.excludeEnd = true;
  return Mode(
    name: r'LiveScript',
    aliases: [r'ls'],
    keywords: {
      r'keyword': [
        r'as',
        r'in',
        r'of',
        r'if',
        r'for',
        r'while',
        r'finally',
        r'var',
        r'new',
        r'function',
        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'let',
        r'yield',
        r'const',
        r'class',
        r'debugger',
        r'async',
        r'await',
        r'static',
        r'import',
        r'from',
        r'export',
        r'extends',
        r'using',
        r'then',
        r'unless',
        r'until',
        r'loop',
        r'of',
        r'by',
        r'when',
        r'and',
        r'or',
        r'is',
        r'isnt',
        r'not',
        r'it',
        r'that',
        r'otherwise',
        r'from',
        r'to',
        r'til',
        r'fallthrough',
        r'case',
        r'enum',
        r'native',
        r'list',
        r'map',
        r'__hasProp',
        r'__extends',
        r'__slice',
        r'__bind',
        r'__indexOf',
      ],
      r'literal': [
        r'true',
        r'false',
        r'null',
        r'undefined',
        r'NaN',
        r'Infinity',
        r'yes',
        r'no',
        r'on',
        r'off',
        r'it',
        r'that',
        r'void',
      ],
      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,
      mode15,
      mode16,
      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(begin: r'(#=>|=>|\|>>|-?->|!->)'),
      Mode(
        scope: r'function',
        contains: [
          Mode(
            scope: r'title',
            begin: r'[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*',
            relevance: 0,
          ),
          Mode(
            scope: r'params',
            begin: r'\(',
            returnBegin: true,
            contains: [
              Mode(
                begin: r'\(',
                end: r'\)',
                keywords: {
                  r'keyword': [
                    r'as',
                    r'in',
                    r'of',
                    r'if',
                    r'for',
                    r'while',
                    r'finally',
                    r'var',
                    r'new',
                    r'function',
                    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'let',
                    r'yield',
                    r'const',
                    r'class',
                    r'debugger',
                    r'async',
                    r'await',
                    r'static',
                    r'import',
                    r'from',
                    r'export',
                    r'extends',
                    r'using',
                    r'then',
                    r'unless',
                    r'until',
                    r'loop',
                    r'of',
                    r'by',
                    r'when',
                    r'and',
                    r'or',
                    r'is',
                    r'isnt',
                    r'not',
                    r'it',
                    r'that',
                    r'otherwise',
                    r'from',
                    r'to',
                    r'til',
                    r'fallthrough',
                    r'case',
                    r'enum',
                    r'native',
                    r'list',
                    r'map',
                    r'__hasProp',
                    r'__extends',
                    r'__slice',
                    r'__bind',
                    r'__indexOf',
                  ],
                  r'literal': [
                    r'true',
                    r'false',
                    r'null',
                    r'undefined',
                    r'NaN',
                    r'Infinity',
                    r'yes',
                    r'no',
                    r'on',
                    r'off',
                    r'it',
                    r'that',
                    r'void',
                  ],
                  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',
                  ],
                },
                contains: [r'self', mode0, mode1, mode3, mode9, mode15, mode16],
              ),
            ],
          ),
        ],
        returnBegin: true,
        variants: [
          Mode(
            begin:
                r'([A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*\s*(?:=|:=)\s*)?(\(.*\)\s*)?\B->\*?',
            end: r'->\*?',
          ),
          Mode(
            begin:
                r'([A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*\s*(?:=|:=)\s*)?!?(\(.*\)\s*)?\B[-~]{1,2}>\*?',
            end: r'[-~]{1,2}>\*?',
          ),
          Mode(
            begin:
                r'([A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*\s*(?:=|:=)\s*)?(\(.*\)\s*)?\B!?[-~]{1,2}>\*?',
            end: r'!?[-~]{1,2}>\*?',
          ),
        ],
      ),
      Mode(
        variants: [
          Mode(
            match: [
              r'class\s+',
              r'[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*',
              r'\s+extends\s+',
              r'[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*',
            ],
          ),
          Mode(
            match: [
              r'class\s+',
              r'[A-Za-z$_](?:-[0-9A-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'var',
            r'new',
            r'function',
            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'let',
            r'yield',
            r'const',
            r'class',
            r'debugger',
            r'async',
            r'await',
            r'static',
            r'import',
            r'from',
            r'export',
            r'extends',
            r'using',
            r'then',
            r'unless',
            r'until',
            r'loop',
            r'of',
            r'by',
            r'when',
            r'and',
            r'or',
            r'is',
            r'isnt',
            r'not',
            r'it',
            r'that',
            r'otherwise',
            r'from',
            r'to',
            r'til',
            r'fallthrough',
            r'case',
            r'enum',
            r'native',
            r'list',
            r'map',
            r'__hasProp',
            r'__extends',
            r'__slice',
            r'__bind',
            r'__indexOf',
          ],
          r'literal': [
            r'true',
            r'false',
            r'null',
            r'undefined',
            r'NaN',
            r'Infinity',
            r'yes',
            r'no',
            r'on',
            r'off',
            r'it',
            r'that',
            r'void',
          ],
          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$_]|[0-9A-Za-z$_])*:',
        end: r':',
        returnBegin: true,
        returnEnd: true,
        relevance: 0,
      ),
    ],
  );
}