From 3e8f3b9253dc595fdb460dd7a19adb96391b9d1b Mon Sep 17 00:00:00 2001 From: Julien Richard-Foy Date: Tue, 26 Jul 2022 10:31:00 +0200 Subject: [PATCH] Update Scala keywords to support Scala 3 Add `given`, `transparent`, and `using` keywords. --- components/prism-scala.js | 2 +- tests/languages/scala/keyword_feature.test | 28 ++++++++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/components/prism-scala.js b/components/prism-scala.js index 40b96fa15c..9ba4649270 100644 --- a/components/prism-scala.js +++ b/components/prism-scala.js @@ -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*/ diff --git a/tests/languages/scala/keyword_feature.test b/tests/languages/scala/keyword_feature.test index 9e3cfb4d1b..d411e8c279 100644 --- a/tests/languages/scala/keyword_feature.test +++ b/tests/languages/scala/keyword_feature.test @@ -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 ---------------------------------------------------- @@ -18,15 +22,19 @@ 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", "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"], ["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", "trait"], ["keyword", "transparent"], ["keyword", "try"], + ["keyword", "type"], ["keyword", "using"], ["keyword", "val"], ["keyword", "var"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"] ]