Skip to content

Commit b8d3232

Browse files
Merge pull request #94 from nicolasstucki/improve-given-imports
Improve given imports
2 parents ebbbeb7 + 059c9f4 commit b8d3232

File tree

2 files changed

+73
-13
lines changed

2 files changed

+73
-13
lines changed

src/typescript/Scala.tmLanguage.ts

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@ export const scalaTmLanguage: TmLanguage = {
5050
{
5151
include: '#comments'
5252
},
53-
{
54-
match: `(given)(?=\\s)`,
55-
name: 'keyword.given.import.scala'
56-
},
5753
{
5854
match: `(${backQuotedId}|${plainid})`,
5955
name: 'entity.name.import.scala'
@@ -72,33 +68,32 @@ export const scalaTmLanguage: TmLanguage = {
7268
},
7369
patterns: [
7470
{
75-
match: `(?x)\\s*(${backQuotedId}|${plainid})\\s*(=>)\\s*(${backQuotedId}|${plainid})\\s*`,
71+
match: `(?x)(given\\s)?\\s*(${backQuotedId}|${plainid})\\s*(=>)\\s*(${backQuotedId}|${plainid})\\s*`,
7672
captures: {
7773
'1': {
78-
name: 'entity.name.import.renamed-from.scala'
74+
name: 'keyword.other.given.scala'
7975
},
8076
'2': {
81-
name: 'keyword.other.arrow.scala'
77+
name: 'entity.name.import.renamed-from.scala'
8278
},
8379
'3': {
80+
name: 'keyword.other.arrow.scala'
81+
},
82+
'4': {
8483
name: 'entity.name.import.renamed-to.scala'
8584
}
8685
}
8786
},
8887
{
89-
match: `(given)(\\s+${plainid})?(?=\\s*[,}])`,
88+
match: `(given\\s+)?([^\\s.,}]+)`,
9089
captures: {
9190
'1': {
9291
name: 'keyword.given.import.scala'
9392
},
9493
'2': {
95-
name: 'entity.name.type.import.scala'
94+
name: 'entity.name.import.scala'
9695
}
9796
}
98-
},
99-
{
100-
match: '([^\\s.,}]+)',
101-
name: 'entity.name.import.scala'
10297
}
10398
],
10499
endCaptures: {

tests/unit/imports.test.scala

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// SYNTAX TEST "source.scala"
2+
3+
import
4+
// ^^^^^^ meta.import.scala keyword.other.import.scala
5+
6+
7+
import a.x
8+
// ^^^^^^ meta.import.scala keyword.other.import.scala
9+
// ^ meta.import.scala
10+
// ^ meta.import.scala entity.name.import.scala
11+
// ^ meta.import.scala punctuation.definition.import
12+
// ^ meta.import.scala entity.name.import.scala
13+
14+
import a._
15+
// ^^^^^^ meta.import.scala keyword.other.import.scala
16+
// ^ meta.import.scala
17+
// ^ meta.import.scala entity.name.import.scala
18+
// ^ meta.import.scala punctuation.definition.import
19+
// ^ meta.import.scala entity.name.import.scala
20+
21+
import a.{x, y}
22+
// ^^^^^^ meta.import.scala keyword.other.import.scala
23+
// ^ meta.import.scala
24+
// ^ meta.import.scala entity.name.import.scala
25+
// ^ meta.import.scala punctuation.definition.import
26+
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
27+
// ^ meta.import.scala entity.name.import.scala
28+
// ^^ meta.import.scala meta.import.selector.scala
29+
// ^ meta.import.scala meta.import.selector.scala entity.name.import.scala
30+
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
31+
32+
import a.{x => y}
33+
// ^^^^^^ meta.import.scala keyword.other.import.scala
34+
// ^ meta.import.scala
35+
// ^ meta.import.scala entity.name.import.scala
36+
// ^ meta.import.scala punctuation.definition.import
37+
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
38+
// ^ meta.import.scala meta.import.selector.scala entity.name.import.renamed-from.scala
39+
// ^ meta.import.scala meta.import.selector.scala
40+
// ^^ meta.import.scala meta.import.selector.scala
41+
// ^ meta.import.scala meta.import.selector.scala
42+
// ^ meta.import.scala meta.import.selector.scala entity.name.import.renamed-to.scala
43+
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
44+
45+
import a.{given _}
46+
// ^^^^^^ meta.import.scala keyword.other.import.scala
47+
// ^ meta.import.scala
48+
// ^ meta.import.scala entity.name.import.scala
49+
// ^ meta.import.scala punctuation.definition.import
50+
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
51+
// ^^^^^ meta.import.scala keyword.given.import.scala
52+
// ^ meta.import.scala meta.import.selector.scala
53+
// ^ meta.import.scala entity.name.import.scala
54+
// ^ meta.import.scala meta.import.selector.scala
55+
56+
import A.{given TC}
57+
// ^^^^^^ meta.import.scala keyword.other.import.scala
58+
// ^ meta.import.scala
59+
// ^ meta.import.scala entity.name.import.scala
60+
// ^ meta.import.scala punctuation.definition.import
61+
// ^ meta.import.scala meta.import.selector.scala meta.bracket.scala
62+
// ^^^^^ meta.import.scala keyword.given.import.scala
63+
// ^ meta.import.scala meta.import.selector.scala
64+
// ^^ meta.import.scala entity.name.import.scala
65+
// ^ meta.import.scala meta.import.selector.scala

0 commit comments

Comments
 (0)