diff options
Diffstat (limited to 'public/prism/prism-scala.js')
| -rw-r--r-- | public/prism/prism-scala.js | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/public/prism/prism-scala.js b/public/prism/prism-scala.js index 2cb037e..abb6b81 100644 --- a/public/prism/prism-scala.js +++ b/public/prism/prism-scala.js @@ -9,12 +9,46 @@ Prism.languages.scala = Prism.languages.extend('java', { greedy: true, }, keyword: - /<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/, + /<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/, number: /\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i, builtin: /\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/, symbol: /'[^\d\s\\]\w*/, }); + +Prism.languages.insertBefore('scala', 'triple-quoted-string', { + 'string-interpolation': { + pattern: + /\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i, + greedy: true, + inside: { + id: { + pattern: /^\w+/, + greedy: true, + alias: 'function', + }, + escape: { + pattern: /\\\$"|\$[$"]/, + greedy: true, + alias: 'symbol', + }, + interpolation: { + pattern: /\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/, + greedy: true, + inside: { + punctuation: /^\$\{?|\}$/, + expression: { + pattern: /[\s\S]+/, + inside: Prism.languages.scala, + }, + }, + }, + string: /[\s\S]+/, + }, + }, +}); + delete Prism.languages.scala['class-name']; delete Prism.languages.scala['function']; +delete Prism.languages.scala['constant']; |
