Skip to content

Commit 3e8f3b9

Browse files
committed
Update Scala keywords to support Scala 3
Add `given`, `transparent`, and `using` keywords.
1 parent b9512b2 commit 3e8f3b9

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

components/prism-scala.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Prism.languages.scala = Prism.languages.extend('java', {
88
pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
99
greedy: true
1010
},
11-
'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/,
11+
'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/,
1212
'number': /\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,
1313
'builtin': /\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,
1414
'symbol': /'[^\d\s\\]\w*/

tests/languages/scala/keyword_feature.test

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
<- =>
22

33
abstract case catch
4-
class def do else
5-
extends final finally
6-
for forSome if
7-
implicit import; lazy
4+
class def derives do
5+
else enum extends extension
6+
final finally
7+
for forSome given if
8+
implicit import;
9+
infix inline lazy
810
match new null object
11+
opaque open
912
override package private
1013
protected return sealed
1114
self super this throw
12-
trait try type val
15+
trait transparent try
16+
type using val
1317
var while with yield
1418

1519
----------------------------------------------------
@@ -18,15 +22,19 @@ var while with yield
1822
["keyword", "<-"], ["keyword", "=>"],
1923

2024
["keyword", "abstract"], ["keyword", "case"], ["keyword", "catch"],
21-
["keyword", "class"], ["keyword", "def"], ["keyword", "do"], ["keyword", "else"],
22-
["keyword", "extends"], ["keyword", "final"], ["keyword", "finally"],
23-
["keyword", "for"], ["keyword", "forSome"], ["keyword", "if"],
24-
["keyword", "implicit"], ["keyword", "import"], ["punctuation", ";"], ["keyword", "lazy"],
25+
["keyword", "class"], ["keyword", "def"], ["keyword", "derives"], ["keyword", "do"],
26+
["keyword", "else"], ["keyword", "enum"], ["keyword", "extends"], ["keyword", "extension"],
27+
["keyword", "final"], ["keyword", "finally"],
28+
["keyword", "for"], ["keyword", "forSome"], ["keyword", "given"], ["keyword", "if"],
29+
["keyword", "implicit"], ["keyword", "import"], ["punctuation", ";"],
30+
["keyword", "infix"], ["keyword", "inline"], ["keyword", "lazy"],
2531
["keyword", "match"], ["keyword", "new"], ["keyword", "null"], ["keyword", "object"],
32+
["keyword", "opaque"], ["keyword", "open"],
2633
["keyword", "override"], ["keyword", "package"], ["keyword", "private"],
2734
["keyword", "protected"], ["keyword", "return"], ["keyword", "sealed"],
2835
["keyword", "self"], ["keyword", "super"], ["keyword", "this"], ["keyword", "throw"],
29-
["keyword", "trait"], ["keyword", "try"], ["keyword", "type"], ["keyword", "val"],
36+
["keyword", "trait"], ["keyword", "transparent"], ["keyword", "try"],
37+
["keyword", "type"], ["keyword", "using"], ["keyword", "val"],
3038
["keyword", "var"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"]
3139
]
3240

0 commit comments

Comments
 (0)