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-squirrel.js | |
| parent | ab355897a12b7bda1089a44de326d41455a0f7a3 (diff) | |
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-squirrel.js')
| -rw-r--r-- | public/prism/prism-squirrel.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/public/prism/prism-squirrel.js b/public/prism/prism-squirrel.js new file mode 100644 index 0000000..b146b1b --- /dev/null +++ b/public/prism/prism-squirrel.js @@ -0,0 +1,48 @@ +Prism.languages.squirrel = Prism.languages.extend('clike', { + comment: [ + Prism.languages.clike['comment'][0], + { + pattern: /(^|[^\\:])(?:\/\/|#).*/, + lookbehind: true, + greedy: true, + }, + ], + string: { + pattern: /(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/, + lookbehind: true, + greedy: true, + }, + + 'class-name': { + pattern: /(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/, + lookbehind: true, + inside: { + punctuation: /\./, + }, + }, + keyword: + /\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\b/, + + number: /\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/, + operator: /\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/, + punctuation: /[(){}\[\],;.]/, +}); + +Prism.languages.insertBefore('squirrel', 'string', { + char: { + pattern: /(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/, + lookbehind: true, + greedy: true, + }, +}); + +Prism.languages.insertBefore('squirrel', 'operator', { + 'attribute-punctuation': { + pattern: /<\/|\/>/, + alias: 'important', + }, + lambda: { + pattern: /@(?=\()/, + alias: 'operator', + }, +}); |
