Skip to content

Commit 53936e2

Browse files
committed
Add support for the directives highlighting
Fixes #348
1 parent addce3c commit 53936e2

9 files changed

+367
-27
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ fileTypes: [ts]
66
uuid: ef98eb90-bf9b-11e4-bb52-0800200c9a66
77

88
patterns:
9+
- include: '#directives'
910
- include: '#statements'
1011
- name: comment.line.shebang.ts
1112
match: \A(#!).*(?=$)
@@ -1695,7 +1696,6 @@ repository:
16951696
match: \\.
16961697

16971698
string:
1698-
name: string.ts
16991699
patterns:
17001700
- include: '#qstring-single'
17011701
- include: '#qstring-double'
@@ -1823,27 +1823,53 @@ repository:
18231823
patterns:
18241824
- name: comment.block.documentation.ts
18251825
begin: /\*\*(?!/)
1826+
beginCaptures:
1827+
'0': { name: punctuation.definition.comment.ts }
18261828
end: \*/
1827-
captures:
1828-
'0': {name: punctuation.definition.comment.ts}
1829+
endCaptures:
1830+
'0': { name: punctuation.definition.comment.ts }
18291831
patterns:
18301832
- include: '#docblock'
18311833
- name: comment.block.ts
18321834
begin: /\*
1835+
beginCaptures:
1836+
'0': { name: punctuation.definition.comment.ts }
18331837
end: \*/
1834-
captures:
1835-
'0': {name: punctuation.definition.comment.ts}
1838+
endCaptures:
1839+
'0': { name: punctuation.definition.comment.ts }
18361840
- begin: (^[ \t]+)?(?=//)
18371841
beginCaptures:
1838-
'1': {name: punctuation.whitespace.comment.leading.ts}
1842+
'1': { name: punctuation.whitespace.comment.leading.ts }
18391843
end: (?=$)
18401844
patterns:
18411845
- name: comment.line.double-slash.ts
18421846
begin: //
18431847
beginCaptures:
1844-
'0': {name: punctuation.definition.comment.ts}
1848+
'0': { name: punctuation.definition.comment.ts }
18451849
end: (?=$)
18461850

1851+
directives:
1852+
name: comment.line.triple-slash.directive.ts
1853+
begin: ^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'[^']*\')|(\"[^"]*\")))+\s*/>\s*$)
1854+
beginCaptures:
1855+
'1': { name: punctuation.definition.comment.ts }
1856+
end: (?=$)
1857+
patterns:
1858+
- name: meta.tag.ts
1859+
begin: (<)(reference|amd-dependency|amd-module)
1860+
beginCaptures:
1861+
'1': { name: punctuation.definition.tag.directive.ts }
1862+
'2': { name: entity.name.tag.directive.ts }
1863+
end: />
1864+
endCaptures:
1865+
'0': { name: punctuation.definition.tag.directive.ts }
1866+
patterns:
1867+
- name: entity.other.attribute-name.directive.ts
1868+
match: 'path|types|no-default-lib|name'
1869+
- name: keyword.operator.assignment.ts
1870+
match: =
1871+
- include: '#string'
1872+
18471873
docblock:
18481874
patterns:
18491875
- name: storage.type.class.jsdoc

TypeScript.YAML-tmTheme

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,12 @@ settings:
4848
- scope: constant.language.undefined.ts, variable.language.arguments.ts, support.type.object
4949
settings: { vsclassificationtype: identifier }
5050

51+
- scope: entity.name.tag
52+
settings: { vsclassificationtype: xml literal - name }
53+
54+
- scope: entity.other.attribute-name
55+
settings: { vsclassificationtype: xml literal - attribute name }
56+
57+
- scope: meta.tag string.quoted, meta.tag string.quoted punctuation.definition.string, meta.tag string.quoted constant.character.entity, meta.tag string.quoted constant.character.entity punctuation.definition.entity
58+
settings: { vsclassificationtype: xml literal - attribute value }
5159
...

TypeScript.tmLanguage

Lines changed: 90 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
<string>ef98eb90-bf9b-11e4-bb52-0800200c9a66</string>
1515
<key>patterns</key>
1616
<array>
17+
<dict>
18+
<key>include</key>
19+
<string>#directives</string>
20+
</dict>
1721
<dict>
1822
<key>include</key>
1923
<string>#statements</string>
@@ -4689,8 +4693,6 @@
46894693
</dict>
46904694
<key>string</key>
46914695
<dict>
4692-
<key>name</key>
4693-
<string>string.ts</string>
46944696
<key>patterns</key>
46954697
<array>
46964698
<dict>
@@ -5022,9 +5024,17 @@
50225024
<string>comment.block.documentation.ts</string>
50235025
<key>begin</key>
50245026
<string>/\*\*(?!/)</string>
5027+
<key>beginCaptures</key>
5028+
<dict>
5029+
<key>0</key>
5030+
<dict>
5031+
<key>name</key>
5032+
<string>punctuation.definition.comment.ts</string>
5033+
</dict>
5034+
</dict>
50255035
<key>end</key>
50265036
<string>\*/</string>
5027-
<key>captures</key>
5037+
<key>endCaptures</key>
50285038
<dict>
50295039
<key>0</key>
50305040
<dict>
@@ -5045,9 +5055,17 @@
50455055
<string>comment.block.ts</string>
50465056
<key>begin</key>
50475057
<string>/\*</string>
5058+
<key>beginCaptures</key>
5059+
<dict>
5060+
<key>0</key>
5061+
<dict>
5062+
<key>name</key>
5063+
<string>punctuation.definition.comment.ts</string>
5064+
</dict>
5065+
</dict>
50485066
<key>end</key>
50495067
<string>\*/</string>
5050-
<key>captures</key>
5068+
<key>endCaptures</key>
50515069
<dict>
50525070
<key>0</key>
50535071
<dict>
@@ -5091,6 +5109,74 @@
50915109
</dict>
50925110
</array>
50935111
</dict>
5112+
<key>directives</key>
5113+
<dict>
5114+
<key>name</key>
5115+
<string>comment.line.triple-slash.directive.ts</string>
5116+
<key>begin</key>
5117+
<string>^(///)\s*(?=&lt;(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'[^']*\')|(\"[^"]*\")))+\s*/&gt;\s*$)</string>
5118+
<key>beginCaptures</key>
5119+
<dict>
5120+
<key>1</key>
5121+
<dict>
5122+
<key>name</key>
5123+
<string>punctuation.definition.comment.ts</string>
5124+
</dict>
5125+
</dict>
5126+
<key>end</key>
5127+
<string>(?=$)</string>
5128+
<key>patterns</key>
5129+
<array>
5130+
<dict>
5131+
<key>name</key>
5132+
<string>meta.tag.ts</string>
5133+
<key>begin</key>
5134+
<string>(&lt;)(reference|amd-dependency|amd-module)</string>
5135+
<key>beginCaptures</key>
5136+
<dict>
5137+
<key>1</key>
5138+
<dict>
5139+
<key>name</key>
5140+
<string>punctuation.definition.tag.directive.ts</string>
5141+
</dict>
5142+
<key>2</key>
5143+
<dict>
5144+
<key>name</key>
5145+
<string>entity.name.tag.directive.ts</string>
5146+
</dict>
5147+
</dict>
5148+
<key>end</key>
5149+
<string>/&gt;</string>
5150+
<key>endCaptures</key>
5151+
<dict>
5152+
<key>0</key>
5153+
<dict>
5154+
<key>name</key>
5155+
<string>punctuation.definition.tag.directive.ts</string>
5156+
</dict>
5157+
</dict>
5158+
<key>patterns</key>
5159+
<array>
5160+
<dict>
5161+
<key>name</key>
5162+
<string>entity.other.attribute-name.directive.ts</string>
5163+
<key>match</key>
5164+
<string>path|types|no-default-lib|name</string>
5165+
</dict>
5166+
<dict>
5167+
<key>name</key>
5168+
<string>keyword.operator.assignment.ts</string>
5169+
<key>match</key>
5170+
<string>=</string>
5171+
</dict>
5172+
<dict>
5173+
<key>include</key>
5174+
<string>#string</string>
5175+
</dict>
5176+
</array>
5177+
</dict>
5178+
</array>
5179+
</dict>
50945180
<key>docblock</key>
50955181
<dict>
50965182
<key>patterns</key>

TypeScript.tmTheme

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,33 @@
152152
<string>identifier</string>
153153
</dict>
154154
</dict>
155+
<dict>
156+
<key>scope</key>
157+
<string>entity.name.tag</string>
158+
<key>settings</key>
159+
<dict>
160+
<key>vsclassificationtype</key>
161+
<string>xml literal - name</string>
162+
</dict>
163+
</dict>
164+
<dict>
165+
<key>scope</key>
166+
<string>entity.other.attribute-name</string>
167+
<key>settings</key>
168+
<dict>
169+
<key>vsclassificationtype</key>
170+
<string>xml literal - attribute name</string>
171+
</dict>
172+
</dict>
173+
<dict>
174+
<key>scope</key>
175+
<string>meta.tag string.quoted, meta.tag string.quoted punctuation.definition.string, meta.tag string.quoted constant.character.entity, meta.tag string.quoted constant.character.entity punctuation.definition.entity</string>
176+
<key>settings</key>
177+
<dict>
178+
<key>vsclassificationtype</key>
179+
<string>xml literal - attribute value</string>
180+
</dict>
181+
</dict>
155182
</array>
156183
</dict>
157184
</plist>

TypeScriptReact.YAML-tmTheme

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,6 @@ uuid: ef98eb90-bf9b-11e4-bb52-0800200c9a66
77

88
settings:
99
# Additions
10-
- scope: entity.name.tag.tsx
11-
settings: { vsclassificationtype: xml literal - name }
12-
13-
- scope: entity.other.attribute-name.tsx
14-
settings: { vsclassificationtype: xml literal - attribute name }
15-
16-
- scope: meta.tag.tsx string.quoted, meta.tag.tsx string.quoted punctuation.definition.string, meta.tag.tsx string.quoted constant.character.entity.tsx, meta.tag.tsx string.quoted constant.character.entity.tsx punctuation.definition.entity.tsx
17-
settings: { vsclassificationtype: xml literal - attribute value }
18-
1910
- scope: meta.jsx.children.tsx, constant.character.entity.tsx, punctuation.definition.entity.tsx, invalid.illegal.bad-ampersand.tsx
2011
settings: { vsclassificationtype: xml literal - text }
2112

0 commit comments

Comments
 (0)