Skip to content

Commit 775080a

Browse files
committed
Handle single line comments in arrow function
Fixes #674
1 parent 8980e4b commit 775080a

File tree

5 files changed

+109
-3
lines changed

5 files changed

+109
-3
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -788,8 +788,9 @@ repository:
788788
begin: =>
789789
beginCaptures:
790790
'0': { name: storage.type.function.arrow.ts }
791-
end: (?<=\}|\S)(?<!=>)|((?!\{)(?=\S))
791+
end: ((?<=\}|\S)(?<!=>)|((?!\{)(?=\S)))(?!\/[\/\*])
792792
patterns:
793+
- include: '#single-line-comment-consuming-line-ending'
793794
- include: '#decl-block'
794795
- include: '#expression'
795796

TypeScript.tmLanguage

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2526,9 +2526,13 @@
25262526
</dict>
25272527
</dict>
25282528
<key>end</key>
2529-
<string>(?&lt;=\}|\S)(?&lt;!=&gt;)|((?!\{)(?=\S))</string>
2529+
<string>((?&lt;=\}|\S)(?&lt;!=&gt;)|((?!\{)(?=\S)))(?!\/[\/\*])</string>
25302530
<key>patterns</key>
25312531
<array>
2532+
<dict>
2533+
<key>include</key>
2534+
<string>#single-line-comment-consuming-line-ending</string>
2535+
</dict>
25322536
<dict>
25332537
<key>include</key>
25342538
<string>#decl-block</string>

TypeScriptReact.tmLanguage

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2530,9 +2530,13 @@
25302530
</dict>
25312531
</dict>
25322532
<key>end</key>
2533-
<string>(?&lt;=\}|\S)(?&lt;!=&gt;)|((?!\{)(?=\S))</string>
2533+
<string>((?&lt;=\}|\S)(?&lt;!=&gt;)|((?!\{)(?=\S)))(?!\/[\/\*])</string>
25342534
<key>patterns</key>
25352535
<array>
2536+
<dict>
2537+
<key>include</key>
2538+
<string>#single-line-comment-consuming-line-ending</string>
2539+
</dict>
25362540
<dict>
25372541
<key>include</key>
25382542
<string>#decl-block</string>

tests/baselines/Issue674.baseline.txt

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
original file
2+
-----------------------------------
3+
const column = {
4+
render: (a) =>
5+
// a,
6+
{
7+
const b = this.state;
8+
}
9+
}
10+
-----------------------------------
11+
12+
Grammar: TypeScript.tmLanguage
13+
-----------------------------------
14+
>const column = {
15+
^^^^^
16+
source.ts meta.var.expr.ts storage.type.ts
17+
^
18+
source.ts meta.var.expr.ts
19+
^^^^^^
20+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts
21+
^
22+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
23+
^
24+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
25+
^
26+
source.ts meta.var.expr.ts
27+
^
28+
source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts
29+
> render: (a) =>
30+
^^^^
31+
source.ts meta.var.expr.ts meta.objectliteral.ts
32+
^^^^^^
33+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts entity.name.function.ts
34+
^
35+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts
36+
^
37+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts
38+
^
39+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
40+
^
41+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
42+
^
43+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
44+
^
45+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts
46+
^^
47+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts storage.type.function.arrow.ts
48+
> // a,
49+
^^^^
50+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts punctuation.whitespace.comment.leading.ts
51+
^^
52+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts comment.line.double-slash.ts punctuation.definition.comment.ts
53+
^^^^
54+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts comment.line.double-slash.ts
55+
> {
56+
^^^^
57+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts
58+
^
59+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts
60+
> const b = this.state;
61+
^^^^^^^^
62+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts
63+
^^^^^
64+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts
65+
^
66+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts
67+
^
68+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts
69+
^
70+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts
71+
^
72+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts
73+
^
74+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts
75+
^^^^
76+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.language.this.ts
77+
^
78+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts punctuation.accessor.ts
79+
^^^^^
80+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts meta.var.expr.ts variable.other.property.ts
81+
^
82+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts
83+
> }
84+
^^^^
85+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts
86+
^
87+
source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts
88+
>}
89+
^
90+
source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts

tests/cases/Issue674.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const column = {
2+
render: (a) =>
3+
// a,
4+
{
5+
const b = this.state;
6+
}
7+
}

0 commit comments

Comments
 (0)