diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 |
| commit | a98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch) | |
| tree | 542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-moonscript.js | |
| parent | ab355897a12b7bda1089a44de326d41455a0f7a3 (diff) | |
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-moonscript.js')
| -rw-r--r-- | public/prism/prism-moonscript.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/public/prism/prism-moonscript.js b/public/prism/prism-moonscript.js new file mode 100644 index 0000000..c769189 --- /dev/null +++ b/public/prism/prism-moonscript.js @@ -0,0 +1,62 @@ +Prism.languages.moonscript = { + comment: /--.*/, + string: [ + { + pattern: /'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/, + greedy: true, + }, + { + pattern: /"[^"]*"/, + greedy: true, + inside: { + interpolation: { + pattern: /#\{[^{}]*\}/, + inside: { + moonscript: { + pattern: /(^#\{)[\s\S]+(?=\})/, + lookbehind: true, + inside: null, // see beow + }, + 'interpolation-punctuation': { + pattern: /#\{|\}/, + alias: 'punctuation', + }, + }, + }, + }, + }, + ], + 'class-name': [ + { + pattern: /(\b(?:class|extends)[ \t]+)\w+/, + lookbehind: true, + }, + // class-like names start with a capital letter + /\b[A-Z]\w*/, + ], + keyword: + /\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/, + variable: /@@?\w*/, + property: { + pattern: /\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/, + lookbehind: true, + }, + function: { + pattern: + /\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:create|resume|running|status|wrap|yield)|debug\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\b/, + inside: { + punctuation: /\./, + }, + }, + boolean: /\b(?:false|true)\b/, + number: + /(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/, + operator: + /\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/, + punctuation: /[.,()[\]{}\\]/, +}; + +Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside = + Prism.languages.moonscript; + +Prism.languages.moon = Prism.languages.moonscript; |
