Skip to content

Commit a5de004

Browse files
committed
Fix the identifier pattern
1 parent b0208af commit a5de004

File tree

7 files changed

+295
-154
lines changed

7 files changed

+295
-154
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ repository:
4040

4141
var-single-variable:
4242
name: meta.var-single-variable.expr.ts
43-
begin: \b([a-zA-Z_$][\w$]*)\b
43+
begin: \b([_$[:alpha:]][_$[:alnum:]]*)\b
4444
beginCaptures:
4545
'1': { name: variable.other.readwrite.ts }
4646
end: (?=$|[;,])
@@ -95,7 +95,7 @@ repository:
9595
object-binding-element:
9696
patterns:
9797
- include: '#comment'
98-
- begin: \b([a-zA-Z_$][\w$]*)\s*(:)
98+
- begin: \b([_$[:alpha:]][_$[:alnum:]]*)\s*(:)
9999
beginCaptures:
100100
'1': { name: variable.object.property.ts }
101101
'2': { name: punctuation.destructuring.ts }
@@ -104,9 +104,9 @@ repository:
104104
- include: '#object-binding-pattern'
105105
- include: '#array-binding-pattern'
106106
- name: variable.other.readwrite.ts
107-
match: \b([a-zA-Z_$][\w$]*)\b
107+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
108108
- name: variable.other.readwrite.ts
109-
match: \b([a-zA-Z_$][\w$]*)\b
109+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
110110
- name: meta.delimiter.object.comma.ts
111111
match: ','
112112

@@ -116,7 +116,7 @@ repository:
116116
- include: '#object-binding-pattern'
117117
- include: '#array-binding-pattern'
118118
- name: variable.other.readwrite.ts
119-
match: \b([a-zA-Z_$][\w$]*)\b
119+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
120120
- name: meta.delimiter.object.comma.ts
121121
match: ','
122122

@@ -223,7 +223,7 @@ repository:
223223

224224
type-declaration:
225225
name: meta.type.declaration.ts
226-
begin: (?:(\bexport)\s+)?\b(type)\b\s+([a-zA-Z_$][\w$]*)\s*
226+
begin: (?:(\bexport)\s+)?\b(type)\b\s+([_$[:alpha:]][_$[:alnum:]]*)\s*
227227
beginCaptures:
228228
'1': { name: keyword.control.export.ts }
229229
'2': { name: storage.type.type.ts }
@@ -238,7 +238,7 @@ repository:
238238

239239
enum-declaration:
240240
name: meta.enum.declaration.ts
241-
match: (?:(\bexport)\s+)?(?:\b(const)\s+)?\b(enum)\s+([a-zA-Z_$][\w$]*)
241+
match: (?:(\bexport)\s+)?(?:\b(const)\s+)?\b(enum)\s+([_$[:alpha:]][_$[:alnum:]]*)
242242
captures:
243243
'1': { name: keyword.control.export.ts }
244244
'2': { name: storage.modifier.ts}
@@ -256,14 +256,14 @@ repository:
256256
- include: '#comment'
257257
- include: '#string'
258258
- name: entity.name.type.module.ts
259-
match: \b([a-zA-Z_$][\w$]*)\b
259+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
260260
- name: punctuation.accessor.ts
261261
match: \.
262262

263263
import-equals-declaration:
264264
patterns:
265265
- name: meta.import-equals.external.ts
266-
begin: (?:(\bexport)\s+)?\b(?<!\.)(import)\s+([a-zA-Z_$][\w$]*)\s*(=)\s*(require)\s*(\()
266+
begin: (?:(\bexport)\s+)?\b(?<!\.)(import)\s+([_$[:alpha:]][_$[:alnum:]]*)\s*(=)\s*(require)\s*(\()
267267
beginCaptures:
268268
'1': { name: keyword.control.export.ts }
269269
'2': { name: keyword.control.import.ts }
@@ -278,7 +278,7 @@ repository:
278278
- include: '#comment'
279279
- include: '#string'
280280
- name: meta.import-equals.internal.ts
281-
begin: (?:(\bexport)\s+)?\b(?<!\.)(import)\s+([a-zA-Z_$][\w$]*)\s*(=)\s*(?!require\b)
281+
begin: (?:(\bexport)\s+)?\b(?<!\.)(import)\s+([_$[:alpha:]][_$[:alnum:]]*)\s*(=)\s*(?!require\b)
282282
beginCaptures:
283283
'1': { name: keyword.control.export.ts }
284284
'2': { name: keyword.control.import.ts }
@@ -287,12 +287,12 @@ repository:
287287
end: (?=;|$)
288288
patterns:
289289
- include: '#comment'
290-
- match: \b([a-zA-Z_$][\w$]*)\s*(\.)
290+
- match: \b([_$[:alpha:]][_$[:alnum:]]*)\s*(\.)
291291
captures:
292292
'1': { name: entity.name.type.module.ts }
293293
'2': { name: punctuation.accessor.ts }
294294
- name: variable.other.readwrite.ts
295-
match: \b([a-zA-Z_$][\w$]*)\b
295+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
296296

297297
import-declaration:
298298
name: meta.import.ts
@@ -306,7 +306,7 @@ repository:
306306

307307
export-declaration:
308308
patterns:
309-
- match: \b(?<!\.)(export)\s+(as)\s+(namespace)\s+([a-zA-Z_$][\w$]*)
309+
- match: \b(?<!\.)(export)\s+(as)\s+(namespace)\s+([_$[:alpha:]][_$[:alnum:]]*)
310310
captures:
311311
'1': { name: keyword.control.export.ts }
312312
'2': { name: keyword.control.as.ts }
@@ -353,8 +353,8 @@ repository:
353353
patterns:
354354
- include: '#comment'
355355
- comment: (default|*|name) as alias
356-
match: '(?x) (?: \b(default)\b | (\*) | \b([a-zA-Z_$][a-zA-Z_$0-9]*)\b) \s* (\b
357-
as \b) \s* (?: (\b default \b | \*) | \b([a-zA-Z_$][a-zA-Z_$0-9]*)\b)'
356+
match: '(?x) (?: \b(default)\b | (\*) | \b([_$[:alpha:]][_$[:alnum:]]*)\b) \s* (\b
357+
as \b) \s* (?: (\b default \b | \*) | \b([_$[:alpha:]][_$[:alnum:]]*)\b)'
358358
captures:
359359
'1': { name: keyword.control.default.ts }
360360
'2': { name: constant.language.import-export-all.ts }
@@ -369,7 +369,7 @@ repository:
369369
- name: keyword.control.default.ts
370370
match: \b(default)\b
371371
- name: variable.other.readwrite.alias.ts
372-
match: \b([a-zA-Z_$][a-zA-Z_$0-9]*)\b
372+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
373373

374374
class-or-interface-declaration:
375375
name: meta.declaration.object.ts
@@ -391,7 +391,7 @@ repository:
391391

392392
class-or-interface-name:
393393
name: meta.object.name.ts
394-
match: '[a-zA-Z_$][\w$]*'
394+
match: '[_$[:alpha:]][_$[:alnum:]]*'
395395
captures:
396396
'0': { name: 'entity.name.class.ts' }
397397

@@ -411,7 +411,7 @@ repository:
411411

412412
class-or-interface-heritage-type:
413413
name: meta.object.heritage.parent.ts
414-
match: '(?:\b([a-zA-Z_$][\w$]*)\b)'
414+
match: '(?:\b([_$[:alpha:]][_$[:alnum:]]*)\b)'
415415
captures:
416416
'1': { name: entity.other.inherited-class.ts }
417417

@@ -457,7 +457,7 @@ repository:
457457

458458
field-declaration:
459459
name: meta.field.declaration.ts
460-
begin: (?<!\()\s*((?:\b[a-zA-Z_$][\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\"))\s*(\?\s*)?(?=(=|:))
460+
begin: (?<!\()\s*((?:\b[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\"))\s*(\?\s*)?(?=(=|:))
461461
beginCaptures:
462462
'1': { name: variable.object.property.ts }
463463
'2': { name: keyword.operator.optional.ts }
@@ -469,7 +469,7 @@ repository:
469469

470470
method-declaration:
471471
name: meta.method.declaration.ts
472-
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
472+
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
473473
beginCaptures:
474474
'1': { name: storage.modifier.ts } # captures keyword (abstract)
475475
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)
@@ -487,7 +487,7 @@ repository:
487487

488488
method-overload-declaration:
489489
name: meta.method.overload.declaration.ts
490-
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
490+
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
491491
beginCaptures:
492492
'1': { name: storage.modifier.ts } # captures keyword (abstract)
493493
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)
@@ -508,7 +508,7 @@ repository:
508508
- name: storage.type.ts
509509
match: \bconstructor\b(?=\s*[\(\<])
510510
- name: entity.name.function.ts
511-
match: \b[a-zA-Z_$][\.\w$]*
511+
match: \b[_$[:alpha:]][_$[:alnum:]]*
512512
- name: keyword.operator.optional.ts
513513
match: \?
514514

@@ -527,13 +527,13 @@ repository:
527527

528528
indexer-parameter:
529529
name: meta.indexer.parameter.ts
530-
match: ([a-zA-Z_$][\w$]*)(?=\:)
530+
match: ([_$[:alpha:]][_$[:alnum:]]*)(?=\:)
531531
captures:
532532
'1': { name: variable.parameter.ts}
533533

534534
function-declaration:
535535
name: meta.function.ts
536-
begin: \b(?:(export)\s+)?(?:(async)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s*
536+
begin: \b(?:(export)\s+)?(?:(async)\s+)?(function\b)(?:\s+([_$[:alpha:]][_$[:alnum:]]*))?\s*
537537
beginCaptures:
538538
'1': { name: keyword.control.export.ts }
539539
'2': { name: storage.modifier.async.ts }
@@ -550,7 +550,7 @@ repository:
550550

551551
function-overload-declaration:
552552
name: meta.function.overload.ts
553-
match: \b(?:(export)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s*
553+
match: \b(?:(export)\s+)?(function\b)(?:\s+([_$[:alpha:]][_$[:alnum:]]*))?\s*
554554
captures:
555555
'1': { name: keyword.control.export.ts }
556556
'2': { name: storage.type.function.ts }
@@ -601,7 +601,7 @@ repository:
601601
- include: '#object-member'
602602

603603
parameter-name:
604-
match: '(?:\s*\b(public|private|protected)\b\s+)?(\.\.\.)?\s*(?<!=|:)([a-zA-Z_$][\w$]*)\s*(\??)'
604+
match: '(?:\s*\b(public|private|protected)\b\s+)?(\.\.\.)?\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\s*(\??)'
605605
captures:
606606
'1': { name: storage.modifier.ts }
607607
'2': { name: keyword.operator.spread.ts }
@@ -632,7 +632,7 @@ repository:
632632
parameter-object-binding-element:
633633
patterns:
634634
- include: '#comment'
635-
- begin: \b([a-zA-Z_$][\w$]*)\s*(:)
635+
- begin: \b([_$[:alpha:]][_$[:alnum:]]*)\s*(:)
636636
beginCaptures:
637637
'1': { name: variable.object.property.ts }
638638
'2': { name: punctuation.destructuring.ts }
@@ -641,9 +641,9 @@ repository:
641641
- include: '#parameter-object-binding-pattern'
642642
- include: '#parameter-array-binding-pattern'
643643
- name: variable.parameter.ts
644-
match: \b([a-zA-Z_$][\w$]*)\b
644+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
645645
- name: variable.parameter.ts
646-
match: \b([a-zA-Z_$][\w$]*)\b
646+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
647647
- name: meta.delimiter.object.comma.ts
648648
match: ','
649649

@@ -653,7 +653,7 @@ repository:
653653
- include: '#parameter-object-binding-pattern'
654654
- include: '#parameter-array-binding-pattern'
655655
- name: variable.parameter.ts
656-
match: \b([a-zA-Z_$][\w$]*)\b
656+
match: \b([_$[:alpha:]][_$[:alnum:]]*)\b
657657
- name: meta.delimiter.object.comma.ts
658658
match: ','
659659

@@ -697,7 +697,7 @@ repository:
697697
type-annotation:
698698
name: meta.type.annotation.ts
699699
begin: ":"
700-
end: (?=$|[,);\}\]]|//)|(?==[^>])|(?<=[\}>\]\)]|[a-zA-Z_$])\s*(?=\{)
700+
end: (?=$|[,);\}\]]|//)|(?==[^>])|(?<=[\}>\]\)]|[_$[:alpha:]])\s*(?=\{)
701701
patterns:
702702
- include: '#expression-operator'
703703
- include: '#type'
@@ -790,12 +790,17 @@ repository:
790790
- include: '#comment'
791791

792792
type-name:
793-
name: entity.name.type.ts
794-
match: '[a-zA-Z_$][.\w$]*'
793+
patterns:
794+
- match: \b([_$[:alpha:]][_$[:alnum:]]*)\s*(\.)
795+
captures:
796+
'1': { name: entity.name.type.module.ts }
797+
'2': { name: punctuation.accessor.ts }
798+
- name: entity.name.type.ts
799+
match: '[_$[:alpha:]][_$[:alnum:]]*'
795800

796801
type-parameters:
797802
name: meta.type.parameters.ts
798-
begin: '([a-zA-Z_$][\w$]*)?(<)'
803+
begin: '([_$[:alpha:]][_$[:alnum:]]*)?(<)'
799804
beginCaptures:
800805
'1': { name: entity.name.type.ts }
801806
'2': { name: punctuation.definition.typeparameters.begin.ts }
@@ -871,7 +876,7 @@ repository:
871876

872877
for-in-simple:
873878
name: forin.expr.ts
874-
match: (?<=\()\s*\b(var|let|const)\s+([a-zA-Z_$][\w$]*)\s+(?:(in)|(of))\b
879+
match: (?<=\()\s*\b(var|let|const)\s+([_$[:alpha:]][_$[:alnum:]]*)\s+(?:(in)|(of))\b
875880
captures:
876881
'1': { name: storage.type.ts }
877882
'2': { name: variable.other.readwrite.ts }
@@ -915,7 +920,7 @@ repository:
915920
- include: '#comment'
916921
- include: '#method-declaration'
917922
- name: meta.object.member.ts
918-
begin: '[a-zA-Z_$][\w$]*\s*:'
923+
begin: '[_$[:alpha:]][_$[:alnum:]]*\s*:'
919924
end: (?=,|\})
920925
patterns:
921926
- include: '#expression'
@@ -1087,7 +1092,7 @@ repository:
10871092

10881093
template:
10891094
name: string.template.ts
1090-
begin: '(?:\b([a-zA-Z_$][a-zA-Z_$0-9]*)\b)?(`)'
1095+
begin: '(?:\b([_$[:alpha:]][_$[:alnum:]]*)\b)?(`)'
10911096
beginCaptures:
10921097
'1': { name: entity.name.function.tagged-template.ts }
10931098
'2': { name: punctuation.definition.string.template.begin.ts }
@@ -1142,7 +1147,7 @@ repository:
11421147
patterns:
11431148
- name: storage.type.class.jsdoc
11441149
match: (?<!\w)@(abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbes|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exports?|extends|extension|extension_for|extensionfor|external|file|fileoverview|final|fires|for|function|global|host|ignore|implements|inherit[Dd]oc|inner|instance|interface|kind|lends|license|listens|main|member|memberof|method|mixex|mixins?|module|name|namespace|nocollapse|nosideeffects|override|overview|package|param|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce)\b
1145-
- match: ({\b(?:[a-zA-Z_$][a-zA-Z_$0-9]*)\b})\s\b([a-zA-Z_$][a-zA-Z_$0-9]*)\b\s*((?:(?!\*\/).)*)
1150+
- match: ({\b(?:[_$[:alpha:]][_$[:alnum:]]*)\b})\s\b([_$[:alpha:]][_$[:alnum:]]*)\b\s*((?:(?!\*\/).)*)
11461151
captures:
11471152
'0': {name: other.meta.jsdoc}
11481153
'1': {name: entity.name.type.instance.jsdoc}

0 commit comments

Comments
 (0)