Skip to content

Commit b3d1825

Browse files
committed
Fix #107: Identify highlighting of identifier after an end
1 parent 2e3629c commit b3d1825

File tree

2 files changed

+54
-2
lines changed

2 files changed

+54
-2
lines changed

src/typescript/Scala.tmLanguage.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -486,8 +486,21 @@ export const scalaTmLanguage: TmLanguage = {
486486
name: 'keyword.control.flow.scala'
487487
},
488488
{
489-
match: `^\\s*end(?=\\s+(if|while|for|match|${plainid})\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)`,
490-
name: 'keyword.control.flow.end.scala'
489+
match: `^\\s*(end)\\s+(?:(if|while|for|match|new)|(${upperLetter}${plainid}?)|(${backQuotedId}|${plainid}))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)`,
490+
captures: {
491+
'1': {
492+
name: 'keyword.control.flow.end.scala'
493+
},
494+
'2': {
495+
name: 'keyword.control.flow.end.scala'
496+
},
497+
'3': {
498+
name: 'entity.name.type.declaration'
499+
},
500+
'4': {
501+
name: 'entity.name.declaration'
502+
}
503+
}
491504
},
492505
{
493506
match: '\\b(catch|finally|try)\\b',

tests/unit/#107.test.scala

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// SYNTAX TEST "source.scala"
2+
3+
new Foo:
4+
...
5+
end new
6+
// ^^^ keyword.control.flow.end.scala
7+
// ^^^ keyword.control.flow.end.scala
8+
9+
end if
10+
// ^^^ keyword.control.flow.end.scala
11+
// ^^ keyword.control.flow.end.scala
12+
13+
end while
14+
// ^^^ keyword.control.flow.end.scala
15+
// ^^^^^ keyword.control.flow.end.scala
16+
17+
end for
18+
// ^^^ keyword.control.flow.end.scala
19+
// ^^^ keyword.control.flow.end.scala
20+
21+
end match
22+
// ^^^ keyword.control.flow.end.scala
23+
// ^^^^^ keyword.control.flow.end.scala
24+
25+
class Foo
26+
// ^^^ entity.name.class.declaration
27+
end Foo
28+
// ^^^ keyword.control.flow.end.scala
29+
// ^^^ entity.name.type.declaration
30+
31+
def foo
32+
// ^^^ entity.name.function.declaration
33+
end bar
34+
// ^^^ keyword.control.flow.end.scala
35+
// ^^^ entity.name.declaration
36+
37+
end `bar`
38+
// ^^^ keyword.control.flow.end.scala
39+
// ^^^ entity.name.declaration

0 commit comments

Comments
 (0)