Skip to content

Commit 0690707

Browse files
committed
Support extension clause
1 parent 6c995f9 commit 0690707

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/typescript/Scala.tmLanguage.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,9 @@ export const scalaTmLanguage: TmLanguage = {
150150
{
151151
include: '#inheritance'
152152
},
153+
{
154+
include: '#extension'
155+
},
153156
{
154157
include: '#imports'
155158
},
@@ -859,6 +862,19 @@ export const scalaTmLanguage: TmLanguage = {
859862
}
860863
]
861864
},
865+
extension: {
866+
patterns: [
867+
{
868+
match: `(extension)\\s+(?=[\\[\\(])`,
869+
captures: {
870+
'1': {
871+
name: 'keyword.declaration.scala'
872+
},
873+
874+
}
875+
}
876+
]
877+
},
862878
'parameter-list': {
863879
patterns: [
864880
{

tests/unit/extension.test.scala

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// SYNTAX TEST "source.scala"
2+
3+
extension (x: T) def combine (y: T): T
4+
// ^^^^^^^^^ keyword.declaration.scala
5+
// ^ variable.parameter.scala
6+
// ^ meta.colon.scala
7+
// ^ entity.name.class
8+
// ^^^ keyword.declaration.scala
9+
// ^^^^^^^ entity.name.function.declaration
10+
11+
12+
extension [T](x: T) def combine (y: T): T
13+
// ^^^^^^^^^ keyword.declaration.scala
14+
// ^ entity.name.class
15+
// ^ variable.parameter.scala
16+
// ^ meta.colon.scala
17+
// ^ entity.name.class
18+
// ^^^ keyword.declaration.scala
19+
// ^^^^^^^ entity.name.function.declaration

0 commit comments

Comments
 (0)