@@ -45,15 +45,45 @@ repository:
45
45
- include : ' #punctuation-comma'
46
46
47
47
var-single-variable :
48
- name : meta.var-single-variable.expr.ts
49
- begin : ([_$[:alpha:]][_$[:alnum:]]*)
50
- beginCaptures :
51
- ' 1 ' : { name: meta.definition.variable.ts variable.other.readwrite.ts }
52
- end : (?=$|[;,=}]|(\s+(of|in)\s+))
53
48
patterns :
54
- - include : ' #type-annotation'
55
- - include : ' #string'
56
- - include : ' #comment'
49
+ - name : meta.var-single-variable.expr.ts
50
+ # function assignment |
51
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
52
+ begin : (?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\s*
53
+ (=\s*(
54
+ (async\s+) |
55
+ (function\s*[(<]) |
56
+ (function\s+) |
57
+ ([_$[:alpha:]][_$[:alnum:]]*\s*=>) |
58
+ ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>))
59
+ ) |
60
+ (:\s*(
61
+ (<) |
62
+ ([(]\s*(
63
+ ([)]) |
64
+ (\.\.\.) |
65
+ ([_$[:alnum:]]+\s*(
66
+ ([:,?=])|
67
+ ([)]\s*=>)
68
+ ))
69
+ )))
70
+ ))
71
+ beginCaptures :
72
+ ' 1 ' : { name: meta.definition.variable.ts entity.name.function.ts }
73
+ end : (?=$|[;,=}]|(\s+(of|in)\s+))
74
+ patterns :
75
+ - include : ' #type-annotation'
76
+ - include : ' #string'
77
+ - include : ' #comment'
78
+ - name : meta.var-single-variable.expr.ts
79
+ begin : ([_$[:alpha:]][_$[:alnum:]]*)
80
+ beginCaptures :
81
+ ' 1 ' : { name: meta.definition.variable.ts variable.other.readwrite.ts }
82
+ end : (?=$|[;,=}]|(\s+(of|in)\s+))
83
+ patterns :
84
+ - include : ' #type-annotation'
85
+ - include : ' #string'
86
+ - include : ' #comment'
57
87
58
88
destructuring-variable :
59
89
patterns :
@@ -75,30 +105,34 @@ repository:
75
105
object-binding-element :
76
106
patterns :
77
107
- include : ' #comment'
78
- - begin : ([_$[:alpha:]][_$[:alnum:]]*)\s*(:)
79
- beginCaptures :
80
- ' 1 ' : { name: variable.object.property.ts }
81
- ' 2 ' : { name: punctuation.destructuring.ts }
108
+ - begin : (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]+\])+\]))\s*(:))
82
109
end : (?=,|\})
83
110
patterns :
84
- - include : ' #object-binding-pattern'
85
- - include : ' #array-binding-pattern'
86
- - name : meta.definition.variable.ts variable.other.readwrite.ts
87
- match : ([_$[:alpha:]][_$[:alnum:]]*)
88
- - include : ' #variable-initializer'
111
+ - include : ' #object-binding-element-propertyName'
112
+ - include : ' #binding-element'
89
113
- include : ' #object-binding-pattern'
90
114
- include : ' #destructuring-variable-rest'
91
115
- include : ' #variable-initializer'
92
116
- include : ' #punctuation-comma'
93
117
94
- array-binding-element :
118
+ object-binding-element-propertyName :
119
+ begin : (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]+\])+\]))\s*(:))
120
+ end : (:)
121
+ endCaptures :
122
+ ' 0 ' : { name: punctuation.destructuring.ts }
123
+ patterns :
124
+ - include : ' #string'
125
+ - include : ' #array-literal'
126
+ - name : variable.object.property.ts
127
+ match : ([_$[:alpha:]][_$[:alnum:]]*)
128
+
129
+ binding-element :
95
130
patterns :
96
131
- include : ' #comment'
97
132
- include : ' #object-binding-pattern'
98
133
- include : ' #array-binding-pattern'
99
134
- include : ' #destructuring-variable-rest'
100
135
- include : ' #variable-initializer'
101
- - include : ' #punctuation-comma'
102
136
103
137
destructuring-variable-rest :
104
138
match : (?:(\.\.\.)\s*)?([_$[:alpha:]][_$[:alnum:]]*)
@@ -126,7 +160,8 @@ repository:
126
160
endCaptures :
127
161
' 0 ' : { name: punctuation.definition.binding-pattern.array.ts }
128
162
patterns :
129
- - include : ' #array-binding-element'
163
+ - include : ' #binding-element'
164
+ - include : ' #punctuation-comma'
130
165
131
166
ternary-expression :
132
167
begin : (?=\?)
@@ -257,10 +292,11 @@ repository:
257
292
patterns :
258
293
- include : ' #comment'
259
294
- include : ' #variable-initializer'
260
- - begin : (?=(?:(?: \'[^']*\')|(?: \"[^"]*\")))
295
+ - begin : (?=(( \'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]+\])+\] )))
261
296
end : (?=,|\}|$)
262
297
patterns :
263
298
- include : ' #string'
299
+ - include : ' #array-literal'
264
300
- include : ' #comment'
265
301
- include : ' #variable-initializer'
266
302
- include : ' #punctuation-comma'
@@ -494,6 +530,28 @@ repository:
494
530
- include : ' #string'
495
531
- include : ' #array-literal'
496
532
- include : ' #comment'
533
+ - name : meta.definition.property.ts entity.name.function.ts
534
+ # function assignment |
535
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
536
+ match : (?x)([_$[:alpha:]][_$[:alnum:]]*)(?=(\?\s*)?\s*
537
+ (=\s*(
538
+ (async\s+) |
539
+ (function\s*[(<]) |
540
+ (function\s+) |
541
+ ([_$[:alpha:]][_$[:alnum:]]*\s*=>) |
542
+ ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>))
543
+ ) |
544
+ (:\s*(
545
+ (<) |
546
+ ([(]\s*(
547
+ ([)]) |
548
+ (\.\.\.) |
549
+ ([_$[:alnum:]]+\s*(
550
+ ([:,?=])|
551
+ ([)]\s*=>)
552
+ ))
553
+ )))
554
+ ))
497
555
- name : meta.definition.property.ts variable.object.property.ts
498
556
match : ' [_$[:alpha:]][_$[:alnum:]]*'
499
557
- name : keyword.operator.optional.ts
@@ -621,13 +679,41 @@ repository:
621
679
- include : ' #object-member'
622
680
623
681
parameter-name :
624
- match : ' (?:\s*\b(readonly)\s+)?(?:\s*\b(public|private|protected)\s+)?(\.\.\.)?\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\s*(\??)'
625
- captures :
626
- ' 1 ' : { name: storage.modifier.ts }
627
- ' 2 ' : { name: storage.modifier.ts }
628
- ' 3 ' : { name: keyword.operator.rest.ts }
629
- ' 4 ' : { name: variable.parameter.ts }
630
- ' 5 ' : { name: keyword.operator.optional.ts }
682
+ patterns :
683
+ # function assignment |
684
+ # typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>
685
+ - match : (?x)(?:\s*\b(readonly)\s+)?(?:\s*\b(public|private|protected)\s+)?(\.\.\.)?\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\s*(\??)(?=\s*
686
+ (=\s*(
687
+ (async\s+) |
688
+ (function\s*[(<]) |
689
+ (function\s+) |
690
+ ([_$[:alpha:]][_$[:alnum:]]*\s*=>) |
691
+ ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>))
692
+ ) |
693
+ (:\s*(
694
+ (<) |
695
+ ([(]\s*(
696
+ ([)]) |
697
+ (\.\.\.) |
698
+ ([_$[:alnum:]]+\s*(
699
+ ([:,?=])|
700
+ ([)]\s*=>)
701
+ ))
702
+ )))
703
+ ))
704
+ captures :
705
+ ' 1 ' : { name: storage.modifier.ts }
706
+ ' 2 ' : { name: storage.modifier.ts }
707
+ ' 3 ' : { name: keyword.operator.rest.ts }
708
+ ' 4 ' : { name: entity.name.function.ts }
709
+ ' 5 ' : { name: keyword.operator.optional.ts }
710
+ - match : (?:\s*\b(readonly)\s+)?(?:\s*\b(public|private|protected)\s+)?(\.\.\.)?\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\s*(\??)
711
+ captures :
712
+ ' 1 ' : { name: storage.modifier.ts }
713
+ ' 2 ' : { name: storage.modifier.ts }
714
+ ' 3 ' : { name: keyword.operator.rest.ts }
715
+ ' 4 ' : { name: variable.parameter.ts }
716
+ ' 5 ' : { name: keyword.operator.optional.ts }
631
717
632
718
destructuring-parameter :
633
719
patterns :
@@ -648,35 +734,29 @@ repository:
648
734
endCaptures :
649
735
' 0 ' : { name: punctuation.definition.binding-pattern.array.ts }
650
736
patterns :
651
- - include : ' #parameter-array-binding-element'
737
+ - include : ' #parameter-binding-element'
738
+ - include : ' #punctuation-comma'
652
739
653
740
parameter-object-binding-element :
654
741
patterns :
655
742
- include : ' #comment'
656
- - begin : ([_$[:alpha:]][_$[:alnum:]]*)\s*(:)
657
- beginCaptures :
658
- ' 1 ' : { name: variable.object.property.ts }
659
- ' 2 ' : { name: punctuation.destructuring.ts }
743
+ - begin : (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]+\])+\]))\s*(:))
660
744
end : (?=,|\})
661
745
patterns :
662
- - include : ' #parameter-object-binding-pattern'
663
- - include : ' #parameter-array-binding-pattern'
664
- - name : variable.parameter.ts
665
- match : ([_$[:alpha:]][_$[:alnum:]]*)
666
- - include : ' #variable-initializer'
746
+ - include : ' #object-binding-element-propertyName'
747
+ - include : ' #parameter-binding-element'
667
748
- include : ' #parameter-object-binding-pattern'
668
749
- include : ' #destructuring-parameter-rest'
669
750
- include : ' #variable-initializer'
670
751
- include : ' #punctuation-comma'
671
752
672
- parameter-array- binding-element :
753
+ parameter-binding-element :
673
754
patterns :
674
755
- include : ' #comment'
675
756
- include : ' #parameter-object-binding-pattern'
676
757
- include : ' #parameter-array-binding-pattern'
677
758
- include : ' #destructuring-parameter-rest'
678
759
- include : ' #variable-initializer'
679
- - include : ' #punctuation-comma'
680
760
681
761
destructuring-parameter-rest :
682
762
match : (?:(\.\.\.)\s*)?([_$[:alpha:]][_$[:alnum:]]*)
@@ -704,7 +784,8 @@ repository:
704
784
endCaptures :
705
785
' 0 ' : { name: punctuation.definition.binding-pattern.array.ts }
706
786
patterns :
707
- - include : ' #parameter-array-binding-element'
787
+ - include : ' #parameter-binding-element'
788
+ - include : ' #punctuation-comma'
708
789
709
790
return-type :
710
791
name : meta.return.type.ts
0 commit comments