From 23d7bfedeb9bfa3cad14970b61b9a2e9dff6c44b Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Tue, 21 Jul 2020 09:33:41 +0200 Subject: [PATCH] Improve highlighting of names in given declarations Upper cased names are higlighted as types like with module declarations. This also aligns with the explicit use sites of given declarations. --- src/typescript/Scala.tmLanguage.ts | 5 +++-- tests/unit/given.test.scala | 32 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 tests/unit/given.test.scala diff --git a/src/typescript/Scala.tmLanguage.ts b/src/typescript/Scala.tmLanguage.ts index f73f66c..7a4656a 100644 --- a/src/typescript/Scala.tmLanguage.ts +++ b/src/typescript/Scala.tmLanguage.ts @@ -708,11 +708,12 @@ export const scalaTmLanguage: TmLanguage = { name: 'meta.package.scala' }, { - match: `\\b(given)\\b\\s*(?:\\b(as)\\b|(${backQuotedId}|(?!//|/\\*)${plainid})?)`, + match: `\\b(given)\\b\\s*(?:\\b(as)\\b|(${idUpper})|(${backQuotedId}|(?!//|/\\*)${plainid})?)`, captures: { '1': { name: 'keyword.declaration.scala' }, '2': { name: 'keyword.declaration.scala' }, - '3': { name: 'entity.name.declaration' } + '3': { name: 'entity.name.type.declaration' }, + '4': { name: 'entity.name.declaration' }, } } ] diff --git a/tests/unit/given.test.scala b/tests/unit/given.test.scala new file mode 100644 index 0000000..e5a4502 --- /dev/null +++ b/tests/unit/given.test.scala @@ -0,0 +1,32 @@ +// SYNTAX TEST "source.scala" + + + given Foo = ??? +// ^^^^^ keyword.declaration.scala +// ^^^ entity.name.type.declaration + + given foo = ??? +// ^^^^^ keyword.declaration.scala +// ^^^ entity.name.declaration + + given as Foo = ??? +// ^^^^^ keyword.declaration.scala +// ^^ keyword.declaration.scala +// ^^^ entity.name.class + + given as foo = ??? +// ^^^^^ keyword.declaration.scala +// ^^ keyword.declaration.scala +// ^^^ source.scala + + given bar as foo = ??? +// ^^^^^ keyword.declaration.scala +// ^^^ entity.name.declaration +// ^^ keyword.declaration.scala +// ^^^ source.scala + + given Foo as foo = ??? +// ^^^^^ keyword.declaration.scala +// ^^^ entity.name.type.declaration +// ^^ keyword.declaration.scala +// ^^^ source.scala