File tree 2 files changed +26
-10
lines changed 2 files changed +26
-10
lines changed Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ const idUpper = `${upperLetter}${letterOrDigit}*(?:(?<=_)${opchar}+)?`
18
18
const idLower = `${ lowerLetter } ${ letterOrDigit } *(?:(?<=_)${ opchar } +)?`
19
19
const plainid = `(?:${ idrest } |${ opchar } +)`
20
20
const backQuotedId = "`[^`]+`"
21
-
21
+ const endOfLineMaybeWithComment = "(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"
22
22
23
23
export const scalaTmLanguage : TmLanguage = {
24
24
fileTypes : [
@@ -486,18 +486,30 @@ export const scalaTmLanguage: TmLanguage = {
486
486
name : 'keyword.control.flow.scala'
487
487
} ,
488
488
{
489
- match : `^\\s*(end)\\s+(?:(if|while|for|match|new)|(${ upperLetter } ${ plainid } ?)|(${ backQuotedId } |${ plainid } ))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)` ,
489
+ match : `^\\s*(end)\\s+(if|while|for|match)${ endOfLineMaybeWithComment } ` ,
490
+ name : 'keyword.control.flow.end.scala'
491
+ } ,
492
+ {
493
+ match : `^\\s*(end)\\s+(?:(new)|(${ idUpper } ))${ endOfLineMaybeWithComment } ` ,
490
494
captures : {
491
495
'1' : {
492
- name : 'keyword.control.flow .end.scala'
496
+ name : 'keyword.declaration .end.scala'
493
497
} ,
494
498
'2' : {
495
- name : 'keyword.control.flow .end.scala'
499
+ name : 'keyword.declaration .end.scala'
496
500
} ,
497
501
'3' : {
498
502
name : 'entity.name.type.declaration'
503
+ }
504
+ }
505
+ } ,
506
+ {
507
+ match : `^\\s*(end)\\s+(${ backQuotedId } |${ plainid } )?${ endOfLineMaybeWithComment } ` ,
508
+ captures : {
509
+ '1' : {
510
+ name : 'keyword.declaration.end.scala'
499
511
} ,
500
- '4 ' : {
512
+ '2 ' : {
501
513
name : 'entity.name.declaration'
502
514
}
503
515
}
Original file line number Diff line number Diff line change 1
1
// SYNTAX TEST "source.scala"
2
2
3
3
new Foo :
4
+ // ^^^ keyword.declaration.scala
4
5
...
5
6
end new
6
- // ^^^ keyword.control.flow .end.scala
7
- // ^^^ keyword.control.flow .end.scala
7
+ // ^^^ keyword.declaration .end.scala
8
+ // ^^^ keyword.declaration .end.scala
8
9
9
10
end if
10
11
// ^^^ keyword.control.flow.end.scala
25
26
class Foo
26
27
// ^^^ entity.name.class.declaration
27
28
end Foo
28
- // ^^^ keyword.control.flow .end.scala
29
+ // ^^^ keyword.declaration .end.scala
29
30
// ^^^ entity.name.type.declaration
30
31
31
32
def foo
32
33
// ^^^ entity.name.function.declaration
33
34
end bar
34
- // ^^^ keyword.control.flow .end.scala
35
+ // ^^^ keyword.declaration .end.scala
35
36
// ^^^ entity.name.declaration
36
37
37
38
end `bar`
38
- // ^^^ keyword.control.flow .end.scala
39
+ // ^^^ keyword.declaration .end.scala
39
40
// ^^^ entity.name.declaration
41
+
42
+ end
43
+ // ^^^ keyword.declaration.end.scala
You can’t perform that action at this time.
0 commit comments