Skip to content

Commit aea13ef

Browse files
committed
Update comment grammar
1 parent d9a7c97 commit aea13ef

29 files changed

+805
-419
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -635,25 +635,40 @@ repository:
635635
- include: '#expression'
636636

637637
comment:
638-
name: comment.ts
639638
patterns:
640-
- include: '#comment-block-doc'
641-
- include: '#comment-block'
642-
- include: '#comment-line'
643-
644-
comment-block-doc:
645-
name: comment.block.documentation.ts
646-
begin: /\*\*(?!/)
647-
end: \*/
648-
649-
comment-block:
650-
name: comment.block.ts
651-
begin: /\*
652-
end: \*/
653-
654-
comment-line:
655-
name: comment.line.ts
656-
match: (//).*$\n?
639+
- name: comment.block.documentation.ts
640+
begin: /\*\*(?!/)
641+
end: \*/
642+
captures:
643+
'0': {name: punctuation.definition.comment.ts}
644+
patterns:
645+
- include: '#docblock'
646+
- name: comment.block.ts
647+
begin: /\*
648+
end: \*/
649+
captures:
650+
'0': {name: punctuation.definition.comment.ts}
651+
- begin: (^[ \t]+)?(?=//)
652+
beginCaptures:
653+
'1': {name: punctuation.whitespace.comment.leading.ts}
654+
end: (?!\G)
655+
patterns:
656+
- name: comment.line.double-slash.ts
657+
begin: //
658+
beginCaptures:
659+
'0': {name: punctuation.definition.comment.ts}
660+
end: \n
661+
662+
docblock:
663+
patterns:
664+
- name: storage.type.class.jsdoc
665+
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
666+
- match: ({\b(?:[a-zA-Z_$][a-zA-Z_$0-9]*)\b})\s\b([a-zA-Z_$][a-zA-Z_$0-9]*)\b\s*((?:(?!\*\/).)*)
667+
captures:
668+
'0': {name: other.meta.jsdoc}
669+
'1': {name: entity.name.type.instance.jsdoc}
670+
'2': {name: variable.other.jsdoc}
671+
'3': {name: other.description.jsdoc}
657672

658673
literal:
659674
name: literal.ts

TypeScript.tmLanguage

Lines changed: 109 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -178,49 +178,82 @@
178178
</dict>
179179
<key>comment</key>
180180
<dict>
181-
<key>name</key>
182-
<string>comment.ts</string>
183181
<key>patterns</key>
184182
<array>
185183
<dict>
186-
<key>include</key>
187-
<string>#comment-block-doc</string>
188-
</dict>
189-
<dict>
190-
<key>include</key>
191-
<string>#comment-block</string>
192-
</dict>
193-
<dict>
194-
<key>include</key>
195-
<string>#comment-line</string>
184+
<key>begin</key>
185+
<string>/\*\*(?!/)</string>
186+
<key>captures</key>
187+
<dict>
188+
<key>0</key>
189+
<dict>
190+
<key>name</key>
191+
<string>punctuation.definition.comment.ts</string>
192+
</dict>
193+
</dict>
194+
<key>end</key>
195+
<string>\*/</string>
196+
<key>name</key>
197+
<string>comment.block.documentation.ts</string>
198+
<key>patterns</key>
199+
<array>
200+
<dict>
201+
<key>include</key>
202+
<string>#docblock</string>
203+
</dict>
204+
</array>
205+
</dict>
206+
<dict>
207+
<key>begin</key>
208+
<string>/\*</string>
209+
<key>captures</key>
210+
<dict>
211+
<key>0</key>
212+
<dict>
213+
<key>name</key>
214+
<string>punctuation.definition.comment.ts</string>
215+
</dict>
216+
</dict>
217+
<key>end</key>
218+
<string>\*/</string>
219+
<key>name</key>
220+
<string>comment.block.ts</string>
221+
</dict>
222+
<dict>
223+
<key>begin</key>
224+
<string>(^[ \t]+)?(?=//)</string>
225+
<key>beginCaptures</key>
226+
<dict>
227+
<key>1</key>
228+
<dict>
229+
<key>name</key>
230+
<string>punctuation.whitespace.comment.leading.ts</string>
231+
</dict>
232+
</dict>
233+
<key>end</key>
234+
<string>(?!\G)</string>
235+
<key>patterns</key>
236+
<array>
237+
<dict>
238+
<key>begin</key>
239+
<string>//</string>
240+
<key>beginCaptures</key>
241+
<dict>
242+
<key>0</key>
243+
<dict>
244+
<key>name</key>
245+
<string>punctuation.definition.comment.ts</string>
246+
</dict>
247+
</dict>
248+
<key>end</key>
249+
<string>\n</string>
250+
<key>name</key>
251+
<string>comment.line.double-slash.ts</string>
252+
</dict>
253+
</array>
196254
</dict>
197255
</array>
198256
</dict>
199-
<key>comment-block</key>
200-
<dict>
201-
<key>begin</key>
202-
<string>/\*</string>
203-
<key>end</key>
204-
<string>\*/</string>
205-
<key>name</key>
206-
<string>comment.block.ts</string>
207-
</dict>
208-
<key>comment-block-doc</key>
209-
<dict>
210-
<key>begin</key>
211-
<string>/\*\*(?!/)</string>
212-
<key>end</key>
213-
<string>\*/</string>
214-
<key>name</key>
215-
<string>comment.block.documentation.ts</string>
216-
</dict>
217-
<key>comment-line</key>
218-
<dict>
219-
<key>match</key>
220-
<string>(//).*$\n?</string>
221-
<key>name</key>
222-
<string>comment.line.ts</string>
223-
</dict>
224257
<key>control-statement</key>
225258
<dict>
226259
<key>match</key>
@@ -284,6 +317,45 @@
284317
</dict>
285318
</array>
286319
</dict>
320+
<key>docblock</key>
321+
<dict>
322+
<key>patterns</key>
323+
<array>
324+
<dict>
325+
<key>match</key>
326+
<string>(?&lt;!\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</string>
327+
<key>name</key>
328+
<string>storage.type.class.jsdoc</string>
329+
</dict>
330+
<dict>
331+
<key>captures</key>
332+
<dict>
333+
<key>0</key>
334+
<dict>
335+
<key>name</key>
336+
<string>other.meta.jsdoc</string>
337+
</dict>
338+
<key>1</key>
339+
<dict>
340+
<key>name</key>
341+
<string>entity.name.type.instance.jsdoc</string>
342+
</dict>
343+
<key>2</key>
344+
<dict>
345+
<key>name</key>
346+
<string>variable.other.jsdoc</string>
347+
</dict>
348+
<key>3</key>
349+
<dict>
350+
<key>name</key>
351+
<string>other.description.jsdoc</string>
352+
</dict>
353+
</dict>
354+
<key>match</key>
355+
<string>({\b(?:[a-zA-Z_$][a-zA-Z_$0-9]*)\b})\s\b([a-zA-Z_$][a-zA-Z_$0-9]*)\b\s*((?:(?!\*\/).)*)</string>
356+
</dict>
357+
</array>
358+
</dict>
287359
<key>enum-declaration</key>
288360
<dict>
289361
<key>captures</key>

TypeScript.tmTheme

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,40 @@
7676

7777
<dict>
7878
<key>scope</key>
79-
<string>comment, comment.block.ts, comment.block.documentation.ts, comment.line.ts</string>
79+
<string>comment, comment.block.ts, comment.line.double-slash.ts, punctuation.definition.comment.ts</string>
8080
<key>settings</key>
8181
<dict>
8282
<key>vsclassificationtype</key>
8383
<string>comment</string>
8484
</dict>
8585
</dict>
86+
<dict>
87+
<key>scope</key>
88+
<string>comment.block.documentation.ts, other.meta.jsdoc, other.description.jsdoc</string>
89+
<key>settings</key>
90+
<dict>
91+
<key>vsclassificationtype</key>
92+
<string>comment</string>
93+
</dict>
94+
</dict>
95+
<dict>
96+
<key>scope</key>
97+
<string>entity.name.type.instance.jsdoc, variable.other.jsdoc</string>
98+
<key>settings</key>
99+
<dict>
100+
<key>vsclassificationtype</key>
101+
<string>identifier</string>
102+
</dict>
103+
</dict>
104+
<dict>
105+
<key>scope</key>
106+
<string>storage.type.class.jsdoc</string>
107+
<key>settings</key>
108+
<dict>
109+
<key>vsclassificationtype</key>
110+
<string>xml doc comment - name</string>
111+
</dict>
112+
</dict>
86113

87114
<dict>
88115
<key>scope</key>

TypeScriptReact.YAML-tmLanguage

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -624,25 +624,40 @@ repository:
624624
- include: '#expression'
625625

626626
comment:
627-
name: comment.tsx
628627
patterns:
629-
- include: '#comment-block-doc'
630-
- include: '#comment-block'
631-
- include: '#comment-line'
632-
633-
comment-block-doc:
634-
name: comment.block.documentation.tsx
635-
begin: /\*\*(?!/)
636-
end: \*/
637-
638-
comment-block:
639-
name: comment.block.tsx
640-
begin: /\*
641-
end: \*/
628+
- name: comment.block.documentation.tsx
629+
begin: /\*\*(?!/)
630+
end: \*/
631+
captures:
632+
'0': {name: punctuation.definition.comment.tsx}
633+
patterns:
634+
- include: '#docblock'
635+
- name: comment.block.tsx
636+
begin: /\*
637+
end: \*/
638+
captures:
639+
'0': {name: punctuation.definition.comment.tsx}
640+
- begin: (^[ \t]+)?(?=//)
641+
beginCaptures:
642+
'1': {name: punctuation.whitespace.comment.leading.tsx}
643+
end: (?!\G)
644+
patterns:
645+
- name: comment.line.double-slash.tsx
646+
begin: //
647+
beginCaptures:
648+
'0': {name: punctuation.definition.comment.tsx}
649+
end: \n
642650

643-
comment-line:
644-
name: comment.line.tsx
645-
match: (//).*$\n?
651+
docblock:
652+
patterns:
653+
- name: storage.type.class.jsdoc
654+
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
655+
- match: ({\b(?:[a-zA-Z_$][a-zA-Z_$0-9]*)\b})\s\b([a-zA-Z_$][a-zA-Z_$0-9]*)\b\s*((?:(?!\*\/).)*)
656+
captures:
657+
'0': {name: other.meta.jsdoc}
658+
'1': {name: entity.name.type.instance.jsdoc}
659+
'2': {name: variable.other.jsdoc}
660+
'3': {name: other.description.jsdoc}
646661

647662
literal:
648663
name: literal.tsx

0 commit comments

Comments
 (0)