Skip to content

Commit 0080fe4

Browse files
committed
Identify extends, with and derives at the end of a line
1 parent b3d18b4 commit 0080fe4

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

src/typescript/Scala.tmLanguage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1021,7 +1021,7 @@ export const scalaTmLanguage: TmLanguage = {
10211021
inheritance: {
10221022
patterns: [
10231023
{
1024-
match: `(extends|with|derives)\\s+(${idUpper}|${backQuotedId}|(?=\\([^\\)]+=>)|(?=${plainid})|(?="))`,
1024+
match: `\\b(extends|with|derives)\\b\\s*(${idUpper}|${backQuotedId}|(?=\\([^\\)]+=>)|(?=${plainid})|(?="))?`,
10251025
captures: {
10261026
'1': {
10271027
name: 'keyword.declaration.scala'

tests/unit/#156.test.scala

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// SYNTAX TEST "source.scala"
2+
3+
4+
class Foo extends
5+
// ^^^^^ keyword.declaration.scala
6+
// ^^^ entity.name.class.declaration
7+
// ^^^^^^^ keyword.declaration.scala
8+
9+
class Foo extends Bar with Baz
10+
// ^^^^^ keyword.declaration.scala
11+
// ^^^ entity.name.class.declaration
12+
// ^^^^^^^ keyword.declaration.scala
13+
// ^^^ entity.other.inherited-class.scala
14+
// ^^^^ keyword.declaration.scala
15+
// ^^^ entity.other.inherited-class.scala
16+
17+
class Foo extends Bar with
18+
// ^^^^^ keyword.declaration.scala
19+
// ^^^ entity.name.class.declaration
20+
// ^^^^^^^ keyword.declaration.scala
21+
// ^^^ entity.other.inherited-class.scala
22+
// ^^^^ keyword.declaration.scala
23+
24+
25+
given tc: TC with {}
26+
// ^^^^^ keyword.declaration.scala
27+
// ^^ variable.parameter.scala
28+
// ^^ entity.name.class
29+
// ^^^^ keyword.declaration.scala
30+
31+
given Liftable[Boolean] with {
32+
// ^^^^^ keyword.declaration.scala
33+
// ^^^^^^^^ entity.name.class
34+
// ^^^^^^^ entity.name.class
35+
// ^^^^ keyword.declaration.scala
36+
37+
given listMonad: Monad[List] with
38+
// ^^^^^ keyword.declaration.scala
39+
// ^^^^^^^^^ variable.parameter.scala
40+
// ^^^^^ entity.name.class
41+
// ^^^^ entity.name.class
42+
// ^^^^ keyword.declaration.scala
43+
44+
enum Opt[+T] derives Eq {
45+
// ^^^^ keyword.declaration.scala
46+
// ^^^ entity.name.class.declaration
47+
// ^ entity.name.class
48+
// ^^^^^^^ keyword.declaration.scala
49+
// ^^ entity.other.inherited-class.scala
50+
51+
enum Opt[+T] derives
52+
// ^^^^ keyword.declaration.scala
53+
// ^^^ entity.name.class.declaration
54+
// ^ entity.name.class
55+
// ^^^^^^^ keyword.declaration.scala

0 commit comments

Comments
 (0)