@@ -241,27 +241,51 @@ repository:
241
241
242
242
# variable, parameters, fields
243
243
var-expr :
244
- name : meta.var.expr.ts
245
- begin : ' {{startOfIdentifier}}(?:(\bexport)\s+)?\b(var|let|const(?!\s+enum\b)){{endOfIdentifier}}'
246
- beginCaptures :
247
- ' 1 ' : { name: keyword.control.export.ts }
248
- ' 2 ' : { name: storage.type.ts }
249
- end : ((?=;|}|(\s+(of|in)\s+)|^\s*$|{{endOfStatement}})|((?<=\S)(?<!{{lookBehindConst}}|{{lookBehindLet}}|{{lookBehindVar}})(?=\s*$)))
250
244
patterns :
251
- - include : ' #destructuring-variable'
252
- - include : ' #var-single-variable'
253
- - include : ' #variable-initializer'
254
- - include : ' #comment'
255
- - begin : (,)\s*(?!\S)
245
+ # let/var
246
+ - name : meta.var.expr.ts
247
+ begin : ' {{startOfIdentifier}}(?:(\bexport)\s+)?\b(var|let){{endOfIdentifier}}'
256
248
beginCaptures :
257
- ' 1 ' : { name: punctuation.separator.comma.ts }
258
- end : (?<!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?<=\S)(?=\s*$)))
249
+ ' 1 ' : { name: keyword.control.export.ts }
250
+ ' 2 ' : { name: storage.type.ts }
251
+ end : ((?=;|}|(\s+(of|in)\s+)|^\s*$|{{endOfStatement}})|((?<=\S)(?<!{{lookBehindLet}}|{{lookBehindVar}})(?=\s*$)))
259
252
patterns :
260
- - include : ' #comment'
261
253
- include : ' #destructuring-variable'
262
254
- include : ' #var-single-variable'
255
+ - include : ' #variable-initializer'
256
+ - include : ' #comment'
257
+ - begin : (,)\s*(?!\S)
258
+ beginCaptures :
259
+ ' 1 ' : { name: punctuation.separator.comma.ts }
260
+ end : (?<!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?<=\S)(?=\s*$)))
261
+ patterns :
262
+ - include : ' #comment'
263
+ - include : ' #destructuring-variable'
264
+ - include : ' #var-single-variable'
265
+ - include : ' #punctuation-comma'
266
+ - include : ' #punctuation-comma'
267
+ # const
268
+ - name : meta.var.expr.ts
269
+ begin : ' {{startOfIdentifier}}(?:(\bexport)\s+)?\b(const(?!\s+enum\b)){{endOfIdentifier}}'
270
+ beginCaptures :
271
+ ' 1 ' : { name: keyword.control.export.ts }
272
+ ' 2 ' : { name: storage.type.ts }
273
+ end : ((?=;|}|(\s+(of|in)\s+)|^\s*$|{{endOfStatement}})|((?<=\S)(?<!{{lookBehindConst}})(?=\s*$)))
274
+ patterns :
275
+ - include : ' #destructuring-const'
276
+ - include : ' #var-single-const'
277
+ - include : ' #variable-initializer'
278
+ - include : ' #comment'
279
+ - begin : (,)\s*(?!\S)
280
+ beginCaptures :
281
+ ' 1 ' : { name: punctuation.separator.comma.ts }
282
+ end : (?<!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?<=\S)(?=\s*$)))
283
+ patterns :
284
+ - include : ' #comment'
285
+ - include : ' #destructuring-const'
286
+ - include : ' #var-single-const'
287
+ - include : ' #punctuation-comma'
263
288
- include : ' #punctuation-comma'
264
- - include : ' #punctuation-comma'
265
289
266
290
var-single-variable :
267
291
patterns :
@@ -288,6 +312,24 @@ repository:
288
312
patterns :
289
313
- include : ' #var-single-variable-type-annotation'
290
314
315
+ var-single-const :
316
+ patterns :
317
+ - name : meta.var-single-variable.expr.ts
318
+ begin : |-
319
+ (?x)({{identifier}})(?={{functionLikeAssignmentOrType}})
320
+ beginCaptures :
321
+ ' 1 ' : { name: meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts }
322
+ end : (?=$|^|[;,=}]|(\s+(of|in)\s+))
323
+ patterns :
324
+ - include : ' #var-single-variable-type-annotation'
325
+ - name : meta.var-single-variable.expr.ts
326
+ begin : ({{identifier}})
327
+ beginCaptures :
328
+ ' 1 ' : { name: meta.definition.variable.ts variable.other.constant.ts }
329
+ end : (?=$|^|[;,=}]|(\s+(of|in)\s+))
330
+ patterns :
331
+ - include : ' #var-single-variable-type-annotation'
332
+
291
333
var-single-variable-type-annotation :
292
334
patterns :
293
335
- include : ' #type-annotation'
@@ -311,6 +353,23 @@ repository:
311
353
- include : ' #type-annotation'
312
354
- include : ' #comment'
313
355
356
+ destructuring-const :
357
+ patterns :
358
+ - name : meta.object-binding-pattern-variable.ts
359
+ begin : (?<!=|:|{{lookBehindOf}}|{{lookBehindIn}})\s*(?=\{)
360
+ end : (?=$|^|[;,=}]|(\s+(of|in)\s+))
361
+ patterns :
362
+ - include : ' #object-binding-pattern-const'
363
+ - include : ' #type-annotation'
364
+ - include : ' #comment'
365
+ - name : meta.array-binding-pattern-variable.ts
366
+ begin : (?<!=|:|{{lookBehindOf}}|{{lookBehindIn}})\s*(?=\[)
367
+ end : (?=$|^|[;,=}]|(\s+(of|in)\s+))
368
+ patterns :
369
+ - include : ' #array-binding-pattern-const'
370
+ - include : ' #type-annotation'
371
+ - include : ' #comment'
372
+
314
373
object-binding-element :
315
374
patterns :
316
375
- include : ' #comment'
@@ -324,6 +383,19 @@ repository:
324
383
- include : ' #variable-initializer'
325
384
- include : ' #punctuation-comma'
326
385
386
+ object-binding-element-const :
387
+ patterns :
388
+ - include : ' #comment'
389
+ - begin : (?x)(?={{propertyName}}\s*(:))
390
+ end : (?=,|\})
391
+ patterns :
392
+ - include : ' #object-binding-element-propertyName'
393
+ - include : ' #binding-element-const'
394
+ - include : ' #object-binding-pattern-const'
395
+ - include : ' #destructuring-variable-rest-const'
396
+ - include : ' #variable-initializer'
397
+ - include : ' #punctuation-comma'
398
+
327
399
object-binding-element-propertyName :
328
400
begin : (?x)(?={{propertyName}}\s*(:))
329
401
end : (:)
@@ -345,12 +417,27 @@ repository:
345
417
- include : ' #destructuring-variable-rest'
346
418
- include : ' #variable-initializer'
347
419
420
+ binding-element-const :
421
+ patterns :
422
+ - include : ' #comment'
423
+ - include : ' #string'
424
+ - include : ' #object-binding-pattern-const'
425
+ - include : ' #array-binding-pattern-const'
426
+ - include : ' #destructuring-variable-rest-const'
427
+ - include : ' #variable-initializer'
428
+
348
429
destructuring-variable-rest :
349
430
match : (?:(\.\.\.)\s*)?({{identifier}})
350
431
captures :
351
432
' 1 ' : { name: keyword.operator.rest.ts }
352
433
' 2 ' : { name: meta.definition.variable.ts variable.other.readwrite.ts }
353
434
435
+ destructuring-variable-rest-const :
436
+ match : (?:(\.\.\.)\s*)?({{identifier}})
437
+ captures :
438
+ ' 1 ' : { name: keyword.operator.rest.ts }
439
+ ' 2 ' : { name: meta.definition.variable.ts variable.other.constant.ts }
440
+
354
441
object-binding-pattern :
355
442
begin : (?:(\.\.\.)\s*)?(\{)
356
443
beginCaptures :
@@ -362,6 +449,17 @@ repository:
362
449
patterns :
363
450
- include : ' #object-binding-element'
364
451
452
+ object-binding-pattern-const :
453
+ begin : (?:(\.\.\.)\s*)?(\{)
454
+ beginCaptures :
455
+ ' 1 ' : { name: keyword.operator.rest.ts }
456
+ ' 2 ' : { name: punctuation.definition.binding-pattern.object.ts }
457
+ end : \}
458
+ endCaptures :
459
+ ' 0 ' : { name: punctuation.definition.binding-pattern.object.ts }
460
+ patterns :
461
+ - include : ' #object-binding-element-const'
462
+
365
463
array-binding-pattern :
366
464
begin : (?:(\.\.\.)\s*)?(\[)
367
465
beginCaptures :
@@ -374,6 +472,18 @@ repository:
374
472
- include : ' #binding-element'
375
473
- include : ' #punctuation-comma'
376
474
475
+ array-binding-pattern-const :
476
+ begin : (?:(\.\.\.)\s*)?(\[)
477
+ beginCaptures :
478
+ ' 1 ' : { name: keyword.operator.rest.ts }
479
+ ' 2 ' : { name: punctuation.definition.binding-pattern.array.ts }
480
+ end : \]
481
+ endCaptures :
482
+ ' 0 ' : { name: punctuation.definition.binding-pattern.array.ts }
483
+ patterns :
484
+ - include : ' #binding-element-const'
485
+ - include : ' #punctuation-comma'
486
+
377
487
parameter-name :
378
488
patterns :
379
489
- match : ' {{startOfIdentifier}}(public|protected|private|readonly)\s+(?=(public|protected|private|readonly)\s+)'
0 commit comments