@@ -34,6 +34,7 @@ repository:
3434 ' 2 ' : { name: storage.type.ts }
3535 end : (?=$|;)
3636 patterns :
37+ - include : ' #destructuring-variable'
3738 - include : ' #var-single-variable'
3839 - include : ' #comment'
3940
@@ -52,6 +53,93 @@ repository:
5253 - include : ' #string'
5354 - include : ' #comment'
5455
56+ destructuring-variable :
57+ patterns :
58+ - name : meta.object-binding-pattern-variable.ts
59+ begin : (?<!=|:)\s*(\{)
60+ beginCaptures :
61+ ' 1 ' : { name: punctuation.definition.binding-pattern.object.ts }
62+ end : (?=$|[;,])
63+ patterns :
64+ - include : ' #variable-initializer'
65+ - begin : \G
66+ end : (?!\G)(?=$|[;,=])
67+ patterns :
68+ - begin : \G
69+ end : \}
70+ endCaptures :
71+ ' 0 ' : { name: punctuation.definition.binding-pattern.object.ts }
72+ patterns :
73+ - include : ' #object-binding-element'
74+ - include : ' #type-annotation'
75+ - include : ' #comment'
76+ - name : meta.array-binding-pattern-variable.ts
77+ begin : (?<!=|:)\s*(\[)
78+ beginCaptures :
79+ ' 1 ' : { name: punctuation.definition.binding-pattern.array.ts }
80+ end : (?=$|[;,])
81+ patterns :
82+ - include : ' #variable-initializer'
83+ - begin : \G
84+ end : (?!\G)(?=$|[;,=])
85+ patterns :
86+ - begin : \G
87+ end : \]
88+ endCaptures :
89+ ' 0 ' : { name: punctuation.definition.binding-pattern.array.ts }
90+ patterns :
91+ - include : ' #array-binding-element'
92+ - include : ' #type-annotation'
93+ - include : ' #comment'
94+
95+ object-binding-element :
96+ patterns :
97+ - include : ' #comment'
98+ - begin : \b([a-zA-Z_$][\w$]*)\s*(:)
99+ beginCaptures :
100+ ' 1 ' : { name: variable.object.property.ts }
101+ ' 2 ' : { name: punctuation.destructuring.ts }
102+ end : (?=,|\})
103+ patterns :
104+ - include : ' #object-binding-pattern'
105+ - include : ' #array-binding-pattern'
106+ - name : variable.other.readwrite.ts
107+ match : \b([a-zA-Z_$][\w$]*)\b
108+ - name : variable.other.readwrite.ts
109+ match : \b([a-zA-Z_$][\w$]*)\b
110+ - name : meta.delimiter.object.comma.ts
111+ match : ' ,'
112+
113+ array-binding-element :
114+ patterns :
115+ - include : ' #comment'
116+ - include : ' #object-binding-pattern'
117+ - include : ' #array-binding-pattern'
118+ - name : variable.other.readwrite.ts
119+ match : \b([a-zA-Z_$][\w$]*)\b
120+ - name : meta.delimiter.object.comma.ts
121+ match : ' ,'
122+
123+ object-binding-pattern :
124+ begin : \{
125+ beginCaptures :
126+ ' 0 ' : { name: punctuation.definition.binding-pattern.object.ts }
127+ end : \}
128+ endCaptures :
129+ ' 0 ' : { name: punctuation.definition.binding-pattern.object.ts }
130+ patterns :
131+ - include : ' #object-binding-element'
132+
133+ array-binding-pattern :
134+ begin : \[
135+ beginCaptures :
136+ ' 0 ' : { name: punctuation.definition.binding-pattern.array.ts }
137+ end : \]
138+ endCaptures :
139+ ' 0 ' : { name: punctuation.definition.binding-pattern.array.ts }
140+ patterns :
141+ - include : ' #array-binding-element'
142+
55143 ternary-expression :
56144 begin : (?=\?)
57145 end : (?=$|[;,}])
@@ -575,7 +663,7 @@ repository:
575663
576664 type-operator :
577665 name : keyword.operator.type.ts
578- match : ' [. |]'
666+ match : ' [& |]'
579667
580668 type-function-return-type :
581669 name : meta.type.function.return.ts
0 commit comments