summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-squirrel.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/prism/prism-squirrel.js')
-rw-r--r--public/prism/prism-squirrel.js48
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',
+ },
+});