Skip to content

Commit 486f645

Browse files
committed
Handle comma followed by single line comment in variable expression
Fixes #491 portion after making comments not consume end of line
1 parent 14e9cf1 commit 486f645

File tree

4 files changed

+110
-7
lines changed

4 files changed

+110
-7
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,12 @@ repository:
256256
- include: '#var-single-variable'
257257
- include: '#variable-initializer'
258258
- include: '#comment'
259-
- begin: (,)\s*(?!\S)
259+
- begin: (,)\s*((?!\S)|(?=\/\/))
260260
beginCaptures:
261261
'1': { name: punctuation.separator.comma.ts }
262262
end: (?<!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?<=\S)(?=\s*$)))
263263
patterns:
264+
- include: '#single-line-comment-consuming-line-ending'
264265
- include: '#comment'
265266
- include: '#destructuring-variable'
266267
- include: '#var-single-variable'
@@ -279,11 +280,12 @@ repository:
279280
- include: '#var-single-const'
280281
- include: '#variable-initializer'
281282
- include: '#comment'
282-
- begin: (,)\s*(?!\S)
283+
- begin: (,)\s*((?!\S)|(?=\/\/))
283284
beginCaptures:
284285
'1': { name: punctuation.separator.comma.ts }
285286
end: (?<!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?<=\S)(?=\s*$)))
286287
patterns:
288+
- include: '#single-line-comment-consuming-line-ending'
287289
- include: '#comment'
288290
- include: '#destructuring-const'
289291
- include: '#var-single-const'
@@ -2494,6 +2496,17 @@ repository:
24942496
end: (?=$)
24952497
contentName: comment.line.double-slash.ts
24962498

2499+
single-line-comment-consuming-line-ending:
2500+
begin: (^[ \t]+)?((//)(?:\s*((@)internal)(?=\s|$))?)
2501+
beginCaptures:
2502+
'1': { name: punctuation.whitespace.comment.leading.ts }
2503+
'2': { name: comment.line.double-slash.ts }
2504+
'3': { name: punctuation.definition.comment.ts }
2505+
'4': { name: storage.type.internaldeclaration.ts }
2506+
'5': { name: punctuation.decorator.internaldeclaration.ts }
2507+
end: (?=^)
2508+
contentName: comment.line.double-slash.ts
2509+
24972510
directives:
24982511
name: comment.line.triple-slash.directive.ts
24992512
begin: ^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|lib|name)\s*=\s*({{quotedStrings}}))+\s*/>\s*$)

TypeScript.tmLanguage

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@
452452
</dict>
453453
<dict>
454454
<key>begin</key>
455-
<string>(,)\s*(?!\S)</string>
455+
<string>(,)\s*((?!\S)|(?=\/\/))</string>
456456
<key>beginCaptures</key>
457457
<dict>
458458
<key>1</key>
@@ -465,6 +465,10 @@
465465
<string>(?&lt;!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?&lt;=\S)(?=\s*$)))</string>
466466
<key>patterns</key>
467467
<array>
468+
<dict>
469+
<key>include</key>
470+
<string>#single-line-comment-consuming-line-ending</string>
471+
</dict>
468472
<dict>
469473
<key>include</key>
470474
<string>#comment</string>
@@ -534,7 +538,7 @@
534538
</dict>
535539
<dict>
536540
<key>begin</key>
537-
<string>(,)\s*(?!\S)</string>
541+
<string>(,)\s*((?!\S)|(?=\/\/))</string>
538542
<key>beginCaptures</key>
539543
<dict>
540544
<key>1</key>
@@ -547,6 +551,10 @@
547551
<string>(?&lt;!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?&lt;=\S)(?=\s*$)))</string>
548552
<key>patterns</key>
549553
<array>
554+
<dict>
555+
<key>include</key>
556+
<string>#single-line-comment-consuming-line-ending</string>
557+
</dict>
550558
<dict>
551559
<key>include</key>
552560
<string>#comment</string>
@@ -7413,6 +7421,43 @@
74137421
</dict>
74147422
</array>
74157423
</dict>
7424+
<key>single-line-comment-consuming-line-ending</key>
7425+
<dict>
7426+
<key>begin</key>
7427+
<string>(^[ \t]+)?((//)(?:\s*((@)internal)(?=\s|$))?)</string>
7428+
<key>beginCaptures</key>
7429+
<dict>
7430+
<key>1</key>
7431+
<dict>
7432+
<key>name</key>
7433+
<string>punctuation.whitespace.comment.leading.ts</string>
7434+
</dict>
7435+
<key>2</key>
7436+
<dict>
7437+
<key>name</key>
7438+
<string>comment.line.double-slash.ts</string>
7439+
</dict>
7440+
<key>3</key>
7441+
<dict>
7442+
<key>name</key>
7443+
<string>punctuation.definition.comment.ts</string>
7444+
</dict>
7445+
<key>4</key>
7446+
<dict>
7447+
<key>name</key>
7448+
<string>storage.type.internaldeclaration.ts</string>
7449+
</dict>
7450+
<key>5</key>
7451+
<dict>
7452+
<key>name</key>
7453+
<string>punctuation.decorator.internaldeclaration.ts</string>
7454+
</dict>
7455+
</dict>
7456+
<key>end</key>
7457+
<string>(?=^)</string>
7458+
<key>contentName</key>
7459+
<string>comment.line.double-slash.ts</string>
7460+
</dict>
74167461
<key>directives</key>
74177462
<dict>
74187463
<key>name</key>

TypeScriptReact.tmLanguage

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@
456456
</dict>
457457
<dict>
458458
<key>begin</key>
459-
<string>(,)\s*(?!\S)</string>
459+
<string>(,)\s*((?!\S)|(?=\/\/))</string>
460460
<key>beginCaptures</key>
461461
<dict>
462462
<key>1</key>
@@ -469,6 +469,10 @@
469469
<string>(?&lt;!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?&lt;=\S)(?=\s*$)))</string>
470470
<key>patterns</key>
471471
<array>
472+
<dict>
473+
<key>include</key>
474+
<string>#single-line-comment-consuming-line-ending</string>
475+
</dict>
472476
<dict>
473477
<key>include</key>
474478
<string>#comment</string>
@@ -538,7 +542,7 @@
538542
</dict>
539543
<dict>
540544
<key>begin</key>
541-
<string>(,)\s*(?!\S)</string>
545+
<string>(,)\s*((?!\S)|(?=\/\/))</string>
542546
<key>beginCaptures</key>
543547
<dict>
544548
<key>1</key>
@@ -551,6 +555,10 @@
551555
<string>(?&lt;!,)(((?==|;|}|(\s+(of|in)\s+)|^\s*$))|((?&lt;=\S)(?=\s*$)))</string>
552556
<key>patterns</key>
553557
<array>
558+
<dict>
559+
<key>include</key>
560+
<string>#single-line-comment-consuming-line-ending</string>
561+
</dict>
554562
<dict>
555563
<key>include</key>
556564
<string>#comment</string>
@@ -7359,6 +7367,43 @@
73597367
</dict>
73607368
</array>
73617369
</dict>
7370+
<key>single-line-comment-consuming-line-ending</key>
7371+
<dict>
7372+
<key>begin</key>
7373+
<string>(^[ \t]+)?((//)(?:\s*((@)internal)(?=\s|$))?)</string>
7374+
<key>beginCaptures</key>
7375+
<dict>
7376+
<key>1</key>
7377+
<dict>
7378+
<key>name</key>
7379+
<string>punctuation.whitespace.comment.leading.tsx</string>
7380+
</dict>
7381+
<key>2</key>
7382+
<dict>
7383+
<key>name</key>
7384+
<string>comment.line.double-slash.tsx</string>
7385+
</dict>
7386+
<key>3</key>
7387+
<dict>
7388+
<key>name</key>
7389+
<string>punctuation.definition.comment.tsx</string>
7390+
</dict>
7391+
<key>4</key>
7392+
<dict>
7393+
<key>name</key>
7394+
<string>storage.type.internaldeclaration.tsx</string>
7395+
</dict>
7396+
<key>5</key>
7397+
<dict>
7398+
<key>name</key>
7399+
<string>punctuation.decorator.internaldeclaration.tsx</string>
7400+
</dict>
7401+
</dict>
7402+
<key>end</key>
7403+
<string>(?=^)</string>
7404+
<key>contentName</key>
7405+
<string>comment.line.double-slash.tsx</string>
7406+
</dict>
73627407
<key>directives</key>
73637408
<dict>
73647409
<key>name</key>

tests/baselines/Issue491.baseline.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,5 +104,5 @@ Grammar: TypeScript.tmLanguage
104104
source.ts
105105
^^
106106
source.ts comment.line.double-slash.ts punctuation.definition.comment.ts
107-
^^^^^^^^^^^^^^^^^^^^^^^^
107+
^^^^^^^^^^^^^^^^^^^^^^^
108108
source.ts comment.line.double-slash.ts

0 commit comments

Comments
 (0)