@@ -34,6 +34,7 @@ repository:
34
34
' 2 ' : { name: storage.type.ts }
35
35
end : (?=$|;)
36
36
patterns :
37
+ - include : ' #destructuring-variable'
37
38
- include : ' #var-single-variable'
38
39
- include : ' #comment'
39
40
@@ -52,6 +53,93 @@ repository:
52
53
- include : ' #string'
53
54
- include : ' #comment'
54
55
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
+
55
143
ternary-expression :
56
144
begin : (?=\?)
57
145
end : (?=$|[;,}])
@@ -575,7 +663,7 @@ repository:
575
663
576
664
type-operator :
577
665
name : keyword.operator.type.ts
578
- match : ' [. |]'
666
+ match : ' [& |]'
579
667
580
668
type-function-return-type :
581
669
name : meta.type.function.return.ts
0 commit comments