Skip to content

Commit 53821b0

Browse files
committed
Update the string property name or object literal key detection to match puctuations
1 parent c74b48e commit 53821b0

File tree

5 files changed

+234
-42
lines changed

5 files changed

+234
-42
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ repository:
120120
object-binding-element:
121121
patterns:
122122
- include: '#comment'
123-
- begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))
123+
- begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))
124124
end: (?=,|\})
125125
patterns:
126126
- include: '#object-binding-element-propertyName'
@@ -131,7 +131,7 @@ repository:
131131
- include: '#punctuation-comma'
132132

133133
object-binding-element-propertyName:
134-
begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))
134+
begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))
135135
end: (:)
136136
endCaptures:
137137
'0': { name: punctuation.destructuring.ts }
@@ -294,7 +294,7 @@ repository:
294294
patterns:
295295
- include: '#comment'
296296
- include: '#variable-initializer'
297-
- begin: (?=((\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\])))
297+
- begin: (?=((\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\])))
298298
end: (?=,|\}|$)
299299
patterns:
300300
- include: '#string'
@@ -538,14 +538,14 @@ repository:
538538

539539
field-declaration:
540540
name: meta.field.declaration.ts
541-
begin: (?<!\()(?:(?<!\.|\$)\b(readonly)\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))
541+
begin: (?<!\()(?:(?<!\.|\$)\b(readonly)\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))
542542
beginCaptures:
543543
'1': { name: storage.modifier.ts }
544-
end: (?=\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?<=\})
544+
end: (?=\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?<=\})
545545
patterns:
546546
- include: '#variable-initializer'
547-
- begin: (?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'.*\')|(?:\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))
548-
end: (?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?<=\})
547+
- begin: (?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))
548+
end: (?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?<=\})
549549
patterns:
550550
- include: '#type-annotation'
551551
- include: '#string'
@@ -588,7 +588,7 @@ repository:
588588
method-declaration:
589589
patterns:
590590
- name: meta.method.declaration.ts
591-
begin: (?<!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\<])
591+
begin: (?<!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\<])
592592
beginCaptures:
593593
'1': { name: storage.modifier.ts } # captures keyword (public or private or protected)
594594
'2': { name: storage.modifier.ts } # captures keyword (abstract)
@@ -604,7 +604,7 @@ repository:
604604
- include: '#return-type'
605605
- include: '#decl-block'
606606
- name: meta.method.declaration.ts
607-
begin: (?<!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$|\.|:))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\<]))
607+
begin: (?<!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$|\.|:))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\<]))
608608
beginCaptures:
609609
'1': { name: storage.modifier.ts } # captures keyword (public or private or protected)
610610
'2': { name: storage.modifier.ts } # captures keyword (abstract)
@@ -622,7 +622,7 @@ repository:
622622
- include: '#decl-block'
623623

624624
method-declaration-name:
625-
begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??)\s*[\(\<])
625+
begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??)\s*[\(\<])
626626
end: (?=\(|\<)
627627
patterns:
628628
- include: '#string'
@@ -634,7 +634,7 @@ repository:
634634

635635
object-literal-method-declaration:
636636
name: meta.method.declaration.ts
637-
begin: (?<!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\<])
637+
begin: (?<!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\<])
638638
beginCaptures:
639639
'1': { name: storage.modifier.async.ts } # captures keyword (async)
640640
'2': { name: storage.type.property.ts } # captures keyword (get|set)
@@ -650,7 +650,7 @@ repository:
650650
- include: '#decl-block'
651651

652652
object-literal-method-overload-declaration:
653-
begin: (?<!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\<])
653+
begin: (?<!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\<])
654654
beginCaptures:
655655
'1': { name: storage.modifier.async.ts } # captures keyword (async)
656656
'2': { name: storage.type.property.ts } # captures keyword (get|set)
@@ -826,7 +826,7 @@ repository:
826826
parameter-object-binding-element:
827827
patterns:
828828
- include: '#comment'
829-
- begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))
829+
- begin: (?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))
830830
end: (?=,|\})
831831
patterns:
832832
- include: '#object-binding-element-propertyName'
@@ -2063,7 +2063,7 @@ repository:
20632063

20642064
directives:
20652065
name: comment.line.triple-slash.directive.ts
2066-
begin: ^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'.*\')|(\".*\")))+\s*/>\s*$)
2066+
begin: ^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")))+\s*/>\s*$)
20672067
beginCaptures:
20682068
'1': { name: punctuation.definition.comment.ts }
20692069
end: (?=^)

TypeScript.tmLanguage

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@
313313
</dict>
314314
<dict>
315315
<key>begin</key>
316-
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string>
316+
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string>
317317
<key>end</key>
318318
<string>(?=,|\})</string>
319319
<key>patterns</key>
@@ -349,7 +349,7 @@
349349
<key>object-binding-element-propertyName</key>
350350
<dict>
351351
<key>begin</key>
352-
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string>
352+
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string>
353353
<key>end</key>
354354
<string>(:)</string>
355355
<key>endCaptures</key>
@@ -877,7 +877,7 @@
877877
</dict>
878878
<dict>
879879
<key>begin</key>
880-
<string>(?=((\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\])))</string>
880+
<string>(?=((\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\])))</string>
881881
<key>end</key>
882882
<string>(?=,|\}|$)</string>
883883
<key>patterns</key>
@@ -1715,7 +1715,7 @@
17151715
<key>name</key>
17161716
<string>meta.field.declaration.ts</string>
17171717
<key>begin</key>
1718-
<string>(?&lt;!\()(?:(?&lt;!\.|\$)\b(readonly)\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))</string>
1718+
<string>(?&lt;!\()(?:(?&lt;!\.|\$)\b(readonly)\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))</string>
17191719
<key>beginCaptures</key>
17201720
<dict>
17211721
<key>1</key>
@@ -1725,7 +1725,7 @@
17251725
</dict>
17261726
</dict>
17271727
<key>end</key>
1728-
<string>(?=\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?&lt;=\})</string>
1728+
<string>(?=\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?&lt;=\})</string>
17291729
<key>patterns</key>
17301730
<array>
17311731
<dict>
@@ -1734,9 +1734,9 @@
17341734
</dict>
17351735
<dict>
17361736
<key>begin</key>
1737-
<string>(?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'.*\')|(?:\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))</string>
1737+
<string>(?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))</string>
17381738
<key>end</key>
1739-
<string>(?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?&lt;=\})</string>
1739+
<string>(?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?&lt;=\})</string>
17401740
<key>patterns</key>
17411741
<array>
17421742
<dict>
@@ -1809,7 +1809,7 @@
18091809
<key>name</key>
18101810
<string>meta.method.declaration.ts</string>
18111811
<key>begin</key>
1812-
<string>(?&lt;!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\&lt;])</string>
1812+
<string>(?&lt;!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\&lt;])</string>
18131813
<key>beginCaptures</key>
18141814
<dict>
18151815
<key>1</key>
@@ -1872,7 +1872,7 @@
18721872
<key>name</key>
18731873
<string>meta.method.declaration.ts</string>
18741874
<key>begin</key>
1875-
<string>(?&lt;!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$|\.|:))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\&lt;]))</string>
1875+
<string>(?&lt;!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$|\.|:))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\&lt;]))</string>
18761876
<key>beginCaptures</key>
18771877
<dict>
18781878
<key>1</key>
@@ -1941,7 +1941,7 @@
19411941
<key>method-declaration-name</key>
19421942
<dict>
19431943
<key>begin</key>
1944-
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??)\s*[\(\&lt;])</string>
1944+
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??)\s*[\(\&lt;])</string>
19451945
<key>end</key>
19461946
<string>(?=\(|\&lt;)</string>
19471947
<key>patterns</key>
@@ -1973,7 +1973,7 @@
19731973
<key>name</key>
19741974
<string>meta.method.declaration.ts</string>
19751975
<key>begin</key>
1976-
<string>(?&lt;!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\&lt;])</string>
1976+
<string>(?&lt;!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\&lt;])</string>
19771977
<key>beginCaptures</key>
19781978
<dict>
19791979
<key>1</key>
@@ -2029,7 +2029,7 @@
20292029
<key>object-literal-method-overload-declaration</key>
20302030
<dict>
20312031
<key>begin</key>
2032-
<string>(?&lt;!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\&lt;])</string>
2032+
<string>(?&lt;!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))\s*[\(\&lt;])</string>
20332033
<key>beginCaptures</key>
20342034
<dict>
20352035
<key>1</key>
@@ -2556,7 +2556,7 @@
25562556
</dict>
25572557
<dict>
25582558
<key>begin</key>
2559-
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'.*\')|(\".*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string>
2559+
<string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string>
25602560
<key>end</key>
25612561
<string>(?=,|\})</string>
25622562
<key>patterns</key>
@@ -5701,7 +5701,7 @@
57015701
<key>name</key>
57025702
<string>comment.line.triple-slash.directive.ts</string>
57035703
<key>begin</key>
5704-
<string>^(///)\s*(?=&lt;(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'.*\')|(\".*\")))+\s*/&gt;\s*$)</string>
5704+
<string>^(///)\s*(?=&lt;(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")))+\s*/&gt;\s*$)</string>
57055705
<key>beginCaptures</key>
57065706
<dict>
57075707
<key>1</key>

0 commit comments

Comments
 (0)