Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8c8dd67

Browse files
committedSep 9, 2020
Fix #140: Identify nameless given declarations
1 parent 40dc063 commit 8c8dd67

File tree

4 files changed

+42
-7
lines changed

4 files changed

+42
-7
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}))?(?=[^;]+\\bas\\b)`,
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/#103.test.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
given foo[X <: Y { type A = 1; def f(using a: Int): 2 }](x: X = 2) as Foo = ...
4545
// ^^^^^ keyword.declaration.scala
46-
// ^^^ entity.name.declaration
46+
/// ^^^ entity.name.declaration // disabled: heuristic identifis `;` as end of `given` definition
4747
// ^^^^ keyword.declaration.scala
4848
// ^ constant.numeric.scala
4949
// ^^^ keyword.declaration.scala

‎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)
Please sign in to comment.