UNPKG

refractor

Version:

Lightweight, robust, elegant virtual syntax highlighting using Prism

42 lines (40 loc) 1.27 kB
'use strict'; module.exports = autoit; autoit.displayName = 'autoit'; autoit.aliases = []; function autoit(Prism) { Prism.languages.autoit = { comment: [ /;.*/, { // The multi-line comments delimiters can actually be commented out with ";" pattern: /(^\s*)#(?:comments-start|cs)[\s\S]*?^\s*#(?:comments-end|ce)/m, lookbehind: true } ], url: { pattern: /(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m, lookbehind: true }, string: { pattern: /(["'])(?:\1\1|(?!\1)[^\r\n])*\1/, greedy: true, inside: { variable: /([%$@])\w+\1/ } }, directive: { pattern: /(^\s*)#\w+/m, lookbehind: true, alias: 'keyword' }, function: /\b\w+(?=\()/, // Variables and macros variable: /[$@]\w+/, keyword: /\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i, number: /\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i, boolean: /\b(?:True|False)\b/i, operator: /<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i, punctuation: /[\[\]().,:]/ }; }