Scala: Updated keywords to support Scala 3 (#3506)

This commit is contained in:
Julien Richard-Foy 2022-07-26 19:21:09 +02:00 committed by GitHub
parent b9512b221e
commit a090d0630b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 75 additions and 19 deletions

View File

@ -8,7 +8,7 @@ Prism.languages.scala = Prism.languages.extend('java', {
pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
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/,
'keyword': /<-|=>|\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*/

View File

@ -1 +1 @@
Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},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/,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:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function;
Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\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:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function;

View File

@ -1,15 +1,19 @@
<- =>
abstract case catch
class def do else
extends final finally
for forSome if
implicit import; lazy
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 try type val
trait transparent try
type using val
var while with yield
----------------------------------------------------
@ -17,19 +21,71 @@ var while with yield
[
["keyword", "<-"], ["keyword", "=>"],
["keyword", "abstract"], ["keyword", "case"], ["keyword", "catch"],
["keyword", "class"], ["keyword", "def"], ["keyword", "do"], ["keyword", "else"],
["keyword", "extends"], ["keyword", "final"], ["keyword", "finally"],
["keyword", "for"], ["keyword", "forSome"], ["keyword", "if"],
["keyword", "implicit"], ["keyword", "import"], ["punctuation", ";"], ["keyword", "lazy"],
["keyword", "match"], ["keyword", "new"], ["keyword", "null"], ["keyword", "object"],
["keyword", "override"], ["keyword", "package"], ["keyword", "private"],
["keyword", "protected"], ["keyword", "return"], ["keyword", "sealed"],
["keyword", "self"], ["keyword", "super"], ["keyword", "this"], ["keyword", "throw"],
["keyword", "trait"], ["keyword", "try"], ["keyword", "type"], ["keyword", "val"],
["keyword", "var"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"]
["keyword", "abstract"],
["keyword", "case"],
["keyword", "catch"],
["keyword", "class"],
["keyword", "def"],
["keyword", "derives"],
["keyword", "do"],
["keyword", "else"],
["keyword", "enum"],
["keyword", "extends"],
["keyword", "extension"],
["keyword", "final"],
["keyword", "finally"],
["keyword", "for"],
["keyword", "forSome"],
["keyword", "given"],
["keyword", "if"],
["keyword", "implicit"],
["keyword", "import"],
["punctuation", ";"],
["keyword", "infix"],
["keyword", "inline"],
["keyword", "lazy"],
["keyword", "match"],
["keyword", "new"],
["keyword", "null"],
["keyword", "object"],
["keyword", "opaque"],
["keyword", "open"],
["namespace", ["override"]],
["keyword", "package"],
["keyword", "private"],
["keyword", "protected"],
["keyword", "return"],
["keyword", "sealed"],
["keyword", "self"],
["keyword", "super"],
["keyword", "this"],
["keyword", "throw"],
["keyword", "trait"],
["keyword", "transparent"],
["keyword", "try"],
["keyword", "type"],
["keyword", "using"],
["keyword", "val"],
["keyword", "var"],
["keyword", "while"],
["keyword", "with"],
["keyword", "yield"]
]
----------------------------------------------------
Checks for keywords.
Checks for keywords.