Skip to content

Commit 5568824

Browse files
committed
Handle single line comments so that they consume end of the line so that we dont use wrong lookup to determine end of syntax matching
Fixes #455
1 parent 54fc3e4 commit 5568824

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+339
-163
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ repository:
3535
beginCaptures:
3636
'1': { name: keyword.control.export.ts }
3737
'2': { name: storage.type.ts }
38-
end: (?=$|;|}|(\s+(of|in)\s+))
38+
end: (?=$|^|;|}|(\s+(of|in)\s+))
3939
patterns:
4040
- include: '#destructuring-variable'
4141
- include: '#var-single-variable'
@@ -76,21 +76,21 @@ repository:
7676
)
7777
beginCaptures:
7878
'1': { name: meta.definition.variable.ts entity.name.function.ts }
79-
end: (?=$|[;,=}]|(\s+(of|in)\s+))
79+
end: (?=$|^|[;,=}]|(\s+(of|in)\s+))
8080
patterns:
8181
- include: '#var-single-variable-type-annotation'
8282
- name: meta.var-single-variable.expr.ts
8383
begin: ([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])
8484
beginCaptures:
8585
'1': { name: meta.definition.variable.ts variable.other.constant.ts }
86-
end: (?=$|[;,=}]|(\s+(of|in)\s+))
86+
end: (?=$|^|[;,=}]|(\s+(of|in)\s+))
8787
patterns:
8888
- include: '#var-single-variable-type-annotation'
8989
- name: meta.var-single-variable.expr.ts
9090
begin: ([_$[:alpha:]][_$[:alnum:]]*)
9191
beginCaptures:
9292
'1': { name: meta.definition.variable.ts variable.other.readwrite.ts }
93-
end: (?=$|[;,=}]|(\s+(of|in)\s+))
93+
end: (?=$|^|[;,=}]|(\s+(of|in)\s+))
9494
patterns:
9595
- include: '#var-single-variable-type-annotation'
9696

@@ -104,14 +104,14 @@ repository:
104104
patterns:
105105
- name: meta.object-binding-pattern-variable.ts
106106
begin: (?<!=|:|of|in)\s*(?=\{)
107-
end: (?=$|[;,=}]|(\s+(of|in)\s+))
107+
end: (?=$|^|[;,=}]|(\s+(of|in)\s+))
108108
patterns:
109109
- include: '#object-binding-pattern'
110110
- include: '#type-annotation'
111111
- include: '#comment'
112112
- name: meta.array-binding-pattern-variable.ts
113113
begin: (?<!=|:|of|in)\s*(?=\[)
114-
end: (?=$|[;,=}]|(\s+(of|in)\s+))
114+
end: (?=$|^|[;,=}]|(\s+(of|in)\s+))
115115
patterns:
116116
- include: '#array-binding-pattern'
117117
- include: '#type-annotation'
@@ -541,11 +541,11 @@ repository:
541541
begin: (?<!\()(?:(?<!\.|\$)\b(readonly)\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))
542542
beginCaptures:
543543
'1': { name: storage.modifier.ts }
544-
end: '(?=\}|;|,|$)|(?<=\})'
544+
end: (?=\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?<=\})
545545
patterns:
546546
- include: '#variable-initializer'
547547
- begin: (?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))
548-
end: (?=[};,=]|$)|(?<=\})
548+
end: (?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?<=\})
549549
patterns:
550550
- include: '#type-annotation'
551551
- include: '#string'
@@ -681,7 +681,7 @@ repository:
681681
'3': { name: storage.type.function.ts }
682682
'4': { name: keyword.generator.asterisk.ts }
683683
'5': { name: meta.definition.function.ts entity.name.function.ts }
684-
end: (?=$|;)|(?<=\})
684+
end: (?=$|^|;)|(?<=\})
685685
patterns:
686686
- include: '#comment'
687687
- include: '#type-parameters'
@@ -860,7 +860,7 @@ repository:
860860
begin: (?<=\))\s*(:)
861861
beginCaptures:
862862
'1': { name: keyword.operator.type.annotation.ts }
863-
end: (?<![:|&])((?=$)|(?=[{};,]|//))
863+
end: (?<![:|&])(?=$|^|[{};,]|//)
864864
patterns:
865865
- include: '#comment'
866866
# Handle returning of object type specifically here so as to not confuse it with the start of function block
@@ -880,7 +880,7 @@ repository:
880880
begin: ":"
881881
beginCaptures:
882882
'0': { name: keyword.operator.type.annotation.ts }
883-
end: (?=$|[,);\}\]]|//)|(?==[^>])|(?<=[\}>\]\)]|[_$[:alpha:]])\s*(?=\{)
883+
end: (?=$|^|[,);\}\]]|//)|(?==[^>])|(?<=[\}>\]\)]|[_$[:alpha:]])\s*(?=\{)
884884
patterns:
885885
- include: '#comment'
886886
- include: '#type'
@@ -1055,7 +1055,7 @@ repository:
10551055
- begin: (?<!=|!)(=)(?!=)(?=\s*\S)
10561056
beginCaptures:
10571057
'1': { name: keyword.operator.assignment.ts }
1058-
end: (?=$|[,);}\]])
1058+
end: (?=$|^|[,);}\]])
10591059
patterns:
10601060
- include: '#expression'
10611061
# if the expression doesnt start on same line do not use end of line as end of unless the complete line is blank
@@ -1611,7 +1611,7 @@ repository:
16111611
- begin: (?<!\.|\$)\b(as)\s+
16121612
beginCaptures:
16131613
'1': { name: keyword.control.as.ts }
1614-
end: (?=$|[;,:})\]])
1614+
end: (?=$|^|[;,:})\]])
16151615
patterns:
16161616
- include: '#type'
16171617
- name: keyword.operator.spread.ts
@@ -1999,20 +1999,20 @@ repository:
19991999
- begin: (^[ \t]+)?(?=//)
20002000
beginCaptures:
20012001
'1': { name: punctuation.whitespace.comment.leading.ts }
2002-
end: (?=$)
2002+
end: (?=^[^/][^/])
20032003
patterns:
20042004
- name: comment.line.double-slash.ts
20052005
begin: //
20062006
beginCaptures:
20072007
'0': { name: punctuation.definition.comment.ts }
2008-
end: (?=$)
2008+
end: (?=^)
20092009

20102010
directives:
20112011
name: comment.line.triple-slash.directive.ts
20122012
begin: ^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'[^']*\')|(\"[^"]*\")))+\s*/>\s*$)
20132013
beginCaptures:
20142014
'1': { name: punctuation.definition.comment.ts }
2015-
end: (?=$)
2015+
end: (?=^)
20162016
patterns:
20172017
- name: meta.tag.ts
20182018
begin: (<)(reference|amd-dependency|amd-module)

TypeScript.tmLanguage

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
</dict>
110110
</dict>
111111
<key>end</key>
112-
<string>(?=$|;|}|(\s+(of|in)\s+))</string>
112+
<string>(?=$|^|;|}|(\s+(of|in)\s+))</string>
113113
<key>patterns</key>
114114
<array>
115115
<dict>
@@ -176,7 +176,7 @@
176176
</dict>
177177
</dict>
178178
<key>end</key>
179-
<string>(?=$|[;,=}]|(\s+(of|in)\s+))</string>
179+
<string>(?=$|^|[;,=}]|(\s+(of|in)\s+))</string>
180180
<key>patterns</key>
181181
<array>
182182
<dict>
@@ -199,7 +199,7 @@
199199
</dict>
200200
</dict>
201201
<key>end</key>
202-
<string>(?=$|[;,=}]|(\s+(of|in)\s+))</string>
202+
<string>(?=$|^|[;,=}]|(\s+(of|in)\s+))</string>
203203
<key>patterns</key>
204204
<array>
205205
<dict>
@@ -222,7 +222,7 @@
222222
</dict>
223223
</dict>
224224
<key>end</key>
225-
<string>(?=$|[;,=}]|(\s+(of|in)\s+))</string>
225+
<string>(?=$|^|[;,=}]|(\s+(of|in)\s+))</string>
226226
<key>patterns</key>
227227
<array>
228228
<dict>
@@ -261,7 +261,7 @@
261261
<key>begin</key>
262262
<string>(?&lt;!=|:|of|in)\s*(?=\{)</string>
263263
<key>end</key>
264-
<string>(?=$|[;,=}]|(\s+(of|in)\s+))</string>
264+
<string>(?=$|^|[;,=}]|(\s+(of|in)\s+))</string>
265265
<key>patterns</key>
266266
<array>
267267
<dict>
@@ -284,7 +284,7 @@
284284
<key>begin</key>
285285
<string>(?&lt;!=|:|of|in)\s*(?=\[)</string>
286286
<key>end</key>
287-
<string>(?=$|[;,=}]|(\s+(of|in)\s+))</string>
287+
<string>(?=$|^|[;,=}]|(\s+(of|in)\s+))</string>
288288
<key>patterns</key>
289289
<array>
290290
<dict>
@@ -1725,7 +1725,7 @@
17251725
</dict>
17261726
</dict>
17271727
<key>end</key>
1728-
<string>(?=\}|;|,|$)|(?&lt;=\})</string>
1728+
<string>(?=\}|;|,|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?&lt;=\})</string>
17291729
<key>patterns</key>
17301730
<array>
17311731
<dict>
@@ -1736,7 +1736,7 @@
17361736
<key>begin</key>
17371737
<string>(?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))</string>
17381738
<key>end</key>
1739-
<string>(?=[};,=]|$)|(?&lt;=\})</string>
1739+
<string>(?=[};,=]|$|(^(?!(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))))|(?&lt;=\})</string>
17401740
<key>patterns</key>
17411741
<array>
17421742
<dict>
@@ -2129,7 +2129,7 @@
21292129
</dict>
21302130
</dict>
21312131
<key>end</key>
2132-
<string>(?=$|;)|(?&lt;=\})</string>
2132+
<string>(?=$|^|;)|(?&lt;=\})</string>
21332133
<key>patterns</key>
21342134
<array>
21352135
<dict>
@@ -2649,7 +2649,7 @@
26492649
</dict>
26502650
</dict>
26512651
<key>end</key>
2652-
<string>(?&lt;![:|&amp;])((?=$)|(?=[{};,]|//))</string>
2652+
<string>(?&lt;![:|&amp;])(?=$|^|[{};,]|//)</string>
26532653
<key>patterns</key>
26542654
<array>
26552655
<dict>
@@ -2701,7 +2701,7 @@
27012701
</dict>
27022702
</dict>
27032703
<key>end</key>
2704-
<string>(?=$|[,);\}\]]|//)|(?==[^&gt;])|(?&lt;=[\}&gt;\]\)]|[_$[:alpha:]])\s*(?=\{)</string>
2704+
<string>(?=$|^|[,);\}\]]|//)|(?==[^&gt;])|(?&lt;=[\}&gt;\]\)]|[_$[:alpha:]])\s*(?=\{)</string>
27052705
<key>patterns</key>
27062706
<array>
27072707
<dict>
@@ -3178,7 +3178,7 @@
31783178
</dict>
31793179
</dict>
31803180
<key>end</key>
3181-
<string>(?=$|[,);}\]])</string>
3181+
<string>(?=$|^|[,);}\]])</string>
31823182
<key>patterns</key>
31833183
<array>
31843184
<dict>
@@ -4431,7 +4431,7 @@
44314431
</dict>
44324432
</dict>
44334433
<key>end</key>
4434-
<string>(?=$|[;,:})\]])</string>
4434+
<string>(?=$|^|[;,:})\]])</string>
44354435
<key>patterns</key>
44364436
<array>
44374437
<dict>
@@ -5505,7 +5505,7 @@
55055505
</dict>
55065506
</dict>
55075507
<key>end</key>
5508-
<string>(?=$)</string>
5508+
<string>(?=^[^/][^/])</string>
55095509
<key>patterns</key>
55105510
<array>
55115511
<dict>
@@ -5522,7 +5522,7 @@
55225522
</dict>
55235523
</dict>
55245524
<key>end</key>
5525-
<string>(?=$)</string>
5525+
<string>(?=^)</string>
55265526
</dict>
55275527
</array>
55285528
</dict>
@@ -5543,7 +5543,7 @@
55435543
</dict>
55445544
</dict>
55455545
<key>end</key>
5546-
<string>(?=$)</string>
5546+
<string>(?=^)</string>
55475547
<key>patterns</key>
55485548
<array>
55495549
<dict>

0 commit comments

Comments
 (0)