diff --git a/src/typescript/Scala.tmLanguage.ts b/src/typescript/Scala.tmLanguage.ts index 2353d8a..c7db34c 100644 --- a/src/typescript/Scala.tmLanguage.ts +++ b/src/typescript/Scala.tmLanguage.ts @@ -577,7 +577,7 @@ export const scalaTmLanguage: TmLanguage = { inline: { patterns: [ { - match: `\\b(inline)\\b(?=(?:.(?!val|def|given))*(if|match))`, + match: `\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)`, captures: { '1': { name: 'keyword.control.flow.scala' @@ -585,7 +585,7 @@ export const scalaTmLanguage: TmLanguage = { } }, { - match: `\\b(inline)\\s+(?=(([\\w\\s]*(val|def|given))|(${plainid}|${backQuotedId})\\s*:))`, + match: `\\b(inline)\\s+(?=(([\\w\\s]*\\b(val|def|given)\\b)|(${plainid}|${backQuotedId})\\s*:))`, captures: { '1': { name: 'storage.modifier.other' diff --git a/tests/unit/#133.test.scala b/tests/unit/#133.test.scala index 79ff41d..ab7ecb8 100644 --- a/tests/unit/#133.test.scala +++ b/tests/unit/#133.test.scala @@ -18,6 +18,21 @@ // ^^^^^^ keyword.control.flow.scala // ^^^^^ keyword.control.flow.scala + inline xval match { +// ^^^^^^ keyword.control.flow.scala +// ^^^^^ keyword.control.flow.scala + + inline val1 match { +// ^^^^^^ keyword.control.flow.scala +// ^^^^^ keyword.control.flow.scala + + inline def1 match { +// ^^^^^^ keyword.control.flow.scala +// ^^^^^ keyword.control.flow.scala + + inline given1 match { +// ^^^^^^ keyword.control.flow.scala +// ^^^^^ keyword.control.flow.scala inline def power(x: Double, inline N: Int): Double = // ^^^^^^ storage.modifier.other @@ -40,6 +55,22 @@ val x = inline[T] // ^^^^^^ storage.modifier.other // ^^^^^^ variable.parameter.scala + inline def inline(inline xif: Int, inline ifx: Int): Double = +// ^^^^^^ storage.modifier.other +// ^^^^^^ entity.name.function.declaration +// ^^^^^^ storage.modifier.other +// ^^^ variable.parameter.scala +// ^^^^^^ storage.modifier.other +// ^^^ variable.parameter.scala + + inline def inline(inline xmatch: Int, inline matchx: Int): Double = +// ^^^^^^ storage.modifier.other +// ^^^^^^ entity.name.function.declaration +// ^^^^^^ storage.modifier.other +// ^^^^^^ variable.parameter.scala +// ^^^^^^ storage.modifier.other +// ^^^^^^ variable.parameter.scala + inline if (n == 0) 1 else 2; val x = 2 // ^^^^^^ keyword.control.flow.scala // ^^ keyword.control.flow.scala @@ -51,3 +82,21 @@ val x = inline[T] inline f[X](x: X) match { // ^^^^^^ keyword.control.flow.scala // ^^^^^ keyword.control.flow.scala + + inline xval +// ^^^^^^ - storage.modifier.other keyword.control.flow.scala + + inline valx +// ^^^^^^ - storage.modifier.other keyword.control.flow.scala + + inline defx +// ^^^^^^ - storage.modifier.other keyword.control.flow.scala + + inline xdef +// ^^^^^^ - storage.modifier.other keyword.control.flow.scala + + inline givenx +// ^^^^^^ - storage.modifier.other keyword.control.flow.scala + + inline xgiven +// ^^^^^^ - storage.modifier.other keyword.control.flow.scala \ No newline at end of file