Skip to content

Commit 170078a

Browse files
committed
Simplify arrow parameter regex so make sure it doesnt take forever
1 parent 42d20a6 commit 170078a

File tree

6 files changed

+61
-4
lines changed

6 files changed

+61
-4
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,7 @@ repository:
10051005
captures:
10061006
'1': { name: variable.parameter.ts }
10071007
- name: meta.arrow.ts
1008-
begin: (?x)(?<=return|throw|yield|await|async|[=(\[,:>*])\s*(?=\(([^()]+|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
1008+
begin: (?x)(?<=return|throw|yield|await|async|[=(\[,:>*])\s*(?=\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=>)
10091009
end: (?==>)
10101010
patterns:
10111011
- include: '#function-parameters'

TypeScript.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@
182182
</dict>
183183
<dict>
184184
<key>begin</key>
185-
<string>(?x)(?&lt;=return|throw|yield|await|async|[=(\[,:&gt;*])\s*(?=\(([^()]+|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
185+
<string>(?x)(?&lt;=return|throw|yield|await|async|[=(\[,:&gt;*])\s*(?=\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
186186
<key>end</key>
187187
<string>(?==&gt;)</string>
188188
<key>name</key>

TypeScriptReact.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -995,7 +995,7 @@ repository:
995995
captures:
996996
'1': { name: variable.parameter.tsx }
997997
- name: meta.arrow.tsx
998-
begin: (?x)(?<=return|throw|yield|await|async|[=(\[,:>*])\s*(?=\(([^()]+|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)
998+
begin: (?x)(?<=return|throw|yield|await|async|[=(\[,:>*])\s*(?=\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=>)
999999
end: (?==>)
10001000
patterns:
10011001
- include: '#function-parameters'

TypeScriptReact.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@
182182
</dict>
183183
<dict>
184184
<key>begin</key>
185-
<string>(?x)(?&lt;=return|throw|yield|await|async|[=(\[,:&gt;*])\s*(?=\(([^()]+|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
185+
<string>(?x)(?&lt;=return|throw|yield|await|async|[=(\[,:&gt;*])\s*(?=\([^()]*(\([^()]*\))*[^()]*(\([^()]*\))*[^()]*\)(\s*:\s*(.)*)?\s*=&gt;)</string>
186186
<key>end</key>
187187
<string>(?==&gt;)</string>
188188
<key>name</key>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
original file
2+
-----------------------------------
3+
optsList.sort((a, b) => compareValues<string>(a.name.toLowerCase(), b.name.toLowerCase()));
4+
-----------------------------------
5+
6+
>optsList.sort((a, b) => compareValues<string>(a.name.toLowerCase(), b.name.toLowerCase()));
7+
^^^^^^^^^^^^^
8+
source.ts
9+
^
10+
source.ts meta.brace.round.ts
11+
^
12+
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts
13+
^
14+
source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
15+
^
16+
source.ts meta.arrow.ts meta.parameters.ts
17+
^
18+
source.ts meta.arrow.ts meta.parameters.ts
19+
^
20+
source.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts
21+
^
22+
source.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts
23+
^
24+
source.ts meta.arrow.ts
25+
^^
26+
source.ts meta.arrow.ts storage.type.function.arrow.ts
27+
^
28+
source.ts meta.arrow.ts
29+
^^^^^^^^^^^^^
30+
source.ts meta.type.parameters.ts entity.name.function.ts
31+
^
32+
source.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts
33+
^^^^^^
34+
source.ts meta.type.parameters.ts support.type.primitive.ts
35+
^
36+
source.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts
37+
^
38+
source.ts meta.brace.round.ts
39+
^^^^^^^^^^^^^^^^^^
40+
source.ts
41+
^
42+
source.ts meta.brace.round.ts
43+
^
44+
source.ts meta.brace.round.ts
45+
^^^^^^^^^^^^^^^^^^^^
46+
source.ts
47+
^
48+
source.ts meta.brace.round.ts
49+
^
50+
source.ts meta.brace.round.ts
51+
^
52+
source.ts meta.brace.round.ts
53+
^
54+
source.ts meta.brace.round.ts
55+
^^
56+
source.ts

tests/cases/arrowInsideCall.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
optsList.sort((a, b) => compareValues<string>(a.name.toLowerCase(), b.name.toLowerCase()));

0 commit comments

Comments
 (0)