Skip to content

Commit a184e39

Browse files
committed
Fix the async arrow function that spans multiline
Fixes #558
1 parent 9e61a2f commit a184e39

File tree

5 files changed

+330
-14
lines changed

5 files changed

+330
-14
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,10 @@ repository:
166166
- include: '#new-expr'
167167
- include: '#object-literal'
168168
- include: '#expression-operators'
169+
- include: '#paren-expression-possibly-arrow'
169170
- include: '#function-call'
170171
- include: '#literal'
171172
- include: '#support-objects'
172-
- include: '#paren-expression-possibly-arrow'
173173
- include: '#paren-expression'
174174

175175
expressionPunctuations:
@@ -1145,12 +1145,13 @@ repository:
11451145
# but do this only from expression and as last resort
11461146
paren-expression-possibly-arrow:
11471147
patterns:
1148-
- begin: (\()(?=\s*$)
1148+
- begin: (?:{{startOfIdentifier}}(\basync)\s*)?(\()(?=\s*$)
11491149
beginCaptures:
1150-
'1': {name: meta.brace.round.ts }
1150+
'1': { name: storage.modifier.async.ts }
1151+
'2': { name: meta.brace.round.ts }
11511152
end: \)
11521153
endCaptures:
1153-
'0': {name: meta.brace.round.ts }
1154+
'0': { name: meta.brace.round.ts }
11541155
patterns:
11551156
- include: '#expressionWithoutIdentifiers'
11561157
- include: '#function-parameters-body'

TypeScript.tmLanguage

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -265,19 +265,19 @@
265265
</dict>
266266
<dict>
267267
<key>include</key>
268-
<string>#function-call</string>
268+
<string>#paren-expression-possibly-arrow</string>
269269
</dict>
270270
<dict>
271271
<key>include</key>
272-
<string>#literal</string>
272+
<string>#function-call</string>
273273
</dict>
274274
<dict>
275275
<key>include</key>
276-
<string>#support-objects</string>
276+
<string>#literal</string>
277277
</dict>
278278
<dict>
279279
<key>include</key>
280-
<string>#paren-expression-possibly-arrow</string>
280+
<string>#support-objects</string>
281281
</dict>
282282
<dict>
283283
<key>include</key>
@@ -3576,10 +3576,15 @@
35763576
<array>
35773577
<dict>
35783578
<key>begin</key>
3579-
<string>(\()(?=\s*$)</string>
3579+
<string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(\basync)\s*)?(\()(?=\s*$)</string>
35803580
<key>beginCaptures</key>
35813581
<dict>
35823582
<key>1</key>
3583+
<dict>
3584+
<key>name</key>
3585+
<string>storage.modifier.async.ts</string>
3586+
</dict>
3587+
<key>2</key>
35833588
<dict>
35843589
<key>name</key>
35853590
<string>meta.brace.round.ts</string>

TypeScriptReact.tmLanguage

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -269,19 +269,19 @@
269269
</dict>
270270
<dict>
271271
<key>include</key>
272-
<string>#function-call</string>
272+
<string>#paren-expression-possibly-arrow</string>
273273
</dict>
274274
<dict>
275275
<key>include</key>
276-
<string>#literal</string>
276+
<string>#function-call</string>
277277
</dict>
278278
<dict>
279279
<key>include</key>
280-
<string>#support-objects</string>
280+
<string>#literal</string>
281281
</dict>
282282
<dict>
283283
<key>include</key>
284-
<string>#paren-expression-possibly-arrow</string>
284+
<string>#support-objects</string>
285285
</dict>
286286
<dict>
287287
<key>include</key>
@@ -3580,10 +3580,15 @@
35803580
<array>
35813581
<dict>
35823582
<key>begin</key>
3583-
<string>(\()(?=\s*$)</string>
3583+
<string>(?:(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(\basync)\s*)?(\()(?=\s*$)</string>
35843584
<key>beginCaptures</key>
35853585
<dict>
35863586
<key>1</key>
3587+
<dict>
3588+
<key>name</key>
3589+
<string>storage.modifier.async.tsx</string>
3590+
</dict>
3591+
<key>2</key>
35873592
<dict>
35883593
<key>name</key>
35893594
<string>meta.brace.round.tsx</string>

0 commit comments

Comments
 (0)