Skip to content

Commit 2b74d88

Browse files
committed
Handle the scenario of => ( followed by new line where we treat that as possibly arrow
This adds string literal matching in the binding pattern for parameter declarations as object literals will be treated as destructured parameters Fixes #608
1 parent 23b94ac commit 2b74d88

File tree

5 files changed

+87
-0
lines changed

5 files changed

+87
-0
lines changed

TypeScript.YAML-tmLanguage

+2
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ repository:
310310
binding-element:
311311
patterns:
312312
- include: '#comment'
313+
- include: '#string'
313314
- include: '#object-binding-pattern'
314315
- include: '#array-binding-pattern'
315316
- include: '#destructuring-variable-rest'
@@ -404,6 +405,7 @@ repository:
404405
parameter-binding-element:
405406
patterns:
406407
- include: '#comment'
408+
- include: '#string'
407409
- include: '#parameter-object-binding-pattern'
408410
- include: '#parameter-array-binding-pattern'
409411
- include: '#destructuring-parameter-rest'

TypeScript.tmLanguage

+8
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,10 @@
726726
<key>include</key>
727727
<string>#comment</string>
728728
</dict>
729+
<dict>
730+
<key>include</key>
731+
<string>#string</string>
732+
</dict>
729733
<dict>
730734
<key>include</key>
731735
<string>#object-binding-pattern</string>
@@ -1121,6 +1125,10 @@
11211125
<key>include</key>
11221126
<string>#comment</string>
11231127
</dict>
1128+
<dict>
1129+
<key>include</key>
1130+
<string>#string</string>
1131+
</dict>
11241132
<dict>
11251133
<key>include</key>
11261134
<string>#parameter-object-binding-pattern</string>

TypeScriptReact.tmLanguage

+8
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,10 @@
730730
<key>include</key>
731731
<string>#comment</string>
732732
</dict>
733+
<dict>
734+
<key>include</key>
735+
<string>#string</string>
736+
</dict>
733737
<dict>
734738
<key>include</key>
735739
<string>#object-binding-pattern</string>
@@ -1125,6 +1129,10 @@
11251129
<key>include</key>
11261130
<string>#comment</string>
11271131
</dict>
1132+
<dict>
1133+
<key>include</key>
1134+
<string>#string</string>
1135+
</dict>
11281136
<dict>
11291137
<key>include</key>
11301138
<string>#parameter-object-binding-pattern</string>

tests/baselines/Issue608.baseline.txt

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
original file
2+
-----------------------------------
3+
const example = () => (
4+
{example: "`x=y`"} // everything after this line is highlighted like a string
5+
)
6+
7+
-----------------------------------
8+
9+
Grammar: TypeScript.tmLanguage
10+
-----------------------------------
11+
>const example = () => (
12+
^^^^^
13+
source.ts meta.var.expr.ts storage.type.ts
14+
^
15+
source.ts meta.var.expr.ts
16+
^^^^^^^
17+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts
18+
^
19+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
20+
^
21+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
22+
^
23+
source.ts meta.var.expr.ts meta.arrow.ts
24+
^
25+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
26+
^
27+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
28+
^
29+
source.ts meta.var.expr.ts meta.arrow.ts
30+
^^
31+
source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts
32+
^
33+
source.ts meta.var.expr.ts meta.arrow.ts
34+
^
35+
source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts
36+
> {example: "`x=y`"} // everything after this line is highlighted like a string
37+
^^
38+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts
39+
^
40+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts
41+
^^^^^^^
42+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts variable.object.property.ts
43+
^
44+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.destructuring.ts
45+
^
46+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts
47+
^
48+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.begin.ts
49+
^^^^^
50+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts
51+
^
52+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts string.quoted.double.ts punctuation.definition.string.end.ts
53+
^
54+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameter.object-binding-pattern.ts punctuation.definition.binding-pattern.object.ts
55+
^
56+
source.ts meta.var.expr.ts meta.arrow.ts
57+
^^
58+
source.ts meta.var.expr.ts meta.arrow.ts comment.line.double-slash.ts punctuation.definition.comment.ts
59+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60+
source.ts meta.var.expr.ts meta.arrow.ts comment.line.double-slash.ts
61+
>)
62+
^
63+
source.ts meta.var.expr.ts meta.arrow.ts meta.brace.round.ts
64+
>
65+
^
66+
source.ts

tests/cases/Issue608.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
const example = () => (
2+
{example: "`x=y`"} // everything after this line is highlighted like a string
3+
)

0 commit comments

Comments
 (0)