aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-supercollider.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-10-13 19:32:56 +0200
committerArmand Philippot <git@armandphilippot.com>2023-11-11 18:14:41 +0100
commit006b15b467a5cd835a6eab1b49023100bdc8f2e6 (patch)
tree949c7295c2e206f42357f135bab4696ddf6576ec /public/prism/prism-supercollider.js
parent00f147a7a687d5772bcc538bc606cfff972178cd (diff)
refactor(components): rewrite Code component and usePrism hook
* move Prism styles to Sass placeholders to avoid repeats * let usePrism consumer define its plugins (remove default ones) * remove `plugins` prop from Code component * add new props to Code component to let consumer configure plugins (and handle plugin list from the given options) However there are some problems with Prism plugins: line-highlight and treeview does not seems to be loaded. I don't want to use Babel instead of SWC so I have no solution for now.
Diffstat (limited to 'public/prism/prism-supercollider.js')
-rw-r--r--public/prism/prism-supercollider.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/public/prism/prism-supercollider.js b/public/prism/prism-supercollider.js
new file mode 100644
index 0000000..b31d2ce
--- /dev/null
+++ b/public/prism/prism-supercollider.js
@@ -0,0 +1,39 @@
+Prism.languages.supercollider = {
+ comment: {
+ pattern:
+ /\/\/.*|\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\//,
+ greedy: true,
+ },
+ string: {
+ pattern: /(^|[^\\])"(?:[^"\\]|\\[\s\S])*"/,
+ lookbehind: true,
+ greedy: true,
+ },
+ char: {
+ pattern: /\$(?:[^\\\r\n]|\\.)/,
+ greedy: true,
+ },
+ symbol: {
+ pattern: /(^|[^\\])'(?:[^'\\]|\\[\s\S])*'|\\\w+/,
+ lookbehind: true,
+ greedy: true,
+ },
+
+ keyword: /\b(?:_|arg|classvar|const|nil|var|while)\b/,
+ boolean: /\b(?:false|true)\b/,
+
+ label: {
+ pattern: /\b[a-z_]\w*(?=\s*:)/,
+ alias: 'property',
+ },
+
+ number:
+ /\b(?:inf|pi|0x[0-9a-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(?:pi)?|\d+r[0-9a-zA-Z]+(?:\.[0-9a-zA-Z]+)?|\d+[sb]{1,4}\d*)\b/,
+ 'class-name': /\b[A-Z]\w*\b/,
+
+ operator:
+ /\.{2,3}|#(?![[{])|&&|[!=]==?|\+>>|\+{1,3}|-[->]|=>|>>|\?\?|@\|?@|\|(?:@|[!=]=)?\||!\?|<[!=>]|\*{1,2}|<{2,3}\*?|[-!%&/<>?@|=`]/,
+ punctuation: /[{}()[\].:,;]|#[[{]/,
+};
+
+Prism.languages.sclang = Prism.languages.supercollider;