Skip to content

Commit 602d96a

Browse files
committed
Add missing type annotation pattern matching for constant like variable declarations
Fixes #407
1 parent 2ba4658 commit 602d96a

File tree

5 files changed

+130
-42
lines changed

5 files changed

+130
-42
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,23 +75,27 @@ repository:
7575
'1': { name: meta.definition.variable.ts entity.name.function.ts }
7676
end: (?=$|[;,=}]|(\s+(of|in)\s+))
7777
patterns:
78-
- include: '#type-annotation'
79-
- include: '#string'
80-
- include: '#comment'
78+
- include: '#var-single-variable-type-annotation'
8179
- name: meta.var-single-variable.expr.ts
8280
begin: ([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])
8381
beginCaptures:
8482
'1': { name: meta.definition.variable.ts variable.other.constant.ts }
8583
end: (?=$|[;,=}]|(\s+(of|in)\s+))
84+
patterns:
85+
- include: '#var-single-variable-type-annotation'
8686
- name: meta.var-single-variable.expr.ts
8787
begin: ([_$[:alpha:]][_$[:alnum:]]*)
8888
beginCaptures:
8989
'1': { name: meta.definition.variable.ts variable.other.readwrite.ts }
9090
end: (?=$|[;,=}]|(\s+(of|in)\s+))
9191
patterns:
92-
- include: '#type-annotation'
93-
- include: '#string'
94-
- include: '#comment'
92+
- include: '#var-single-variable-type-annotation'
93+
94+
var-single-variable-type-annotation:
95+
patterns:
96+
- include: '#type-annotation'
97+
- include: '#string'
98+
- include: '#comment'
9599

96100
destructuring-variable:
97101
patterns:

TypeScript.tmLanguage

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -178,15 +178,7 @@
178178
<array>
179179
<dict>
180180
<key>include</key>
181-
<string>#type-annotation</string>
182-
</dict>
183-
<dict>
184-
<key>include</key>
185-
<string>#string</string>
186-
</dict>
187-
<dict>
188-
<key>include</key>
189-
<string>#comment</string>
181+
<string>#var-single-variable-type-annotation</string>
190182
</dict>
191183
</array>
192184
</dict>
@@ -205,6 +197,13 @@
205197
</dict>
206198
<key>end</key>
207199
<string>(?=$|[;,=}]|(\s+(of|in)\s+))</string>
200+
<key>patterns</key>
201+
<array>
202+
<dict>
203+
<key>include</key>
204+
<string>#var-single-variable-type-annotation</string>
205+
</dict>
206+
</array>
208207
</dict>
209208
<dict>
210209
<key>name</key>
@@ -225,20 +224,30 @@
225224
<array>
226225
<dict>
227226
<key>include</key>
228-
<string>#type-annotation</string>
229-
</dict>
230-
<dict>
231-
<key>include</key>
232-
<string>#string</string>
233-
</dict>
234-
<dict>
235-
<key>include</key>
236-
<string>#comment</string>
227+
<string>#var-single-variable-type-annotation</string>
237228
</dict>
238229
</array>
239230
</dict>
240231
</array>
241232
</dict>
233+
<key>var-single-variable-type-annotation</key>
234+
<dict>
235+
<key>patterns</key>
236+
<array>
237+
<dict>
238+
<key>include</key>
239+
<string>#type-annotation</string>
240+
</dict>
241+
<dict>
242+
<key>include</key>
243+
<string>#string</string>
244+
</dict>
245+
<dict>
246+
<key>include</key>
247+
<string>#comment</string>
248+
</dict>
249+
</array>
250+
</dict>
242251
<key>destructuring-variable</key>
243252
<dict>
244253
<key>patterns</key>

TypeScriptReact.tmLanguage

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -178,15 +178,7 @@
178178
<array>
179179
<dict>
180180
<key>include</key>
181-
<string>#type-annotation</string>
182-
</dict>
183-
<dict>
184-
<key>include</key>
185-
<string>#string</string>
186-
</dict>
187-
<dict>
188-
<key>include</key>
189-
<string>#comment</string>
181+
<string>#var-single-variable-type-annotation</string>
190182
</dict>
191183
</array>
192184
</dict>
@@ -205,6 +197,13 @@
205197
</dict>
206198
<key>end</key>
207199
<string>(?=$|[;,=}]|(\s+(of|in)\s+))</string>
200+
<key>patterns</key>
201+
<array>
202+
<dict>
203+
<key>include</key>
204+
<string>#var-single-variable-type-annotation</string>
205+
</dict>
206+
</array>
208207
</dict>
209208
<dict>
210209
<key>name</key>
@@ -225,20 +224,30 @@
225224
<array>
226225
<dict>
227226
<key>include</key>
228-
<string>#type-annotation</string>
229-
</dict>
230-
<dict>
231-
<key>include</key>
232-
<string>#string</string>
233-
</dict>
234-
<dict>
235-
<key>include</key>
236-
<string>#comment</string>
227+
<string>#var-single-variable-type-annotation</string>
237228
</dict>
238229
</array>
239230
</dict>
240231
</array>
241232
</dict>
233+
<key>var-single-variable-type-annotation</key>
234+
<dict>
235+
<key>patterns</key>
236+
<array>
237+
<dict>
238+
<key>include</key>
239+
<string>#type-annotation</string>
240+
</dict>
241+
<dict>
242+
<key>include</key>
243+
<string>#string</string>
244+
</dict>
245+
<dict>
246+
<key>include</key>
247+
<string>#comment</string>
248+
</dict>
249+
</array>
250+
</dict>
242251
<key>destructuring-variable</key>
243252
<dict>
244253
<key>patterns</key>

tests/baselines/Issue407.baseline.txt

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
original file
2+
-----------------------------------
3+
let x: Map<string, string>;
4+
let Y: Map<string, string>;
5+
-----------------------------------
6+
7+
Grammar: TypeScript.tmLanguage
8+
-----------------------------------
9+
>let x: Map<string, string>;
10+
^^^
11+
source.ts meta.var.expr.ts storage.type.ts
12+
^
13+
source.ts meta.var.expr.ts
14+
^
15+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
16+
^
17+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
18+
^
19+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts
20+
^^^
21+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts
22+
^
23+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
24+
^^^^^^
25+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts
26+
^
27+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts
28+
^
29+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts
30+
^^^^^^
31+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts
32+
^
33+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
34+
^
35+
source.ts punctuation.terminator.statement.ts
36+
^^
37+
source.ts
38+
>let Y: Map<string, string>;
39+
^^^
40+
source.ts meta.var.expr.ts storage.type.ts
41+
^
42+
source.ts meta.var.expr.ts
43+
^
44+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts
45+
^
46+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
47+
^
48+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts
49+
^^^
50+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts
51+
^
52+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
53+
^^^^^^
54+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts
55+
^
56+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts
57+
^
58+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts
59+
^^^^^^
60+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts support.type.primitive.ts
61+
^
62+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
63+
^
64+
source.ts punctuation.terminator.statement.ts

tests/cases/Issue407.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
let x: Map<string, string>;
2+
let Y: Map<string, string>;

0 commit comments

Comments
 (0)