Skip to content

Commit 9e3d7a2

Browse files
committed
Use expression as one of the rule in class body to pick up assignments to field declaration that are not on the same line
Fixes #221
1 parent 41478e6 commit 9e3d7a2

File tree

6 files changed

+175
-10
lines changed

6 files changed

+175
-10
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ repository:
438438
- include: '#access-modifier'
439439
- include: '#static-modifier'
440440
- include: '#property-accessor'
441+
- include: '#expression'
441442
- include: '#punctuation-comma'
442443
- include: '#punctuation-semicolon'
443444

TypeScript.tmLanguage

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,6 +1433,10 @@
14331433
<key>include</key>
14341434
<string>#property-accessor</string>
14351435
</dict>
1436+
<dict>
1437+
<key>include</key>
1438+
<string>#expression</string>
1439+
</dict>
14361440
<dict>
14371441
<key>include</key>
14381442
<string>#punctuation-comma</string>

TypeScriptReact.tmLanguage

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,6 +1437,10 @@
14371437
<key>include</key>
14381438
<string>#property-accessor</string>
14391439
</dict>
1440+
<dict>
1441+
<key>include</key>
1442+
<string>#expression</string>
1443+
</dict>
14401444
<dict>
14411445
<key>include</key>
14421446
<string>#punctuation-comma</string>

tests/baselines/Comments.baseline.txt

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1450,8 +1450,10 @@ Grammar: TypeScript.tmLanguage
14501450
source.ts meta.class.ts
14511451
^
14521452
source.ts meta.class.ts punctuation.definition.block.ts
1453-
^^
1453+
^
14541454
source.ts meta.class.ts
1455+
^
1456+
source.ts meta.class.ts constant.numeric.decimal.ts
14551457
^
14561458
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
14571459
^
@@ -1460,8 +1462,10 @@ Grammar: TypeScript.tmLanguage
14601462
source.ts meta.class.ts meta.type.annotation.ts entity.name.type.ts
14611463
^
14621464
source.ts meta.class.ts punctuation.terminator.statement.ts
1463-
^^
1465+
^
14641466
source.ts meta.class.ts
1467+
^
1468+
source.ts meta.class.ts constant.numeric.decimal.ts
14651469
^
14661470
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
14671471
^
@@ -1521,8 +1525,10 @@ Grammar: TypeScript.tmLanguage
15211525
source.ts meta.class.ts
15221526
^
15231527
source.ts meta.class.ts punctuation.definition.block.ts
1524-
^^
1528+
^
15251529
source.ts meta.class.ts
1530+
^
1531+
source.ts meta.class.ts constant.numeric.decimal.ts
15261532
^
15271533
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
15281534
^
@@ -1531,8 +1537,10 @@ Grammar: TypeScript.tmLanguage
15311537
source.ts meta.class.ts meta.type.annotation.ts entity.name.type.ts
15321538
^
15331539
source.ts meta.class.ts punctuation.terminator.statement.ts
1534-
^^
1540+
^
15351541
source.ts meta.class.ts
1542+
^
1543+
source.ts meta.class.ts constant.numeric.decimal.ts
15361544
^
15371545
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
15381546
^
@@ -1592,8 +1600,10 @@ Grammar: TypeScript.tmLanguage
15921600
source.ts meta.class.ts
15931601
^
15941602
source.ts meta.class.ts punctuation.definition.block.ts
1595-
^^
1603+
^
15961604
source.ts meta.class.ts
1605+
^
1606+
source.ts meta.class.ts constant.numeric.decimal.ts
15971607
^
15981608
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
15991609
^
@@ -1602,8 +1612,10 @@ Grammar: TypeScript.tmLanguage
16021612
source.ts meta.class.ts meta.type.annotation.ts entity.name.type.ts
16031613
^
16041614
source.ts meta.class.ts punctuation.terminator.statement.ts
1605-
^^
1615+
^
16061616
source.ts meta.class.ts
1617+
^
1618+
source.ts meta.class.ts constant.numeric.decimal.ts
16071619
^
16081620
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
16091621
^
@@ -1665,8 +1677,10 @@ Grammar: TypeScript.tmLanguage
16651677
source.ts meta.class.ts
16661678
^
16671679
source.ts meta.class.ts punctuation.definition.block.ts
1668-
^^
1680+
^
16691681
source.ts meta.class.ts
1682+
^
1683+
source.ts meta.class.ts constant.numeric.decimal.ts
16701684
^
16711685
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
16721686
^
@@ -1675,8 +1689,10 @@ Grammar: TypeScript.tmLanguage
16751689
source.ts meta.class.ts meta.type.annotation.ts entity.name.type.ts
16761690
^
16771691
source.ts meta.class.ts punctuation.terminator.statement.ts
1678-
^^
1692+
^
16791693
source.ts meta.class.ts
1694+
^
1695+
source.ts meta.class.ts constant.numeric.decimal.ts
16801696
^
16811697
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
16821698
^
@@ -1736,8 +1752,10 @@ Grammar: TypeScript.tmLanguage
17361752
source.ts meta.class.ts comment.block.ts punctuation.definition.comment.ts
17371753
^
17381754
source.ts meta.class.ts punctuation.definition.block.ts
1739-
^^
1755+
^
17401756
source.ts meta.class.ts
1757+
^
1758+
source.ts meta.class.ts constant.numeric.decimal.ts
17411759
^
17421760
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
17431761
^
@@ -1746,8 +1764,10 @@ Grammar: TypeScript.tmLanguage
17461764
source.ts meta.class.ts meta.type.annotation.ts entity.name.type.ts
17471765
^
17481766
source.ts meta.class.ts punctuation.terminator.statement.ts
1749-
^^
1767+
^
17501768
source.ts meta.class.ts
1769+
^
1770+
source.ts meta.class.ts constant.numeric.decimal.ts
17511771
^
17521772
source.ts meta.class.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
17531773
^

tests/baselines/Issue221.baseline.txt

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
original file
2+
-----------------------------------
3+
class syntaxHighlightBug {
4+
5+
variable =
6+
{"example":1};
7+
8+
public wronglyHighlitedCode() {
9+
var a = 1;
10+
return;
11+
}
12+
}
13+
-----------------------------------
14+
15+
Grammar: TypeScript.tmLanguage
16+
-----------------------------------
17+
>class syntaxHighlightBug {
18+
^^^^^
19+
source.ts meta.class.ts storage.type.class.ts
20+
^
21+
source.ts meta.class.ts
22+
^^^^^^^^^^^^^^^^^^
23+
source.ts meta.class.ts entity.name.class.ts
24+
^
25+
source.ts meta.class.ts
26+
^
27+
source.ts meta.class.ts punctuation.definition.block.ts
28+
^^
29+
source.ts meta.class.ts
30+
>
31+
^^
32+
source.ts meta.class.ts
33+
> variable =
34+
^^^^
35+
source.ts meta.class.ts meta.field.declaration.ts
36+
^^^^^^^^
37+
source.ts meta.class.ts meta.field.declaration.ts variable.object.property.ts
38+
^
39+
source.ts meta.class.ts meta.field.declaration.ts
40+
^
41+
source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts
42+
^^
43+
source.ts meta.class.ts meta.field.declaration.ts
44+
> {"example":1};
45+
^^^^
46+
source.ts meta.class.ts
47+
^
48+
source.ts meta.class.ts meta.object-literal.ts punctuation.definition.block.ts
49+
^
50+
source.ts meta.class.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.begin.ts
51+
^^^^^^^
52+
source.ts meta.class.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts
53+
^
54+
source.ts meta.class.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.double.ts punctuation.definition.string.end.ts
55+
^
56+
source.ts meta.class.ts meta.object-literal.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts
57+
^
58+
source.ts meta.class.ts meta.object-literal.ts meta.object.member.ts constant.numeric.decimal.ts
59+
^
60+
source.ts meta.class.ts meta.object-literal.ts punctuation.definition.block.ts
61+
^
62+
source.ts meta.class.ts punctuation.terminator.statement.ts
63+
^^
64+
source.ts meta.class.ts
65+
>
66+
^^
67+
source.ts meta.class.ts
68+
> public wronglyHighlitedCode() {
69+
^^^^
70+
source.ts meta.class.ts
71+
^^^^^^
72+
source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts
73+
^
74+
source.ts meta.class.ts meta.method.declaration.ts
75+
^^^^^^^^^^^^^^^^^^^^
76+
source.ts meta.class.ts meta.method.declaration.ts entity.name.function.ts
77+
^
78+
source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
79+
^
80+
source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts
81+
^
82+
source.ts meta.class.ts meta.method.declaration.ts
83+
^
84+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts
85+
^^
86+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
87+
> var a = 1;
88+
^^^^^^^^
89+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
90+
^^^
91+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts
92+
^
93+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts
94+
^
95+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts variable.other.readwrite.ts
96+
^
97+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts
98+
^
99+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts keyword.operator.assignment.ts
100+
^
101+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts
102+
^
103+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts constant.numeric.decimal.ts
104+
^
105+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts
106+
^^
107+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
108+
> return;
109+
^^^^^^^^
110+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
111+
^^^^^^
112+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts
113+
^
114+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts
115+
^^^
116+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
117+
> }
118+
^^^^
119+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
120+
^
121+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts
122+
^^
123+
source.ts meta.class.ts
124+
>}
125+
^
126+
source.ts meta.class.ts punctuation.definition.block.ts

tests/cases/Issue221.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class syntaxHighlightBug {
2+
3+
variable =
4+
{"example":1};
5+
6+
public wronglyHighlitedCode() {
7+
var a = 1;
8+
return;
9+
}
10+
}

0 commit comments

Comments
 (0)