Skip to content

Commit c8e8318

Browse files
Merge pull request #223 from nicolasstucki/fix-222
Add regex for interpolator identifier
2 parents c3db1d7 + f1448ec commit c8e8318

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

src/typescript/Scala.tmLanguage.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const idrest = `${letter}${letterOrDigit}*(?:(?<=_)${opchar}+)?`
1717
const idUpper = `${upperLetter}${letterOrDigit}*(?:(?<=_)${opchar}+)?`
1818
const idLower = `${lowerLetter}${letterOrDigit}*(?:(?<=_)${opchar}+)?`
1919
const plainid = `(?:${idrest}|${opchar}+)`
20+
const interpolatorid = `(?:${letter}${letterOrDigit}*(?:(?<=_)${opchar}+)?)`
2021
const backQuotedId = "`[^`]+`"
2122
const anyId = `(?:${plainid}|${backQuotedId})`
2223
const endOfLineMaybeWithComment = "(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"
@@ -365,7 +366,7 @@ export const scalaTmLanguage: TmLanguage = {
365366
}
366367
},
367368
{
368-
begin: `\\b(${alphaId})(""")`,
369+
begin: `\\b(${interpolatorid})(""")`,
369370
end: `(""")(?!")|\\$\n|(\\$[^\\$"_{${letterChars}])`,
370371
beginCaptures: {
371372
'1': {
@@ -456,7 +457,7 @@ export const scalaTmLanguage: TmLanguage = {
456457
}
457458
},
458459
{
459-
begin: `\\b(${alphaId})(")`,
460+
begin: `\\b(${interpolatorid})(")`,
460461
end: `(")|\\$\n|(\\$[^\\$"_{${letterChars}])`,
461462
beginCaptures: {
462463
'1': {

tests/unit/#222.test.scala

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// SYNTAX TEST "source.scala"
2+
3+
test"hello $name"
4+
// ^^^^ keyword.interpolation.scala
5+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala
6+
// ^^^^^^ string.quoted.double.interpolated.scala
7+
// ^ meta.template.expression.scala punctuation.definition.template-expression.begin.scala
8+
// ^^^^ meta.template.expression.scala
9+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.end.scala
10+
11+
test1"hello $name"
12+
// ^^^^^ keyword.interpolation.scala
13+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala
14+
// ^^^^^^ string.quoted.double.interpolated.scala
15+
// ^ meta.template.expression.scala punctuation.definition.template-expression.begin.scala
16+
// ^^^^ meta.template.expression.scala
17+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.end.scala
18+
19+
test1a"hello $name"
20+
// ^^^^^^ keyword.interpolation.scala
21+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala
22+
// ^^^^^^ string.quoted.double.interpolated.scala
23+
// ^ meta.template.expression.scala punctuation.definition.template-expression.begin.scala
24+
// ^^^^ meta.template.expression.scala
25+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.end.scala
26+
27+
test_+"hello $name"
28+
// ^^^^^^ keyword.interpolation.scala
29+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala
30+
// ^^^^^^ string.quoted.double.interpolated.scala
31+
// ^ meta.template.expression.scala punctuation.definition.template-expression.begin.scala
32+
// ^^^^ meta.template.expression.scala
33+
// ^ string.quoted.double.interpolated.scala punctuation.definition.string.end.scala

0 commit comments

Comments
 (0)