Skip to content

Commit 35731c0

Browse files
committed
Destructuring variable declaration
1 parent 9fbaca8 commit 35731c0

10 files changed

+1605
-4
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)