37 lines
989 B
JavaScript
37 lines
989 B
JavaScript
|
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;
|