Skip to content

Commit be0c909

Browse files
authored
Merge pull request #38 from PanAeon/feature/backticks
Add top level rule for identifiers inside the backticks
2 parents 07c397d + f50e487 commit be0c909

File tree

5 files changed

+101
-2
lines changed

5 files changed

+101
-2
lines changed

Diff for: src/typescript/Scala.tmLanguage.ts

+9
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,9 @@ export const scalaTmLanguage: TmLanguage = {
181181
{
182182
include: '#qualifiedClassName'
183183
},
184+
{
185+
include: '#backQuotedVariable'
186+
},
184187
{
185188
include: '#meta-brackets'
186189
},
@@ -624,6 +627,12 @@ export const scalaTmLanguage: TmLanguage = {
624627
}
625628
}
626629
},
630+
backQuotedVariable: {
631+
// capture back quoted variables in code so special symbols inside them do not
632+
// interfere with the rest of the rules. But don't assign any extra scope, to make them
633+
// consistent with the rest of variables
634+
match: `${backQuotedId}`
635+
},
627636
'storage-modifiers': {
628637
patterns: [
629638
{

Diff for: syntaxes/Scala.tmLanguage.json

+1-1
Large diffs are not rendered by default.

Diff for: tests/snap/backticks.test.scala

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
object `Backtics test` {
3+
val x = MediaRange.`*/*`
4+
5+
val y = `MediaRange`.`*/*`
6+
7+
val z = `Media Range`
8+
9+
def `*/*`(`a b`: `C D`): `e f` = ???
10+
11+
12+
13+
val `*/*` = 5
14+
}

Diff for: tests/snap/backticks.test.scala.snap

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
>
2+
>object `Backtics test` {
3+
#^^^^^^ source.scala keyword.declaration.scala
4+
# ^ source.scala
5+
# ^^^^^^^^^ source.scala entity.name.class.declaration
6+
# ^^^^^^^ source.scala
7+
# ^ source.scala punctuation.section.block.begin.scala
8+
> val x = MediaRange.`*/*`
9+
#^^^^ source.scala
10+
# ^^^ source.scala keyword.declaration.stable.scala
11+
# ^ source.scala
12+
# ^ source.scala variable.other.declaration.scala
13+
# ^ source.scala
14+
# ^ source.scala keyword.operator.comparison.scala
15+
# ^ source.scala
16+
# ^^^^^^^^^^ source.scala entity.name.class
17+
# ^ source.scala
18+
# ^^^^^ source.scala
19+
>
20+
> val y = `MediaRange`.`*/*`
21+
#^^^^ source.scala
22+
# ^^^ source.scala keyword.declaration.stable.scala
23+
# ^ source.scala
24+
# ^ source.scala variable.other.declaration.scala
25+
# ^ source.scala
26+
# ^ source.scala keyword.operator.comparison.scala
27+
# ^ source.scala
28+
# ^^^^^^^^^^^^ source.scala
29+
# ^ source.scala
30+
# ^^^^^ source.scala
31+
>
32+
> val z = `Media Range`
33+
#^^^^ source.scala
34+
# ^^^ source.scala keyword.declaration.stable.scala
35+
# ^ source.scala
36+
# ^ source.scala variable.other.declaration.scala
37+
# ^ source.scala
38+
# ^ source.scala keyword.operator.comparison.scala
39+
# ^ source.scala
40+
# ^^^^^^^^^^^^^ source.scala
41+
>
42+
> def `*/*`(`a b`: `C D`): `e f` = ???
43+
#^^^^ source.scala
44+
# ^^^ source.scala keyword.declaration.scala
45+
# ^ source.scala
46+
# ^^^^^ source.scala entity.name.function.declaration
47+
# ^ source.scala meta.bracket.scala
48+
# ^^^^^ source.scala variable.parameter.scala
49+
# ^ source.scala meta.colon.scala
50+
# ^ source.scala
51+
# ^^^^^ source.scala
52+
# ^ source.scala meta.bracket.scala
53+
# ^ source.scala keyword.operator.scala
54+
# ^ source.scala
55+
# ^^^^^ source.scala
56+
# ^ source.scala
57+
# ^ source.scala keyword.operator.comparison.scala
58+
# ^ source.scala
59+
# ^^^ source.scala keyword.operator.scala
60+
>
61+
>
62+
>
63+
> val `*/*` = 5
64+
#^^^^ source.scala
65+
# ^^^ source.scala keyword.declaration.stable.scala
66+
# ^ source.scala
67+
# ^^^^^ source.scala variable.other.declaration.scala
68+
# ^ source.scala
69+
# ^ source.scala keyword.operator.comparison.scala
70+
# ^ source.scala
71+
# ^ source.scala constant.numeric.scala
72+
> }
73+
#^ source.scala
74+
# ^ source.scala punctuation.section.block.end.scala

Diff for: tests/snap/scala_spec.test.scala.snap

+3-1
Original file line numberDiff line numberDiff line change
@@ -2166,7 +2166,9 @@
21662166
> case `y` =>
21672167
#^^^^^^^^ source.scala
21682168
# ^^^^ source.scala keyword.control.flow.scala
2169-
# ^^^^^ source.scala
2169+
# ^ source.scala
2170+
# ^^^ source.scala
2171+
# ^ source.scala
21702172
# ^ source.scala keyword.operator.comparison.scala
21712173
# ^ source.scala keyword.operator.comparison.scala
21722174
# ^^ source.scala

0 commit comments

Comments
 (0)