@@ -117,8 +117,8 @@ repository:
117
117
- include : ' #class-or-interface-declaration'
118
118
- include : ' #type-declaration'
119
119
- include : ' #enum-declaration'
120
- # Todo: to change this to import declaration
121
- - include : ' #import-operator '
120
+ - include : ' # import-equals- declaration'
121
+ - include : ' #import-declaration '
122
122
# TODO: change this to actual declarations of export, import, namespace
123
123
- include : ' #storage-keyword'
124
124
@@ -146,6 +146,88 @@ repository:
146
146
' 3 ' : { name: storage.type.enum.ts }
147
147
' 4 ' : { name: entity.name.type.enum.ts }
148
148
149
+ import-equals-declaration :
150
+ patterns :
151
+ - name : meta.import-equals.external.ts
152
+ begin : (?:(\bexport)\s+)?\b(?<!\.)(import)\s+([a-zA-Z_$][\w$]*)\s*(=)\s*(require)\s*(\()
153
+ beginCaptures :
154
+ ' 1 ' : { name: keyword.control.export.ts }
155
+ ' 2 ' : { name: keyword.control.import.ts }
156
+ ' 3 ' : { name: variable.other.readwrite.alias.ts }
157
+ ' 4 ' : { name: keyword.operator.assignment.ts }
158
+ ' 5 ' : { name: keyword.control.require.ts }
159
+ ' 6 ' : { name: meta.brace.round.ts }
160
+ end : \)
161
+ endCaptures :
162
+ ' 0 ' : { name: meta.brace.round.ts }
163
+ patterns :
164
+ - include : ' #comment'
165
+ - include : ' #string'
166
+ - name : meta.import-equals.internal.ts
167
+ begin : (?:(\bexport)\s+)?\b(?<!\.)(import)\s+([a-zA-Z_$][\w$]*)\s*(=)\s*(?!require\b)
168
+ beginCaptures :
169
+ ' 1 ' : { name: keyword.control.export.ts }
170
+ ' 2 ' : { name: keyword.control.import.ts }
171
+ ' 3 ' : { name: variable.other.readwrite.alias.ts }
172
+ ' 4 ' : { name: keyword.operator.assignment.ts }
173
+ end : (?=;|$)
174
+ patterns :
175
+ - include : ' #comment'
176
+ - match : \b([a-zA-Z_$][\w$]*)\s*(\.)
177
+ captures :
178
+ ' 1 ' : { name: entity.name.module.ts }
179
+ ' 2 ' : { name: punctuation.accessor.ts }
180
+ - name : variable.other.readwrite.ts
181
+ match : \b([a-zA-Z_$][\w$]*)\b
182
+
183
+ import-declaration :
184
+ name : meta.import.ts
185
+ begin : (?:(\bexport)\s+)?(?<!\.)\b(import)(?!\s*:)\b
186
+ beginCaptures :
187
+ ' 1 ' : { name: keyword.control.export.ts }
188
+ ' 2 ' : { name: keyword.control.import.ts }
189
+ end : (?=;|$)
190
+ patterns :
191
+ - include : ' #comment'
192
+ - include : ' #string'
193
+ - include : ' #import-block'
194
+ - name : keyword.control.from.ts
195
+ match : \bfrom\b
196
+ - include : ' #import-clause'
197
+
198
+ import-block :
199
+ name : meta.block.ts
200
+ begin : \{
201
+ beginCaptures :
202
+ ' 0 ' : { name: punctuation.definition.block.ts }
203
+ end : \}
204
+ endCaptures :
205
+ ' 0 ' : { name: punctuation.definition.block.ts }
206
+ patterns :
207
+ - include : ' #import-clause'
208
+
209
+ import-clause :
210
+ patterns :
211
+ - include : ' #comment'
212
+ - comment : (default|*|name) as alias
213
+ match : ' (?x) (?: \b(default)\b | (\*) | \b([a-zA-Z_$][a-zA-Z_$0-9]*)\b) \s* (\b
214
+ as \b) \s* (?: (\b default \b | \*) | \b([a-zA-Z_$][a-zA-Z_$0-9]*)\b)'
215
+ captures :
216
+ ' 1 ' : { name: keyword.control.default.ts }
217
+ ' 2 ' : { name: constant.language.import-all.ts }
218
+ ' 3 ' : { name: variable.other.readwrite.ts }
219
+ ' 4 ' : { name: keyword.control.as.ts }
220
+ ' 5 ' : { name: invalid.illegal.ts }
221
+ ' 6 ' : { name: variable.other.readwrite.alias.ts }
222
+ - name : meta.delimiter.object.comma.ts
223
+ match : ' ,'
224
+ - name : constant.language.import-all.ts
225
+ match : \*
226
+ - name : keyword.control.default.ts
227
+ match : \b(default)\b
228
+ - name : variable.other.readwrite.alias.ts
229
+ match : \b([a-zA-Z_$][a-zA-Z_$0-9]*)\b
230
+
149
231
class-or-interface-declaration :
150
232
name : meta.declaration.object.ts
151
233
begin : ' \b(?:(export)\s+)?\b(?:(abstract)\s+)?\b(?<!\.)(?:(class)|(interface))\b'
@@ -634,13 +716,6 @@ repository:
634
716
name : storage.type.function.arrow.ts
635
717
match : =>
636
718
637
- import-operator :
638
- patterns :
639
- - name : keyword.control.import.ts
640
- match : \bimport\b
641
- - name : keyword.control.from.ts
642
- match : \bfrom\b
643
-
644
719
operators :
645
720
patterns :
646
721
- name : keyword.operator.assignment.compound.ts
0 commit comments