diff --git a/src/typescript/Scala.tmLanguage.ts b/src/typescript/Scala.tmLanguage.ts index 85784b7..d1adfca 100644 --- a/src/typescript/Scala.tmLanguage.ts +++ b/src/typescript/Scala.tmLanguage.ts @@ -50,6 +50,10 @@ export const scalaTmLanguage: TmLanguage = { { include: '#comments' }, + { + match: 'given', + name: 'keyword.other.import.given.scala' + }, { match: idUpper, name: 'entity.name.class.import.scala' @@ -94,6 +98,10 @@ export const scalaTmLanguage: TmLanguage = { } } }, + { + match: 'given', + name: 'keyword.other.import.given.scala' + }, { match: `(given\\s+)?(?:(${idUpper})|(${backQuotedId}|${plainid}))`, captures: { diff --git a/tests/unit/imports.test.scala b/tests/unit/imports.test.scala index 002b176..fcbbab5 100644 --- a/tests/unit/imports.test.scala +++ b/tests/unit/imports.test.scala @@ -42,16 +42,52 @@ // ^ meta.import.scala meta.import.selector.scala entity.name.import.renamed-to.scala // ^ meta.import.scala meta.import.selector.scala meta.bracket.scala - import a.{given _} + import a.`given` // ^^^^^^ meta.import.scala keyword.other.import.scala // ^ meta.import.scala // ^ meta.import.scala entity.name.import.scala // ^ meta.import.scala punctuation.definition.import +// ^^^^^^^ - keyword.other.import.given.scala + + import a.given +// ^^^^^^ meta.import.scala keyword.other.import.scala +// ^ meta.import.scala +// ^ meta.import.scala entity.name.import.scala +// ^ meta.import.scala punctuation.definition.import +// ^^^^^ meta.import.scala keyword.other.import.given.scala + + import A.{given} +// ^^^^^^ meta.import.scala keyword.other.import.scala +// ^ meta.import.scala +// ^ meta.import.scala entity.name.class.import.scala +// ^ meta.import.scala punctuation.definition.import // ^ meta.import.scala meta.import.selector.scala meta.bracket.scala // ^^^^^ meta.import.scala keyword.other.import.given.scala // ^ meta.import.scala meta.import.selector.scala -// ^ meta.import.scala entity.name.import.scala -// ^ meta.import.scala meta.import.selector.scala + + + import A.{`given`, _} +// ^^^^^^ meta.import.scala keyword.other.import.scala +// ^ meta.import.scala +// ^ meta.import.scala entity.name.class.import.scala +// ^ meta.import.scala punctuation.definition.import +// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala +// ^^^^^^^ - keyword.other.import.given.scala +// ^^ meta.import.scala meta.import.selector.scala +// ^ meta.import.scala entity.name.import.scala +// ^ meta.import.scala meta.import.selector.scala + + import A.{given, _} +// ^^^^^^ meta.import.scala keyword.other.import.scala +// ^ meta.import.scala +// ^ meta.import.scala entity.name.class.import.scala +// ^ meta.import.scala punctuation.definition.import +// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala +// ^^^^^ meta.import.scala keyword.other.import.given.scala +// ^^ meta.import.scala meta.import.selector.scala +// ^ meta.import.scala entity.name.import.scala +// ^ meta.import.scala meta.import.selector.scala + import A.{given TC} // ^^^^^^ meta.import.scala keyword.other.import.scala @@ -63,3 +99,31 @@ // ^ meta.import.scala meta.import.selector.scala // ^^ meta.import.scala entity.name.class.import.scala // ^ meta.import.scala meta.import.selector.scala + + import A.{a, given Ordering[?]} +// ^^^^^^ meta.import.scala keyword.other.import.scala +// ^ meta.import.scala +// ^ meta.import.scala entity.name.class.import.scala +// ^ meta.import.scala punctuation.definition.import +// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala +// ^ meta.import.scala entity.name.import.scala +// ^^ meta.import.scala meta.import.selector.scala +// ^^^^^ meta.import.scala keyword.other.import.given.scala +// ^ meta.import.scala meta.import.selector.scala +// ^^^^^^^^ meta.import.scala entity.name.class.import.scala +// ^^^^ meta.import.scala meta.import.selector.scala + + import A.{given Ordering[?], given ExecutionContext} +// ^^^^^^ meta.import.scala keyword.other.import.scala +// ^ meta.import.scala +// ^ meta.import.scala entity.name.class.import.scala +// ^ meta.import.scala punctuation.definition.import +// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala +// ^^^^^ meta.import.scala keyword.other.import.given.scala +// ^ meta.import.scala meta.import.selector.scala +// ^^^^^^^^ meta.import.scala entity.name.class.import.scala +// ^^^^^ meta.import.scala meta.import.selector.scala +// ^^^^^ meta.import.scala keyword.other.import.given.scala +// ^ meta.import.scala meta.import.selector.scala +// ^^^^^^^^^^^^^^^^ meta.import.scala entity.name.class.import.scala +// ^ meta.import.scala meta.import.selector.scala