Skip to content

Commit 858627f

Browse files
authored
Merge pull request #144 from nicolasstucki/fix-#140
Fix #140: Identify nameless given declarations
2 parents 40dc063 + bd9c1d9 commit 858627f

File tree

3 files changed

+41
-6
lines changed

3 files changed

+41
-6
lines changed

src/typescript/Scala.tmLanguage.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -708,12 +708,17 @@ export const scalaTmLanguage: TmLanguage = {
708708
name: 'meta.package.scala'
709709
},
710710
{
711-
match: `\\b(given)\\b\\s*(?:\\b(as)\\b|(${idUpper})|(${backQuotedId}|(?!//|/\\*)${plainid})?)`,
711+
match: `\\b(given)\\s+(?:(${idUpper})|(${backQuotedId}|${plainid}))?(?=\\s+as\\b|\\(|\\[[^;]+\\s(?:as|<:)\\s)`,
712+
captures: {
713+
'1': { name: 'keyword.declaration.scala' },
714+
'2': { name: 'entity.name.type.declaration' },
715+
'3': { name: 'entity.name.declaration' },
716+
}
717+
},
718+
{
719+
match: `\\b(given)\\b`,
712720
captures: {
713721
'1': { name: 'keyword.declaration.scala' },
714-
'2': { name: 'keyword.declaration.scala' },
715-
'3': { name: 'entity.name.type.declaration' },
716-
'4': { name: 'entity.name.declaration' },
717722
}
718723
}
719724
]

tests/unit/#140.test.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// SYNTAX TEST "source.scala"
2+
3+
given foo.Foo
4+
// ^^^^^ keyword.declaration.scala
5+
// ^^^ - entity.name.declaration
6+
// ^^^ entity.name.class
7+
8+
given Foo[a]
9+
// ^^^^^ keyword.declaration.scala
10+
// ^^^ - entity.name.type.declaration
11+
// ^^^ entity.name.class

tests/unit/given.test.scala

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33

44
given Foo = ???
55
// ^^^^^ keyword.declaration.scala
6-
// ^^^ entity.name.type.declaration
6+
// ^^^ - entity.name.type.declaration
7+
// ^^^ entity.name.class
78

89
given foo = ???
910
// ^^^^^ keyword.declaration.scala
10-
// ^^^ entity.name.declaration
11+
// ^^^ - entity.name.declaration
12+
// ^^^ source.scala
1113

1214
given as Foo = ???
1315
// ^^^^^ keyword.declaration.scala
@@ -30,3 +32,20 @@
3032
// ^^^ entity.name.type.declaration
3133
// ^^ keyword.declaration.scala
3234
// ^^^ source.scala
35+
36+
given foo = ???; given Bar as Baz
37+
// ^^^^^ keyword.declaration.scala
38+
// ^^^ - entity.name.type.declaration
39+
// ^^^^^ keyword.declaration.scala
40+
// ^^^ entity.name.type.declaration
41+
// ^^ keyword.declaration.scala
42+
// ^^^ entity.name.class
43+
44+
given Foo = ???; given Bar as Baz
45+
// ^^^^^ keyword.declaration.scala
46+
// ^^^ - entity.name.type.declaration
47+
// ^^^ entity.name.class
48+
// ^^^^^ keyword.declaration.scala
49+
// ^^^ entity.name.type.declaration
50+
// ^^ keyword.declaration.scala
51+
// ^^^ entity.name.class

0 commit comments

Comments
 (0)