Skip to content

Commit 53b4eaa

Browse files
authored
Merge pull request #887 from andrewbranch/type-import-specifiers
Type-only import specifiers
2 parents a330e5b + db6dec9 commit 53b4eaa

5 files changed

+419
-67
lines changed

Diff for: TypeScript.YAML-tmLanguage

+14-10
Original file line numberDiff line numberDiff line change
@@ -1205,21 +1205,25 @@ repository:
12051205
patterns:
12061206
- include: '#comment'
12071207
#(default|*|name) as alias
1208-
- match: '{{startOfIdentifier}}(?:(\bdefault)|(\*)|(\b{{identifier}}))\s+(as)\s+(?:(default{{endOfIdentifier}})|({{identifier}}))'
1209-
captures:
1210-
'1': { name: keyword.control.default.ts }
1211-
'2': { name: constant.language.import-export-all.ts }
1212-
'3': { name: variable.other.readwrite.ts }
1213-
'4': { name: keyword.control.as.ts }
1214-
'5': { name: keyword.control.default.ts }
1215-
'6': { name: variable.other.readwrite.alias.ts }
1208+
- match: '{{startOfIdentifier}}(?:(?:(\btype)\s+)?(?:(\bdefault)|(\*)|(\b{{identifier}})))\s+(as)\s+(?:(default{{endOfIdentifier}})|({{identifier}}))'
1209+
captures:
1210+
'1': { name: keyword.control.type.ts }
1211+
'2': { name: keyword.control.default.ts }
1212+
'3': { name: constant.language.import-export-all.ts }
1213+
'4': { name: variable.other.readwrite.ts }
1214+
'5': { name: keyword.control.as.ts }
1215+
'6': { name: keyword.control.default.ts }
1216+
'7': { name: variable.other.readwrite.alias.ts }
12161217
- include: '#punctuation-comma'
12171218
- name: constant.language.import-export-all.ts
12181219
match: \*
12191220
- name: keyword.control.default.ts
12201221
match: \b(default)\b
1221-
- name: variable.other.readwrite.alias.ts
1222-
match: ({{identifier}})
1222+
- match: '(?:(\btype)\s+)?({{identifier}})'
1223+
captures:
1224+
'1': { name: keyword.control.type.ts }
1225+
'2': { name: variable.other.readwrite.alias.ts }
1226+
12231227

12241228
#control statements and loops
12251229
switch-statement:

Diff for: TypeScript.tmLanguage

+25-9
Original file line numberDiff line numberDiff line change
@@ -3852,35 +3852,40 @@
38523852
</dict>
38533853
<dict>
38543854
<key>match</key>
3855-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*))\s+(as)\s+(?:(default(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|([_$[:alpha:]][_$[:alnum:]]*))</string>
3855+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(?:(\btype)\s+)?(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*)))\s+(as)\s+(?:(default(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|([_$[:alpha:]][_$[:alnum:]]*))</string>
38563856
<key>captures</key>
38573857
<dict>
38583858
<key>1</key>
38593859
<dict>
38603860
<key>name</key>
3861-
<string>keyword.control.default.ts</string>
3861+
<string>keyword.control.type.ts</string>
38623862
</dict>
38633863
<key>2</key>
38643864
<dict>
38653865
<key>name</key>
3866-
<string>constant.language.import-export-all.ts</string>
3866+
<string>keyword.control.default.ts</string>
38673867
</dict>
38683868
<key>3</key>
38693869
<dict>
38703870
<key>name</key>
3871-
<string>variable.other.readwrite.ts</string>
3871+
<string>constant.language.import-export-all.ts</string>
38723872
</dict>
38733873
<key>4</key>
38743874
<dict>
38753875
<key>name</key>
3876-
<string>keyword.control.as.ts</string>
3876+
<string>variable.other.readwrite.ts</string>
38773877
</dict>
38783878
<key>5</key>
38793879
<dict>
38803880
<key>name</key>
3881-
<string>keyword.control.default.ts</string>
3881+
<string>keyword.control.as.ts</string>
38823882
</dict>
38833883
<key>6</key>
3884+
<dict>
3885+
<key>name</key>
3886+
<string>keyword.control.default.ts</string>
3887+
</dict>
3888+
<key>7</key>
38843889
<dict>
38853890
<key>name</key>
38863891
<string>variable.other.readwrite.alias.ts</string>
@@ -3904,10 +3909,21 @@
39043909
<string>\b(default)\b</string>
39053910
</dict>
39063911
<dict>
3907-
<key>name</key>
3908-
<string>variable.other.readwrite.alias.ts</string>
39093912
<key>match</key>
3910-
<string>([_$[:alpha:]][_$[:alnum:]]*)</string>
3913+
<string>(?:(\btype)\s+)?([_$[:alpha:]][_$[:alnum:]]*)</string>
3914+
<key>captures</key>
3915+
<dict>
3916+
<key>1</key>
3917+
<dict>
3918+
<key>name</key>
3919+
<string>keyword.control.type.ts</string>
3920+
</dict>
3921+
<key>2</key>
3922+
<dict>
3923+
<key>name</key>
3924+
<string>variable.other.readwrite.alias.ts</string>
3925+
</dict>
3926+
</dict>
39113927
</dict>
39123928
</array>
39133929
</dict>

Diff for: TypeScriptReact.tmLanguage

+25-9
Original file line numberDiff line numberDiff line change
@@ -3874,35 +3874,40 @@
38743874
</dict>
38753875
<dict>
38763876
<key>match</key>
3877-
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*))\s+(as)\s+(?:(default(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|([_$[:alpha:]][_$[:alnum:]]*))</string>
3877+
<string>(?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))(?:(?:(\btype)\s+)?(?:(\bdefault)|(\*)|(\b[_$[:alpha:]][_$[:alnum:]]*)))\s+(as)\s+(?:(default(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|([_$[:alpha:]][_$[:alnum:]]*))</string>
38783878
<key>captures</key>
38793879
<dict>
38803880
<key>1</key>
38813881
<dict>
38823882
<key>name</key>
3883-
<string>keyword.control.default.tsx</string>
3883+
<string>keyword.control.type.tsx</string>
38843884
</dict>
38853885
<key>2</key>
38863886
<dict>
38873887
<key>name</key>
3888-
<string>constant.language.import-export-all.tsx</string>
3888+
<string>keyword.control.default.tsx</string>
38893889
</dict>
38903890
<key>3</key>
38913891
<dict>
38923892
<key>name</key>
3893-
<string>variable.other.readwrite.tsx</string>
3893+
<string>constant.language.import-export-all.tsx</string>
38943894
</dict>
38953895
<key>4</key>
38963896
<dict>
38973897
<key>name</key>
3898-
<string>keyword.control.as.tsx</string>
3898+
<string>variable.other.readwrite.tsx</string>
38993899
</dict>
39003900
<key>5</key>
39013901
<dict>
39023902
<key>name</key>
3903-
<string>keyword.control.default.tsx</string>
3903+
<string>keyword.control.as.tsx</string>
39043904
</dict>
39053905
<key>6</key>
3906+
<dict>
3907+
<key>name</key>
3908+
<string>keyword.control.default.tsx</string>
3909+
</dict>
3910+
<key>7</key>
39063911
<dict>
39073912
<key>name</key>
39083913
<string>variable.other.readwrite.alias.tsx</string>
@@ -3926,10 +3931,21 @@
39263931
<string>\b(default)\b</string>
39273932
</dict>
39283933
<dict>
3929-
<key>name</key>
3930-
<string>variable.other.readwrite.alias.tsx</string>
39313934
<key>match</key>
3932-
<string>([_$[:alpha:]][_$[:alnum:]]*)</string>
3935+
<string>(?:(\btype)\s+)?([_$[:alpha:]][_$[:alnum:]]*)</string>
3936+
<key>captures</key>
3937+
<dict>
3938+
<key>1</key>
3939+
<dict>
3940+
<key>name</key>
3941+
<string>keyword.control.type.tsx</string>
3942+
</dict>
3943+
<key>2</key>
3944+
<dict>
3945+
<key>name</key>
3946+
<string>variable.other.readwrite.alias.tsx</string>
3947+
</dict>
3948+
</dict>
39333949
</dict>
39343950
</array>
39353951
</dict>

0 commit comments

Comments
 (0)