Skip to content

Commit 9c94065

Browse files
committed
Improve scopes of type cast declarations
1 parent c9c955a commit 9c94065

25 files changed

+203
-192
lines changed

TypeScript.YAML-tmLanguage

+6-3
Original file line numberDiff line numberDiff line change
@@ -1375,7 +1375,7 @@ repository:
13751375
match: '{{startOfIdentifier}}(as)\s+(const)(?=\s*([,}]|$))'
13761376
captures:
13771377
'1': { name: keyword.control.as.ts }
1378-
'2': { name: storage.modifier.ts }
1378+
'2': { name: storage.modifier.const.type.ts }
13791379
- name: meta.object.member.ts
13801380
begin: '{{startOfIdentifier}}(as)\s+'
13811381
beginCaptures:
@@ -1561,7 +1561,7 @@ repository:
15611561
match: \s*(<)\s*(const)\s*(>)
15621562
captures:
15631563
'1': { name: meta.brace.angle.ts }
1564-
'2': { name: storage.modifier.ts }
1564+
'2': { name: meta.type.cast.ts storage.modifier.const.type.ts }
15651565
'3': { name: meta.brace.angle.ts }
15661566
- name: cast.expr.ts
15671567
# We need to differentiate between the relational '<' operator and the beginning of a type assertion/cast using the surrounding context.
@@ -1574,6 +1574,7 @@ repository:
15741574
end: (\>)
15751575
endCaptures:
15761576
'1': { name: meta.brace.angle.ts }
1577+
contentName: meta.type.cast.ts
15771578
patterns:
15781579
- include: '#type'
15791580
- name: cast.expr.ts
@@ -1587,6 +1588,7 @@ repository:
15871588
end: (\>)
15881589
endCaptures:
15891590
'1': { name: meta.brace.angle.ts }
1591+
contentName: meta.type.cast.ts
15901592
patterns:
15911593
- include: '#type'
15921594

@@ -1624,11 +1626,12 @@ repository:
16241626
- match: '{{startOfIdentifier}}(as)\s+(const)(?=\s*($|[;,:})\]]))'
16251627
captures:
16261628
'1': { name: keyword.control.as.ts }
1627-
'2': { name: storage.modifier.ts }
1629+
'2': { name: storage.modifier.const.type.ts }
16281630
- begin: '{{startOfIdentifier}}(as)\s+'
16291631
beginCaptures:
16301632
'1': { name: keyword.control.as.ts }
16311633
end: (?=$|^|[;,:})\]]|\|\||\&\&|({{startOfIdentifier}}(as)\s+)|(\s+\<))
1634+
contentName: meta.type.cast.ts
16321635
patterns:
16331636
- include: '#type'
16341637
- name: keyword.operator.spread.ts

TypeScript.tmLanguage

+9-3
Original file line numberDiff line numberDiff line change
@@ -4440,7 +4440,7 @@
44404440
<key>2</key>
44414441
<dict>
44424442
<key>name</key>
4443-
<string>storage.modifier.ts</string>
4443+
<string>storage.modifier.const.type.ts</string>
44444444
</dict>
44454445
</dict>
44464446
</dict>
@@ -5099,7 +5099,7 @@
50995099
<key>2</key>
51005100
<dict>
51015101
<key>name</key>
5102-
<string>storage.modifier.ts</string>
5102+
<string>meta.type.cast.ts storage.modifier.const.type.ts</string>
51035103
</dict>
51045104
<key>3</key>
51055105
<dict>
@@ -5131,6 +5131,8 @@
51315131
<string>meta.brace.angle.ts</string>
51325132
</dict>
51335133
</dict>
5134+
<key>contentName</key>
5135+
<string>meta.type.cast.ts</string>
51345136
<key>patterns</key>
51355137
<array>
51365138
<dict>
@@ -5162,6 +5164,8 @@
51625164
<string>meta.brace.angle.ts</string>
51635165
</dict>
51645166
</dict>
5167+
<key>contentName</key>
5168+
<string>meta.type.cast.ts</string>
51655169
<key>patterns</key>
51665170
<array>
51675171
<dict>
@@ -5281,7 +5285,7 @@
52815285
<key>2</key>
52825286
<dict>
52835287
<key>name</key>
5284-
<string>storage.modifier.ts</string>
5288+
<string>storage.modifier.const.type.ts</string>
52855289
</dict>
52865290
</dict>
52875291
</dict>
@@ -5298,6 +5302,8 @@
52985302
</dict>
52995303
<key>end</key>
53005304
<string>(?=$|^|[;,:})\]]|\|\||\&amp;\&amp;|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+)|(\s+\&lt;))</string>
5305+
<key>contentName</key>
5306+
<string>meta.type.cast.ts</string>
53015307
<key>patterns</key>
53025308
<array>
53035309
<dict>

TypeScriptReact.tmLanguage

+4-2
Original file line numberDiff line numberDiff line change
@@ -4464,7 +4464,7 @@
44644464
<key>2</key>
44654465
<dict>
44664466
<key>name</key>
4467-
<string>storage.modifier.tsx</string>
4467+
<string>storage.modifier.const.type.tsx</string>
44684468
</dict>
44694469
</dict>
44704470
</dict>
@@ -5227,7 +5227,7 @@
52275227
<key>2</key>
52285228
<dict>
52295229
<key>name</key>
5230-
<string>storage.modifier.tsx</string>
5230+
<string>storage.modifier.const.type.tsx</string>
52315231
</dict>
52325232
</dict>
52335233
</dict>
@@ -5244,6 +5244,8 @@
52445244
</dict>
52455245
<key>end</key>
52465246
<string>(?=$|^|[;,:})\]]|\|\||\&amp;\&amp;|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(as)\s+)|(\s+\&lt;))</string>
5247+
<key>contentName</key>
5248+
<string>meta.type.cast.tsx</string>
52475249
<key>patterns</key>
52485250
<array>
52495251
<dict>

tests/baselines/ArrowFunctionInsideTypeAssertion.baseline.txt

+26-26
Original file line numberDiff line numberDiff line change
@@ -67,37 +67,37 @@ Grammar: TypeScript.tmLanguage
6767
^
6868
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts
6969
^
70-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
70+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
7171
^^^^^^^
72-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts
72+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts
7373
^
74-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
74+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
7575
^
76-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts
76+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts
7777
^^^^^^^^^^^
78-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts
78+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts
7979
^
80-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts
80+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts punctuation.separator.parameter.ts
8181
^
82-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts
82+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts
8383
^^^^^^^^^^^^
84-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts
84+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts
8585
^
86-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
86+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
8787
^
88-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts
88+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts
8989
^^^^^^
90-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
90+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
9191
^
92-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
92+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
9393
^
94-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts
94+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts
9595
^^
96-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.return.ts storage.type.function.arrow.ts
96+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.return.ts storage.type.function.arrow.ts
9797
^
98-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.return.ts
98+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.return.ts
9999
^^^^
100-
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.function.return.ts support.type.primitive.ts
100+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.type.cast.ts meta.type.function.return.ts support.type.primitive.ts
101101
^
102102
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts cast.expr.ts meta.brace.angle.ts
103103
^^^^
@@ -346,25 +346,25 @@ Grammar: TypeScript.tmLanguage
346346
^
347347
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts
348348
^
349-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
349+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
350350
^
351-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts
351+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts
352352
^
353-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
353+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts
354354
^
355-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts
355+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts
356356
^^^^^^
357-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
357+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts
358358
^
359-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
359+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts
360360
^
361-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts
361+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts
362362
^^
363-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.return.ts storage.type.function.arrow.ts
363+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.return.ts storage.type.function.arrow.ts
364364
^
365-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.return.ts
365+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.return.ts
366366
^^^^^^
367-
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.function.return.ts support.type.primitive.ts
367+
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.type.cast.ts meta.type.function.return.ts support.type.primitive.ts
368368
^
369369
source.ts meta.function.ts meta.block.ts meta.block.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts
370370
^

tests/baselines/Issue314.baseline.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ Grammar: TypeScript.tmLanguage
3636
^
3737
source.ts meta.var.expr.ts
3838
^
39-
source.ts meta.var.expr.ts entity.name.type.ts
39+
source.ts meta.var.expr.ts meta.type.cast.ts entity.name.type.ts
4040
^
41-
source.ts meta.var.expr.ts
41+
source.ts meta.var.expr.ts meta.type.cast.ts
4242
^
4343
source.ts meta.var.expr.ts keyword.operator.ternary.ts
4444
^

0 commit comments

Comments
 (0)