Skip to content

Commit e21186a

Browse files
committed
Solving Issue 37, changing scopes of major keywords, changing scope of switch statement, modified type-annotation to allow typeof keyword
1 parent c49cb36 commit e21186a

13 files changed

+250
-133
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ repository:
5353
patterns:
5454
- include: '#type-parameters'
5555
- include: '#type'
56-
- name: keyword.operator.ts
56+
- name: keyword.operator.comparison.ts
5757
match: '=\s*'
5858

5959
enum-declaration:
@@ -68,7 +68,7 @@ repository:
6868
name: meta.declaration.object.ts
6969
begin: '\b(?:(export)\s+)?\b(?:(abstract)\s+)?\b(?<!\.)(class|interface)\b'
7070
beginCaptures:
71-
'1': { name: storage.modifier.ts }
71+
'1': { name: storage.type.ts }
7272
'2': { name: storage.modifier.ts }
7373
'3': { name: storage.type.ts }
7474
end: (?<=\})
@@ -147,7 +147,7 @@ repository:
147147
begin: (?<!\()\s*((?:\b[a-zA-Z_$][\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\"))\s*(\?\s*)?(?=(=|:))
148148
beginCaptures:
149149
'1': { name: variable.ts }
150-
'2': { name: keyword.operator.ts }
150+
'2': { name: keyword.others.ts }
151151
end: '(?=\}|;|,|$)|(?<=\})'
152152
patterns:
153153
- include: '#expression'
@@ -160,9 +160,9 @@ repository:
160160
'2': { name: storage.modifier.ts }
161161
'3': { name: storage.modifier.ts }
162162
'4': { name: storage.type.property.ts }
163-
'5': { name: keyword.operator.ts }
163+
'5': { name: keyword.others.ts }
164164
'6': { name: entity.name.function.ts }
165-
'7': { name: keyword.operator.ts }
165+
'7': { name: keyword.others.ts }
166166
end: '(?=\}|;|,)|(?<=\})'
167167
patterns:
168168
- include: '#comment'
@@ -180,9 +180,9 @@ repository:
180180
'2': { name: storage.modifier.ts }
181181
'3': { name: storage.modifier.ts }
182182
'4': { name: storage.type.property.ts }
183-
'5': { name: keyword.operator.ts }
183+
'5': { name: keyword.others.ts }
184184
'6': { name: entity.name.function.ts }
185-
'7': { name: keyword.operator.ts }
185+
'7': { name: keyword.others.ts }
186186

187187
indexer-declaration:
188188
name: meta.indexer.declaration.ts
@@ -192,7 +192,7 @@ repository:
192192
end: (\])\s*(\?\s*)?|$
193193
endCaptures:
194194
'1': { name: meta.brace.square.ts }
195-
'2': { name: keyword.operator.ts }
195+
'2': { name: keyword.others.ts }
196196
patterns:
197197
- include: '#type-annotation'
198198
- include: '#indexer-parameter'
@@ -208,7 +208,7 @@ repository:
208208
name: meta.function.ts
209209
begin: \b(?:(export)\s+)?(?:(async)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s*
210210
beginCaptures:
211-
'1': { name: storage.modifier.ts }
211+
'1': { name: storage.type.ts }
212212
'2': { name: storage.modifier.ts }
213213
'3': { name: storage.type.function.ts }
214214
'4': { name: entity.name.function.ts }
@@ -225,7 +225,7 @@ repository:
225225
name: meta.function.overload.ts
226226
match: \b(?:(export)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s*
227227
captures:
228-
'1': { name: storage.modifier.ts }
228+
'1': { name: storage.type.ts }
229229
'2': { name: storage.type.function.ts }
230230
'3': { name: entity.name.function.ts }
231231

@@ -257,9 +257,9 @@ repository:
257257
match: '(?:\s*\b(public|private|protected)\b\s+)?(\.\.\.)?\s*([a-zA-Z_$][\w$]*)\s*(\??)'
258258
captures:
259259
'1': { name: storage.modifier.ts }
260-
'2': { name: keyword.operator.ts }
260+
'2': { name: keyword.others.ts }
261261
'3': { name: variable.parameter.ts }
262-
'4': { name: keyword.operator.ts }
262+
'4': { name: keyword.others.ts }
263263

264264
return-type:
265265
name: meta.return.type.ts
@@ -273,6 +273,7 @@ repository:
273273
begin: ":"
274274
end: (?=$|[,);\}\]]|//)|(?==[^>])|(?<=[\}>\]\)]|[a-zA-Z_$])\s*(?=\{)
275275
patterns:
276+
- include: '#expression-operator'
276277
- include: '#type'
277278
- include: '#string'
278279
- include: '#comment'
@@ -336,7 +337,7 @@ repository:
336337
name: meta.type.function.return.ts
337338
begin: '=>'
338339
beginCaptures:
339-
'0': { name: keyword.operator.ts }
340+
'0': { name: keyword.others.ts }
340341
end: (?=\s*[,\)\{=;>]|//|$)
341342
patterns:
342343
- include: '#type'
@@ -377,7 +378,7 @@ repository:
377378
variable-initializer:
378379
begin: (=)
379380
beginCaptures:
380-
'1': { name: keyword.operator.ts }
381+
'1': { name: keyword.others.ts }
381382
end: (?=$|[,);=])
382383
patterns:
383384
- include: '#expression'
@@ -398,6 +399,7 @@ repository:
398399
- include: '#new-expr'
399400
- include: '#switch-statement'
400401
- include: '#block'
402+
- include: '#import-operator'
401403
- include: '#expression-operator'
402404
- include: '#relational-operator'
403405
- include: '#arithmetic-operator'
@@ -412,7 +414,7 @@ repository:
412414
name: switch-expression.expr.ts
413415
begin: \b(switch)\b\s*\(
414416
beginCaptures:
415-
'1': { name: keyword.operator.ts }
417+
'1': { name: keyword.control.ts }
416418
end: \)
417419
patterns:
418420
- include: '#expression'
@@ -446,7 +448,7 @@ repository:
446448
match: (?<=\()\s*\b(var|let|const)\s+([a-zA-Z_$][\w$]*)\s+(in|of)\b
447449
captures:
448450
'1': { name: storage.type.ts }
449-
'3': { name: keyword.operator.ts }
451+
'3': { name: keyword.others.ts }
450452

451453
function-call:
452454
name: functioncall.expr.ts
@@ -474,7 +476,7 @@ repository:
474476
name: new.expr.ts
475477
begin: '\b(new)\b'
476478
beginCaptures:
477-
'1': { name: keyword.operator.ts }
479+
'1': { name: keyword.others.ts }
478480
# new-expr ends just before any type or call arguments. Type arguments will be picked up by #cast.
479481
end: '(?=[(;]|$)'
480482
patterns:
@@ -489,8 +491,12 @@ repository:
489491
- include: '#expression'
490492

491493
expression-operator:
492-
name: keyword.operator.ts
493-
match: =>|\b(delete|export|import|from|in|instanceof|new|typeof|void|as)\b
494+
name: keyword.others.ts
495+
match: =>|\b(delete|in|instanceof|new|typeof|as|is|of)\b
496+
497+
import-operator:
498+
name: keyword.control.import.include.ts
499+
match: \b(import|from)\b
494500

495501
arithmetic-operator:
496502
name: keyword.operator.arithmetic.ts
@@ -510,7 +516,7 @@ repository:
510516

511517
storage-keyword:
512518
name: storage.type.ts
513-
match: \b(number|boolean|string|any|var|let|function|const|module|namespace)\b
519+
match: \b(number|boolean|string|any|var|let|function|const|module|namespace|void|export)\b
514520

515521
paren-expression:
516522
begin: \(
@@ -579,10 +585,10 @@ repository:
579585
name: template.element.ts
580586
begin: \$\{
581587
beginCaptures:
582-
'0': {name: keyword.operator.ts}
588+
'0': {name: keyword.others.ts}
583589
end: \}
584590
endCaptures:
585-
'0': {name: keyword.operator.ts}
591+
'0': {name: keyword.others.ts}
586592
patterns:
587593
- include: '#expression'
588594

0 commit comments

Comments
 (0)