Skip to content

Commit 8aad5cd

Browse files
committed
Fix scala#124: Identify extended class names as identifiers
1 parent 7900e8d commit 8aad5cd

File tree

2 files changed

+66
-1
lines changed

2 files changed

+66
-1
lines changed

src/typescript/Scala.tmLanguage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,7 @@ export const scalaTmLanguage: TmLanguage = {
988988
inheritance: {
989989
patterns: [
990990
{
991-
match: '(extends|with|derives)\\s+([^\\s\\(\\{\\[\\]\\)\\};"]+|(?=\\([^\\)]+=>)|(?="))',
991+
match: `(extends|with|derives)\\s+(${plainid}|${backQuotedId}|(?=\\([^\\)]+=>)|(?="))`,
992992
captures: {
993993
'1': {
994994
name: 'keyword.declaration.scala'

tests/unit/#124.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+
def foo(x: A with B, c: C): Int = 0
4+
// ^^^^ keyword.declaration.scala
5+
// ^ entity.other.inherited-class.scala
6+
// ^ source.scala
7+
8+
class B extends A with B,
9+
// ^^^^ keyword.declaration.scala
10+
// ^ entity.other.inherited-class.scala
11+
// ^ source.scala
12+
13+
class B extends A with B:
14+
// ^^^^ keyword.declaration.scala
15+
// ^ entity.other.inherited-class.scala
16+
// ^ source.scala
17+
18+
class B extends A:
19+
// ^^^^^^^ keyword.declaration.scala
20+
// ^ entity.other.inherited-class.scala
21+
// ^ source.scala
22+
23+
class B extends A,
24+
// ^^^^^^^ keyword.declaration.scala
25+
// ^ entity.other.inherited-class.scala
26+
// ^ source.scala
27+
28+
class B extends A'
29+
// ^^^^^^^ keyword.declaration.scala
30+
// ^ entity.other.inherited-class.scala
31+
// ^ punctuation.definition.character.begin.scala
32+
33+
class B extends A|
34+
// ^^^^^^^ keyword.declaration.scala
35+
// ^ entity.other.inherited-class.scala
36+
// ^ source.scala
37+
38+
class B extends A+
39+
// ^^^^^^^ keyword.declaration.scala
40+
// ^ entity.other.inherited-class.scala
41+
// ^ source.scala
42+
43+
class B extends A-
44+
// ^^^^^^^ keyword.declaration.scala
45+
// ^ entity.other.inherited-class.scala
46+
// ^ source.scala
47+
48+
class B extends A*
49+
// ^^^^^^^ keyword.declaration.scala
50+
// ^ entity.other.inherited-class.scala
51+
// ^ source.scala
52+
53+
class B extends A&
54+
// ^^^^^^^ keyword.declaration.scala
55+
// ^ entity.other.inherited-class.scala
56+
// ^ source.scala
57+
58+
class B extends A^
59+
// ^^^^^^^ keyword.declaration.scala
60+
// ^ entity.other.inherited-class.scala
61+
// ^ source.scala
62+
63+
class B extends `A`
64+
// ^^^^^^^ keyword.declaration.scala
65+
// ^^^ entity.other.inherited-class.scala

0 commit comments

Comments
 (0)