Skip to content

Commit

Permalink
Fix #110: Highlight class/object names in imports
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolasstucki committed Jul 1, 2020
1 parent e907413 commit 0da2784
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 13 deletions.
21 changes: 17 additions & 4 deletions src/typescript/Scala.tmLanguage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ export const scalaTmLanguage: TmLanguage = {
{
include: '#comments'
},
{
match: idUpper,
name: 'entity.name.class.import.scala'
},
{
match: `(${backQuotedId}|${plainid})`,
name: 'entity.name.import.scala'
Expand All @@ -68,29 +72,38 @@ export const scalaTmLanguage: TmLanguage = {
},
patterns: [
{
match: `(?x)(given\\s)?\\s*(${backQuotedId}|${plainid})\\s*(=>)\\s*(${backQuotedId}|${plainid})\\s*`,
match: `(?x)(given\\s)?\\s*(?:(${idUpper})|(${backQuotedId}|${plainid}))\\s*(=>)\\s*(?:(${idUpper})|(${backQuotedId}|${plainid}))\\s*`,
captures: {
'1': {
name: 'keyword.other.given.scala'
},
'2': {
name: 'entity.name.import.renamed-from.scala'
name: 'entity.name.class.import.renamed-from.scala'
},
'3': {
name: 'keyword.other.arrow.scala'
name: 'entity.name.import.renamed-from.scala'
},
'4': {
name: 'keyword.other.arrow.scala'
},
'5': {
name: 'entity.name.class.import.renamed-to.scala'
},
'6': {
name: 'entity.name.import.renamed-to.scala'
}
}
},
{
match: `(given\\s+)?([^\\s.,}]+)`,
match: `(given\\s+)?(?:(${idUpper})|(${backQuotedId}|${plainid}))`,
captures: {
'1': {
name: 'keyword.given.import.scala'
},
'2': {
name: 'entity.name.class.import.scala'
},
'3': {
name: 'entity.name.import.scala'
}
}
Expand Down
2 changes: 1 addition & 1 deletion tests/snap/scala_spec.test.scala.snap
Original file line number Diff line number Diff line change
Expand Up @@ -821,7 +821,7 @@
# ^ source.scala
# ^^^^^^ source.scala meta.import.scala keyword.other.import.scala
# ^ source.scala meta.import.scala
# ^ source.scala meta.import.scala entity.name.import.scala
# ^ source.scala meta.import.scala entity.name.class.import.scala
# ^ source.scala meta.import.scala punctuation.definition.import
# ^ source.scala meta.import.scala meta.import.selector.scala meta.bracket.scala
# ^^^ source.scala meta.import.scala meta.import.selector.scala entity.name.import.scala
Expand Down
45 changes: 45 additions & 0 deletions tests/unit/#110.test.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// SYNTAX TEST "source.scala"

import java.io.BufferedReaded
// ^^^^^^ keyword.other.import.scala
// ^^^^ entity.name.import.scala
// ^^ entity.name.import.scala
// ^^^^^^^^^^^^^^ entity.name.class.import.scala

import foo._
// ^^^^^^ keyword.other.import.scala
// ^^^ entity.name.import.scala
// ^ entity.name.import.scala

import foo.Bar
// ^^^^^^ keyword.other.import.scala
// ^^^ entity.name.import.scala
// ^^^ entity.name.class.import.scala

import foo.Bar._
// ^^^^^^ keyword.other.import.scala
// ^^^ entity.name.import.scala
// ^^^ entity.name.class.import.scala
// ^ entity.name.import.scala

import foo.Foo.Bar._
// ^^^^^^ keyword.other.import.scala
// ^^^ entity.name.import.scala
// ^^^ entity.name.class.import.scala
// ^^^ entity.name.class.import.scala

import foo.{Foo, bar}
// ^^^^^^ keyword.other.import.scala
// ^^^ entity.name.import.scala
// ^^^ entity.name.class.import.scala
// ^^^ entity.name.import.scala

import foo.{Foo => Bar, bar => foo}
// ^^^^^^ keyword.other.import.scala
// ^^^ entity.name.import.scala
// ^^^ meta.import.scala meta.import.selector.scala entity.name.class.import.renamed-from.scala
// ^^ meta.import.scala
// ^^^ meta.import.scala meta.import.selector.scala entity.name.class.import.renamed-to.scala
// ^^^ meta.import.scala meta.import.selector.scala entity.name.import.renamed-from.scala
// ^^ meta.import.scala meta.import.selector.scala keyword.other.arrow.scala
// ^^^ meta.import.scala meta.import.selector.scala entity.name.import.renamed-to.scala
4 changes: 2 additions & 2 deletions tests/unit/imports.test.scala
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@
import A.{given TC}
// ^^^^^^ meta.import.scala keyword.other.import.scala
// ^ meta.import.scala
// ^ meta.import.scala entity.name.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.given.import.scala
// ^ meta.import.scala meta.import.selector.scala
// ^^ meta.import.scala entity.name.import.scala
// ^^ meta.import.scala entity.name.class.import.scala
// ^ meta.import.scala meta.import.selector.scala
12 changes: 6 additions & 6 deletions tests/unit/unicode.identifiers.test.scala
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ import scala.colection.Seq
// ^ meta.import.scala punctuation.definition.import
// ^^^^^^^^^ meta.import.scala entity.name.import.scala
// ^ meta.import.scala punctuation.definition.import
// ^^^ meta.import.scala entity.name.import.scala
// ^^^ meta.import.scala entity.name.class.import.scala
import users._ // import everything from the users package
// <------ meta.import.scala keyword.other.import.scala
// ^ meta.import.scala
Expand All @@ -128,7 +128,7 @@ import users.User // import the class User
// ^ meta.import.scala
// ^^^^^ meta.import.scala entity.name.import.scala
// ^ meta.import.scala punctuation.definition.import
// ^^^^ meta.import.scala entity.name.import.scala
// ^^^^ meta.import.scala entity.name.class.import.scala
// ^^ comment.line.double-slash.scala punctuation.definition.comment.scala
// ^^^^^^^^^^^^^^^^^^^^^^ comment.line.double-slash.scala
import users.{User, UserPreferences} // Only imports selected members
Expand All @@ -137,9 +137,9 @@ import users.{User, UserPreferences} // Only imports selected members
// ^^^^^ meta.import.scala entity.name.import.scala
// ^ meta.import.scala punctuation.definition.import
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
// ^^^^ meta.import.scala meta.import.selector.scala entity.name.import.scala
// ^^^^ meta.import.scala meta.import.selector.scala entity.name.class.import.scala
// ^^ meta.import.scala meta.import.selector.scala
// ^^^^^^^^^^^^^^^ meta.import.scala meta.import.selector.scala entity.name.import.scala
// ^^^^^^^^^^^^^^^ meta.import.scala meta.import.selector.scala entity.name.class.import.scala
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala


Expand All @@ -150,11 +150,11 @@ import users.{UserPreferences => UPrefs} // import and rename for convenience
// ^^^^^ meta.import.scala entity.name.import.scala
// ^ meta.import.scala punctuation.definition.import
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
// ^^^^^^^^^^^^^^^ meta.import.scala meta.import.selector.scala entity.name.import.renamed-from.scala
// ^^^^^^^^^^^^^^^ meta.import.scala meta.import.selector.scala entity.name.class.import.renamed-from.scala
// ^ meta.import.scala meta.import.selector.scala
// ^^ meta.import.scala meta.import.selector.scala keyword.other.arrow.scala
// ^ meta.import.scala meta.import.selector.scala
// ^^^^^^ meta.import.scala meta.import.selector.scala entity.name.import.renamed-to.scala
// ^^^^^^ meta.import.scala meta.import.selector.scala entity.name.class.import.renamed-to.scala
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala


Expand Down

0 comments on commit 0da2784

Please sign in to comment.