Skip to content

Commit 24c7fb5

Browse files
committed
Fix the default keyword detection in import/export clause
Fixes #569
1 parent 4b0d4f3 commit 24c7fb5

File tree

6 files changed

+74
-5
lines changed

6 files changed

+74
-5
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -899,13 +899,14 @@ repository:
899899
patterns:
900900
- include: '#comment'
901901
#(default|*|name) as alias
902-
- match: '{{startOfIdentifier}}(?:(\bdefault)|(\*)|(\b{{identifier}}))\s+(as)\s+(\b{{identifier}})'
902+
- match: '{{startOfIdentifier}}(?:(\bdefault)|(\*)|(\b{{identifier}}))\s+(as)\s+(?:(\bdefault{{endOfIdentifier}})|(\b{{identifier}}))'
903903
captures:
904904
'1': { name: keyword.control.default.ts }
905905
'2': { name: constant.language.import-export-all.ts }
906906
'3': { name: variable.other.readwrite.ts }
907907
'4': { name: keyword.control.as.ts }
908-
'5': { name: variable.other.readwrite.alias.ts }
908+
'5': { name: keyword.control.default.ts }
909+
'6': { name: variable.other.readwrite.alias.ts }
909910
- include: '#punctuation-comma'
910911
- name: constant.language.import-export-all.ts
911912
match: \*

TypeScript.tmLanguage

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2811,7 +2811,7 @@
28112811
</dict>
28122812
<dict>
28132813
<key>match</key>
2814-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*))\s+(as)\s+(\b[_$[:alpha:]][_$[:alnum:]]*)</string>
2814+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*))\s+(as)\s+(?:(\bdefault(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|(\b[_$[:alpha:]][_$[:alnum:]]*))</string>
28152815
<key>captures</key>
28162816
<dict>
28172817
<key>1</key>
@@ -2835,6 +2835,11 @@
28352835
<string>keyword.control.as.ts</string>
28362836
</dict>
28372837
<key>5</key>
2838+
<dict>
2839+
<key>name</key>
2840+
<string>keyword.control.default.ts</string>
2841+
</dict>
2842+
<key>6</key>
28382843
<dict>
28392844
<key>name</key>
28402845
<string>variable.other.readwrite.alias.ts</string>

TypeScriptReact.tmLanguage

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2815,7 +2815,7 @@
28152815
</dict>
28162816
<dict>
28172817
<key>match</key>
2818-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*))\s+(as)\s+(\b[_$[:alpha:]][_$[:alnum:]]*)</string>
2818+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*))\s+(as)\s+(?:(\bdefault(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|(\b[_$[:alpha:]][_$[:alnum:]]*))</string>
28192819
<key>captures</key>
28202820
<dict>
28212821
<key>1</key>
@@ -2839,6 +2839,11 @@
28392839
<string>keyword.control.as.tsx</string>
28402840
</dict>
28412841
<key>5</key>
2842+
<dict>
2843+
<key>name</key>
2844+
<string>keyword.control.default.tsx</string>
2845+
</dict>
2846+
<key>6</key>
28422847
<dict>
28432848
<key>name</key>
28442849
<string>variable.other.readwrite.alias.tsx</string>

tests/baselines/Issue531.baseline.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Grammar: TypeScript.tmLanguage
4646
^
4747
source.ts meta.export.ts meta.block.ts
4848
^^^^^^^
49-
source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts
49+
source.ts meta.export.ts meta.block.ts keyword.control.default.ts
5050
^^
5151
source.ts meta.export.ts meta.block.ts
5252
>};

tests/baselines/Issue569.baseline.txt

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
original file
2+
-----------------------------------
3+
export { default as x }
4+
export { x as default }
5+
-----------------------------------
6+
7+
Grammar: TypeScript.tmLanguage
8+
-----------------------------------
9+
>export { default as x }
10+
^^^^^^
11+
source.ts meta.export.ts keyword.control.export.ts
12+
^
13+
source.ts meta.export.ts
14+
^
15+
source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts
16+
^
17+
source.ts meta.export.ts meta.block.ts
18+
^^^^^^^
19+
source.ts meta.export.ts meta.block.ts keyword.control.default.ts
20+
^
21+
source.ts meta.export.ts meta.block.ts
22+
^^
23+
source.ts meta.export.ts meta.block.ts keyword.control.as.ts
24+
^
25+
source.ts meta.export.ts meta.block.ts
26+
^
27+
source.ts meta.export.ts meta.block.ts variable.other.readwrite.alias.ts
28+
^
29+
source.ts meta.export.ts meta.block.ts
30+
^
31+
source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts
32+
^^
33+
source.ts meta.export.ts
34+
>export { x as default }
35+
^^^^^^
36+
source.ts meta.export.ts keyword.control.export.ts
37+
^
38+
source.ts meta.export.ts
39+
^
40+
source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts
41+
^
42+
source.ts meta.export.ts meta.block.ts
43+
^
44+
source.ts meta.export.ts meta.block.ts variable.other.readwrite.ts
45+
^
46+
source.ts meta.export.ts meta.block.ts
47+
^^
48+
source.ts meta.export.ts meta.block.ts keyword.control.as.ts
49+
^
50+
source.ts meta.export.ts meta.block.ts
51+
^^^^^^^
52+
source.ts meta.export.ts meta.block.ts keyword.control.default.ts
53+
^
54+
source.ts meta.export.ts meta.block.ts
55+
^
56+
source.ts meta.export.ts meta.block.ts punctuation.definition.block.ts

tests/cases/Issue569.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { default as x }
2+
export { x as default }

0 commit comments

Comments
 (0)