Skip to content

Commit f35a4db

Browse files
committed
Consume parenthesis of new and function call so that they dont participate in arrow detection
Fixes #321
1 parent b7a1912 commit f35a4db

21 files changed

+1481
-276
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,7 +1209,7 @@ repository:
12091209
beginCaptures:
12101210
'1': { name: punctuation.accessor.ts }
12111211
'2': { name: entity.name.function.ts }
1212-
end: (?=\()
1212+
end: (?<=\))
12131213
patterns:
12141214
- include: '#comment'
12151215
- name: meta.type.parameters.ts
@@ -1222,6 +1222,7 @@ repository:
12221222
patterns:
12231223
- include: '#type'
12241224
- include: '#punctuation-comma'
1225+
- include: '#paren-expression'
12251226

12261227
identifiers:
12271228
patterns:
@@ -1292,9 +1293,9 @@ repository:
12921293
begin: '(?<!\.|\$)\b(new)\b(?!\$)'
12931294
beginCaptures:
12941295
'1': { name: keyword.operator.new.ts }
1295-
# new-expr ends just before any type or call arguments. Type arguments will be picked up by #cast.
1296-
end: '(?=[(;),]|$|((?<!\.|\$)\bnew\b(?!\$)))'
1296+
end: '(?<=\))|(?=[;),]|$|((?<!\.|\$)\bnew\b(?!\$)))'
12971297
patterns:
1298+
- include: '#paren-expression'
12981299
- include: '#type'
12991300

13001301
object-member:

TypeScript.tmLanguage

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3403,7 +3403,7 @@
34033403
</dict>
34043404
</dict>
34053405
<key>end</key>
3406-
<string>(?=\()</string>
3406+
<string>(?&lt;=\))</string>
34073407
<key>patterns</key>
34083408
<array>
34093409
<dict>
@@ -3445,6 +3445,10 @@
34453445
</dict>
34463446
</array>
34473447
</dict>
3448+
<dict>
3449+
<key>include</key>
3450+
<string>#paren-expression</string>
3451+
</dict>
34483452
</array>
34493453
</dict>
34503454
<key>identifiers</key>
@@ -3614,9 +3618,13 @@
36143618
</dict>
36153619
</dict>
36163620
<key>end</key>
3617-
<string>(?=[(;),]|$|((?&lt;!\.|\$)\bnew\b(?!\$)))</string>
3621+
<string>(?&lt;=\))|(?=[;),]|$|((?&lt;!\.|\$)\bnew\b(?!\$)))</string>
36183622
<key>patterns</key>
36193623
<array>
3624+
<dict>
3625+
<key>include</key>
3626+
<string>#paren-expression</string>
3627+
</dict>
36203628
<dict>
36213629
<key>include</key>
36223630
<string>#type</string>

TypeScriptReact.tmLanguage

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3407,7 +3407,7 @@
34073407
</dict>
34083408
</dict>
34093409
<key>end</key>
3410-
<string>(?=\()</string>
3410+
<string>(?&lt;=\))</string>
34113411
<key>patterns</key>
34123412
<array>
34133413
<dict>
@@ -3449,6 +3449,10 @@
34493449
</dict>
34503450
</array>
34513451
</dict>
3452+
<dict>
3453+
<key>include</key>
3454+
<string>#paren-expression</string>
3455+
</dict>
34523456
</array>
34533457
</dict>
34543458
<key>identifiers</key>
@@ -3596,9 +3600,13 @@
35963600
</dict>
35973601
</dict>
35983602
<key>end</key>
3599-
<string>(?=[(;),]|$|((?&lt;!\.|\$)\bnew\b(?!\$)))</string>
3603+
<string>(?&lt;=\))|(?=[;),]|$|((?&lt;!\.|\$)\bnew\b(?!\$)))</string>
36003604
<key>patterns</key>
36013605
<array>
3606+
<dict>
3607+
<key>include</key>
3608+
<string>#paren-expression</string>
3609+
</dict>
36023610
<dict>
36033611
<key>include</key>
36043612
<string>#type</string>

tests/baselines/Abstracts.baseline.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,9 +254,9 @@ Grammar: TypeScript.tmLanguage
254254
^^^
255255
source.ts meta.var.expr.ts new.expr.ts entity.name.type.ts
256256
^
257-
source.ts meta.var.expr.ts meta.brace.round.ts
257+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
258258
^
259-
source.ts meta.var.expr.ts meta.brace.round.ts
259+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
260260
^
261261
source.ts punctuation.terminator.statement.ts
262262
>cow.makeSound();

tests/baselines/Comments.baseline.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2035,9 +2035,9 @@ Grammar: TypeScript.tmLanguage
20352035
^^^^^^
20362036
source.ts meta.var.expr.ts new.expr.ts entity.name.type.ts
20372037
^
2038-
source.ts meta.var.expr.ts meta.brace.round.ts
2038+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
20392039
^
2040-
source.ts meta.var.expr.ts meta.brace.round.ts
2040+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
20412041
^
20422042
source.ts punctuation.terminator.statement.ts
20432043
>var x=/*comments*/new String();
@@ -2062,9 +2062,9 @@ Grammar: TypeScript.tmLanguage
20622062
^^^^^^
20632063
source.ts meta.var.expr.ts new.expr.ts entity.name.type.ts
20642064
^
2065-
source.ts meta.var.expr.ts meta.brace.round.ts
2065+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
20662066
^
2067-
source.ts meta.var.expr.ts meta.brace.round.ts
2067+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
20682068
^
20692069
source.ts punctuation.terminator.statement.ts
20702070
>var x= new/*comments*/String();
@@ -2089,9 +2089,9 @@ Grammar: TypeScript.tmLanguage
20892089
^^^^^^
20902090
source.ts meta.var.expr.ts new.expr.ts entity.name.type.ts
20912091
^
2092-
source.ts meta.var.expr.ts meta.brace.round.ts
2092+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
20932093
^
2094-
source.ts meta.var.expr.ts meta.brace.round.ts
2094+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
20952095
^
20962096
source.ts punctuation.terminator.statement.ts
20972097
>
@@ -2125,9 +2125,9 @@ Grammar: TypeScript.tmLanguage
21252125
^^^^^^
21262126
source.ts meta.var.expr.ts new.expr.ts entity.name.type.ts
21272127
^
2128-
source.ts meta.var.expr.ts meta.brace.round.ts
2128+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
21292129
^
2130-
source.ts meta.var.expr.ts meta.brace.round.ts
2130+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
21312131
^
21322132
source.ts punctuation.terminator.statement.ts
21332133
>var x = /* comments */ new String();
@@ -2158,9 +2158,9 @@ Grammar: TypeScript.tmLanguage
21582158
^^^^^^
21592159
source.ts meta.var.expr.ts new.expr.ts entity.name.type.ts
21602160
^
2161-
source.ts meta.var.expr.ts meta.brace.round.ts
2161+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
21622162
^
2163-
source.ts meta.var.expr.ts meta.brace.round.ts
2163+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
21642164
^
21652165
source.ts punctuation.terminator.statement.ts
21662166
>var x = new /* comments */ String();
@@ -2191,8 +2191,8 @@ Grammar: TypeScript.tmLanguage
21912191
^^^^^^
21922192
source.ts meta.var.expr.ts new.expr.ts entity.name.type.ts
21932193
^
2194-
source.ts meta.var.expr.ts meta.brace.round.ts
2194+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
21952195
^
2196-
source.ts meta.var.expr.ts meta.brace.round.ts
2196+
source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts
21972197
^
21982198
source.ts punctuation.terminator.statement.ts

tests/baselines/FunctionMethodOverloads.baseline.txt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -295,13 +295,13 @@ Grammar: TypeScript.tmLanguage
295295
^^^^^
296296
source.ts meta.function.ts meta.block.ts new.expr.ts entity.name.type.ts
297297
^
298-
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
298+
source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts
299299
^
300-
source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts
300+
source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts
301301
^
302-
source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts
302+
source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts
303303
^
304-
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
304+
source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts
305305
>}
306306
^
307307
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
@@ -558,13 +558,13 @@ Grammar: TypeScript.tmLanguage
558558
^^^^^
559559
source.ts meta.function.ts meta.block.ts new.expr.ts entity.name.type.ts
560560
^
561-
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
561+
source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts
562562
^
563-
source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts
563+
source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts
564564
^
565-
source.ts meta.function.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts
565+
source.ts meta.function.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts
566566
^
567-
source.ts meta.function.ts meta.block.ts meta.brace.round.ts
567+
source.ts meta.function.ts meta.block.ts new.expr.ts meta.brace.round.ts
568568
>}
569569
^
570570
source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts
@@ -816,13 +816,13 @@ Grammar: TypeScript.tmLanguage
816816
^^^^^
817817
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts entity.name.type.ts
818818
^
819-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts
819+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts
820820
^
821-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts
821+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts
822822
^
823-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts
823+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts
824824
^
825-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts
825+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts
826826
> }
827827
^^^^
828828
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts
@@ -1069,13 +1069,13 @@ Grammar: TypeScript.tmLanguage
10691069
^^^^^
10701070
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts entity.name.type.ts
10711071
^
1072-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts
1072+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts
10731073
^
1074-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.begin.ts
1074+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.begin.ts
10751075
^
1076-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.double.ts punctuation.definition.string.end.ts
1076+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts string.quoted.double.ts punctuation.definition.string.end.ts
10771077
^
1078-
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts
1078+
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts new.expr.ts meta.brace.round.ts
10791079
> }
10801080
^^^^
10811081
source.ts meta.class.ts meta.method.declaration.ts meta.block.ts

0 commit comments

Comments
 (0)