vbscript function

Mode vbscript(
  1. Highlight hljs
)

Highlight.js language definition for vbscript.

Implementation

Mode vbscript(Highlight hljs) {
  return Mode(
    name: r'VBScript',
    aliases: [r'vbs'],
    caseInsensitive: true,
    keywords: {
      r'keyword': [
        r'call',
        r'class',
        r'const',
        r'dim',
        r'do',
        r'loop',
        r'erase',
        r'execute',
        r'executeglobal',
        r'exit',
        r'for',
        r'each',
        r'next',
        r'function',
        r'if',
        r'then',
        r'else',
        r'on',
        r'error',
        r'option',
        r'explicit',
        r'new',
        r'private',
        r'property',
        r'let',
        r'get',
        r'public',
        r'randomize',
        r'redim',
        r'rem',
        r'select',
        r'case',
        r'set',
        r'stop',
        r'sub',
        r'while',
        r'wend',
        r'with',
        r'end',
        r'to',
        r'elseif',
        r'is',
        r'or',
        r'xor',
        r'and',
        r'not',
        r'class_initialize',
        r'class_terminate',
        r'default',
        r'preserve',
        r'in',
        r'me',
        r'byval',
        r'byref',
        r'step',
        r'resume',
        r'goto',
      ],
      r'built_in': [
        r'server',
        r'response',
        r'request',
        r'scriptengine',
        r'scriptenginebuildversion',
        r'scriptengineminorversion',
        r'scriptenginemajorversion',
      ],
      r'literal': [r'true', r'false', r'null', r'nothing', r'empty'],
    },
    illegal: r'//',
    contains: [
      Mode(
        begin:
            r'(?:lcase|month|vartype|instrrev|ubound|setlocale|getobject|rgb|getref|string|weekdayname|rnd|dateadd|monthname|now|day|minute|isarray|cbool|round|formatcurrency|conversions|csng|timevalue|second|year|space|abs|clng|timeserial|fixs|len|asc|isempty|maths|dateserial|atn|timer|isobject|filter|weekday|datevalue|ccur|isdate|instr|datediff|formatdatetime|replace|isnull|right|sgn|array|snumeric|log|cdbl|hex|chr|lbound|msgbox|ucase|getlocale|cos|cdate|cbyte|rtrim|join|hour|oct|typename|trim|strcomp|int|createobject|loadpicture|tan|formatnumber|mid|split|cint|sin|datepart|ltrim|sqr|time|derived|eval|date|formatpercent|exp|inputbox|left|ascw|chrw|regexp|cstr|err)\s*\(',
        relevance: 0,
        keywords: {
          r'built_in': [
            r'lcase',
            r'month',
            r'vartype',
            r'instrrev',
            r'ubound',
            r'setlocale',
            r'getobject',
            r'rgb',
            r'getref',
            r'string',
            r'weekdayname',
            r'rnd',
            r'dateadd',
            r'monthname',
            r'now',
            r'day',
            r'minute',
            r'isarray',
            r'cbool',
            r'round',
            r'formatcurrency',
            r'conversions',
            r'csng',
            r'timevalue',
            r'second',
            r'year',
            r'space',
            r'abs',
            r'clng',
            r'timeserial',
            r'fixs',
            r'len',
            r'asc',
            r'isempty',
            r'maths',
            r'dateserial',
            r'atn',
            r'timer',
            r'isobject',
            r'filter',
            r'weekday',
            r'datevalue',
            r'ccur',
            r'isdate',
            r'instr',
            r'datediff',
            r'formatdatetime',
            r'replace',
            r'isnull',
            r'right',
            r'sgn',
            r'array',
            r'snumeric',
            r'log',
            r'cdbl',
            r'hex',
            r'chr',
            r'lbound',
            r'msgbox',
            r'ucase',
            r'getlocale',
            r'cos',
            r'cdate',
            r'cbyte',
            r'rtrim',
            r'join',
            r'hour',
            r'oct',
            r'typename',
            r'trim',
            r'strcomp',
            r'int',
            r'createobject',
            r'loadpicture',
            r'tan',
            r'formatnumber',
            r'mid',
            r'split',
            r'cint',
            r'sin',
            r'datepart',
            r'ltrim',
            r'sqr',
            r'time',
            r'derived',
            r'eval',
            r'date',
            r'formatpercent',
            r'exp',
            r'inputbox',
            r'left',
            r'ascw',
            r'chrw',
            r'regexp',
            r'cstr',
            r'err',
          ],
        },
      ),
      Mode(
        scope: r'string',
        begin: r'"',
        end: r'"',
        illegal: r'\n',
        contains: [Mode(begin: r'""')],
      ),
      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}",
          ),
        ],
        relevance: 0,
      ),
      Mode(
        scope: r'number',
        begin:
            r'(-?)(\b0[xX][a-fA-F0-9]+|(\b\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?)',
        relevance: 0,
      ),
    ],
  );
}