Skip to content

Commit f17fefd

Browse files
committed
Handle new line in variable initializer when expression ends with arrow operator
Fixes #702
1 parent 9f36bf2 commit f17fefd

File tree

5 files changed

+41
-3
lines changed

5 files changed

+41
-3
lines changed

TypeScript.YAML-tmLanguage

+1-1
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ repository:
631631
variable-initializer:
632632
patterns:
633633
# if it is assignment with expression on same line, use end of line as end of scope
634-
- begin: (?<!=|!)(=)(?!=)(?=\s*\S)
634+
- begin: (?<!=|!)(=)(?!=)(?=\s*\S)(?!\s*.*=>\s*$)
635635
beginCaptures:
636636
'1': { name: keyword.operator.assignment.ts }
637637
end: (?=$|^|[,);}\]]|(\s+(of|in)\s+))

TypeScript.tmLanguage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1994,7 +1994,7 @@
19941994
<array>
19951995
<dict>
19961996
<key>begin</key>
1997-
<string>(?&lt;!=|!)(=)(?!=)(?=\s*\S)</string>
1997+
<string>(?&lt;!=|!)(=)(?!=)(?=\s*\S)(?!\s*.*=&gt;\s*$)</string>
19981998
<key>beginCaptures</key>
19991999
<dict>
20002000
<key>1</key>

TypeScriptReact.tmLanguage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1998,7 +1998,7 @@
19981998
<array>
19991999
<dict>
20002000
<key>begin</key>
2001-
<string>(?&lt;!=|!)(=)(?!=)(?=\s*\S)</string>
2001+
<string>(?&lt;!=|!)(=)(?!=)(?=\s*\S)(?!\s*.*=&gt;\s*$)</string>
20022002
<key>beginCaptures</key>
20032003
<dict>
20042004
<key>1</key>

tests/baselines/Issue702.baseline.txt

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
original file
2+
-----------------------------------
3+
const t = () =>
4+
`a`
5+
-----------------------------------
6+
7+
Grammar: TypeScript.tmLanguage
8+
-----------------------------------
9+
>const t = () =>
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.constant.ts entity.name.function.ts
16+
^
17+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
18+
^
19+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
20+
^
21+
source.ts meta.var.expr.ts meta.arrow.ts
22+
^
23+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
24+
^
25+
source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
26+
^
27+
source.ts meta.var.expr.ts meta.arrow.ts
28+
^^
29+
source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts
30+
>`a`
31+
^
32+
source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts
33+
^
34+
source.ts meta.var.expr.ts string.template.ts
35+
^
36+
source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts

tests/cases/Issue702.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
const t = () =>
2+
`a`

0 commit comments

Comments
 (0)