tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,1208 @@
1
+ {
2
+ "displayName": "Stylus",
3
+ "fileTypes": [
4
+ "styl",
5
+ "stylus",
6
+ "css.styl",
7
+ "css.stylus"
8
+ ],
9
+ "name": "stylus",
10
+ "patterns": [
11
+ {
12
+ "include": "#comment"
13
+ },
14
+ {
15
+ "include": "#at_rule"
16
+ },
17
+ {
18
+ "include": "#language_keywords"
19
+ },
20
+ {
21
+ "include": "#language_constants"
22
+ },
23
+ {
24
+ "include": "#variable_declaration"
25
+ },
26
+ {
27
+ "include": "#function"
28
+ },
29
+ {
30
+ "include": "#selector"
31
+ },
32
+ {
33
+ "include": "#declaration"
34
+ },
35
+ {
36
+ "captures": {
37
+ "1": {
38
+ "name": "punctuation.section.property-list.begin.css"
39
+ },
40
+ "2": {
41
+ "name": "punctuation.section.property-list.end.css"
42
+ }
43
+ },
44
+ "match": "(\\{)(\\})",
45
+ "name": "meta.brace.curly.css"
46
+ },
47
+ {
48
+ "match": "\\{|\\}",
49
+ "name": "meta.brace.curly.css"
50
+ },
51
+ {
52
+ "include": "#numeric"
53
+ },
54
+ {
55
+ "include": "#string"
56
+ },
57
+ {
58
+ "include": "#operator"
59
+ }
60
+ ],
61
+ "repository": {
62
+ "at_rule": {
63
+ "patterns": [
64
+ {
65
+ "begin": "\\s*((@)(import|require))\\b\\s*",
66
+ "beginCaptures": {
67
+ "1": {
68
+ "name": "keyword.control.at-rule.import.stylus"
69
+ },
70
+ "2": {
71
+ "name": "punctuation.definition.keyword.stylus"
72
+ }
73
+ },
74
+ "end": "\\s*((?=;|$|\\n))",
75
+ "endCaptures": {
76
+ "1": {
77
+ "name": "punctuation.terminator.rule.css"
78
+ }
79
+ },
80
+ "name": "meta.at-rule.import.css",
81
+ "patterns": [
82
+ {
83
+ "include": "#string"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "begin": "\\s*((@)(extend[s]?)\\b)\\s*",
89
+ "beginCaptures": {
90
+ "1": {
91
+ "name": "keyword.control.at-rule.extend.stylus"
92
+ },
93
+ "2": {
94
+ "name": "punctuation.definition.keyword.stylus"
95
+ }
96
+ },
97
+ "end": "\\s*((?=;|$|\\n))",
98
+ "endCaptures": {
99
+ "1": {
100
+ "name": "punctuation.terminator.rule.css"
101
+ }
102
+ },
103
+ "name": "meta.at-rule.extend.css",
104
+ "patterns": [
105
+ {
106
+ "include": "#selector"
107
+ }
108
+ ]
109
+ },
110
+ {
111
+ "captures": {
112
+ "1": {
113
+ "name": "keyword.control.at-rule.fontface.stylus"
114
+ },
115
+ "2": {
116
+ "name": "punctuation.definition.keyword.stylus"
117
+ }
118
+ },
119
+ "match": "^\\s*((@)font-face)\\b",
120
+ "name": "meta.at-rule.fontface.stylus"
121
+ },
122
+ {
123
+ "captures": {
124
+ "1": {
125
+ "name": "keyword.control.at-rule.css.stylus"
126
+ },
127
+ "2": {
128
+ "name": "punctuation.definition.keyword.stylus"
129
+ }
130
+ },
131
+ "match": "^\\s*((@)css)\\b",
132
+ "name": "meta.at-rule.css.stylus"
133
+ },
134
+ {
135
+ "begin": "\\s*((@)charset)\\b\\s*",
136
+ "beginCaptures": {
137
+ "1": {
138
+ "name": "keyword.control.at-rule.charset.stylus"
139
+ },
140
+ "2": {
141
+ "name": "punctuation.definition.keyword.stylus"
142
+ }
143
+ },
144
+ "end": "\\s*((?=;|$|\\n))",
145
+ "name": "meta.at-rule.charset.stylus",
146
+ "patterns": [
147
+ {
148
+ "include": "#string"
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "begin": "\\s*((@)keyframes)\\b\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)",
154
+ "beginCaptures": {
155
+ "1": {
156
+ "name": "keyword.control.at-rule.keyframes.stylus"
157
+ },
158
+ "2": {
159
+ "name": "punctuation.definition.keyword.stylus"
160
+ },
161
+ "3": {
162
+ "name": "entity.name.function.keyframe.stylus"
163
+ }
164
+ },
165
+ "end": "\\s*((?=\\{|$|\\n))",
166
+ "name": "meta.at-rule.keyframes.stylus"
167
+ },
168
+ {
169
+ "begin": "(?=(\\b(\\d+%|from\\b|to\\b)))",
170
+ "end": "(?=(\\{|\\n))",
171
+ "name": "meta.at-rule.keyframes.stylus",
172
+ "patterns": [
173
+ {
174
+ "match": "(\\b(\\d+%|from\\b|to\\b))",
175
+ "name": "entity.other.attribute-name.stylus"
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "captures": {
181
+ "1": {
182
+ "name": "keyword.control.at-rule.media.stylus"
183
+ },
184
+ "2": {
185
+ "name": "punctuation.definition.keyword.stylus"
186
+ }
187
+ },
188
+ "match": "^\\s*((@)media)\\b",
189
+ "name": "meta.at-rule.media.stylus"
190
+ },
191
+ {
192
+ "match": "(?:(?=\\w)(?<![\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\w)(?![\\w-]))",
193
+ "name": "support.type.property-name.media-feature.media.css"
194
+ },
195
+ {
196
+ "match": "(?:(?=\\w)(?<![\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\w)(?![\\w-]))",
197
+ "name": "support.constant.media-type.media.css"
198
+ },
199
+ {
200
+ "match": "(?:(?=\\w)(?<![\\w-]))(portrait|landscape)(?:(?<=\\w)(?![\\w-]))",
201
+ "name": "support.constant.property-value.media-property.media.css"
202
+ }
203
+ ]
204
+ },
205
+ "char_escape": {
206
+ "match": "\\\\(.)",
207
+ "name": "constant.character.escape.stylus"
208
+ },
209
+ "color": {
210
+ "patterns": [
211
+ {
212
+ "begin": "\\b(rgb|rgba|hsl|hsla)(\\()",
213
+ "beginCaptures": {
214
+ "1": {
215
+ "name": "support.function.color.css"
216
+ },
217
+ "2": {
218
+ "name": "punctuation.section.function.css"
219
+ }
220
+ },
221
+ "end": "(\\))",
222
+ "endCaptures": {
223
+ "1": {
224
+ "name": "punctuation.section.function.css"
225
+ }
226
+ },
227
+ "name": "meta.function.color.css",
228
+ "patterns": [
229
+ {
230
+ "match": "\\s*(,)\\s*",
231
+ "name": "punctuation.separator.parameter.css"
232
+ },
233
+ {
234
+ "include": "#numeric"
235
+ },
236
+ {
237
+ "include": "#property_variable"
238
+ }
239
+ ]
240
+ },
241
+ {
242
+ "captures": {
243
+ "1": {
244
+ "name": "punctuation.definition.constant.css"
245
+ }
246
+ },
247
+ "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",
248
+ "name": "constant.other.color.rgb-value.css"
249
+ },
250
+ {
251
+ "comment": "http://www.w3.org/TR/CSS21/syndata.html#value-def-color",
252
+ "match": "\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b",
253
+ "name": "support.constant.color.w3c-standard-color-name.css"
254
+ },
255
+ {
256
+ "comment": "http://www.w3.org/TR/css3-color/#svg-color",
257
+ "match": "\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b",
258
+ "name": "support.constant.color.w3c-extended-color-name.css"
259
+ }
260
+ ]
261
+ },
262
+ "comment": {
263
+ "patterns": [
264
+ {
265
+ "include": "#comment_block"
266
+ },
267
+ {
268
+ "include": "#comment_line"
269
+ }
270
+ ]
271
+ },
272
+ "comment_block": {
273
+ "begin": "/\\*",
274
+ "beginCaptures": {
275
+ "0": {
276
+ "name": "punctuation.definition.comment.begin.css"
277
+ }
278
+ },
279
+ "end": "\\*/",
280
+ "endCaptures": {
281
+ "0": {
282
+ "name": "punctuation.definition.comment.end.css"
283
+ }
284
+ },
285
+ "name": "comment.block.css"
286
+ },
287
+ "comment_line": {
288
+ "begin": "(^[ \\t]+)?(?=//)",
289
+ "beginCaptures": {
290
+ "1": {
291
+ "name": "punctuation.whitespace.comment.leading.stylus"
292
+ }
293
+ },
294
+ "end": "(?!\\G)",
295
+ "patterns": [
296
+ {
297
+ "begin": "//",
298
+ "beginCaptures": {
299
+ "0": {
300
+ "name": "punctuation.definition.comment.stylus"
301
+ }
302
+ },
303
+ "end": "(?=\\n)",
304
+ "name": "comment.line.double-slash.stylus"
305
+ }
306
+ ]
307
+ },
308
+ "declaration": {
309
+ "begin": "((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)",
310
+ "end": "(?=\\n)|(;)|(?=\\})|(\\n)",
311
+ "endCaptures": {
312
+ "2": {
313
+ "name": "punctuation.terminator.rule.css"
314
+ }
315
+ },
316
+ "name": "meta.property-list.css",
317
+ "patterns": [
318
+ {
319
+ "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",
320
+ "name": "variable.css"
321
+ },
322
+ {
323
+ "include": "#language_keywords"
324
+ },
325
+ {
326
+ "include": "#language_constants"
327
+ },
328
+ {
329
+ "match": "(?:(?<=^)[^\\S\\n]+(\\n))"
330
+ },
331
+ {
332
+ "captures": {
333
+ "1": {
334
+ "name": "support.type.property-name.css"
335
+ },
336
+ "2": {
337
+ "name": "punctuation.separator.key-value.css"
338
+ },
339
+ "3": {
340
+ "name": "variable.section.css"
341
+ }
342
+ },
343
+ "match": "\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)",
344
+ "name": "meta.property.counter.css"
345
+ },
346
+ {
347
+ "begin": "\\G\\s*(filter)(?:(:)|[^\\S\\n])[^\\S\\n]*",
348
+ "beginCaptures": {
349
+ "1": {
350
+ "name": "support.type.property-name.css"
351
+ },
352
+ "2": {
353
+ "name": "punctuation.separator.key-value.css"
354
+ }
355
+ },
356
+ "end": "(?=\\n|;|\\}|$)",
357
+ "name": "meta.property.filter.css",
358
+ "patterns": [
359
+ {
360
+ "include": "#function"
361
+ },
362
+ {
363
+ "include": "#property_values"
364
+ }
365
+ ]
366
+ },
367
+ {
368
+ "include": "#property"
369
+ },
370
+ {
371
+ "include": "#interpolation"
372
+ },
373
+ {
374
+ "include": "$self"
375
+ }
376
+ ]
377
+ },
378
+ "font_name": {
379
+ "match": "(\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\b)",
380
+ "name": "support.constant.font-name.css"
381
+ },
382
+ "function": {
383
+ "begin": "(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\()",
384
+ "end": "(\\))",
385
+ "endCaptures": {
386
+ "1": {
387
+ "name": "punctuation.section.function.css"
388
+ }
389
+ },
390
+ "patterns": [
391
+ {
392
+ "begin": "(format|url|local)(\\()",
393
+ "beginCaptures": {
394
+ "1": {
395
+ "name": "support.function.misc.css"
396
+ },
397
+ "2": {
398
+ "name": "punctuation.section.function.css"
399
+ }
400
+ },
401
+ "end": "(?=\\))",
402
+ "name": "meta.function.misc.css",
403
+ "patterns": [
404
+ {
405
+ "match": "(?<=\\()[^\\)\\s]*(?=\\))",
406
+ "name": "string.css"
407
+ },
408
+ {
409
+ "include": "#string"
410
+ },
411
+ {
412
+ "include": "#variable"
413
+ },
414
+ {
415
+ "include": "#operator"
416
+ },
417
+ {
418
+ "match": "\\s*"
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ "captures": {
424
+ "1": {
425
+ "name": "support.function.misc.counter.css"
426
+ },
427
+ "2": {
428
+ "name": "punctuation.section.function.css"
429
+ },
430
+ "3": {
431
+ "name": "variable.section.css"
432
+ }
433
+ },
434
+ "match": "(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))",
435
+ "name": "meta.function.misc.counter.css"
436
+ },
437
+ {
438
+ "begin": "(counters)(\\()",
439
+ "beginCaptures": {
440
+ "1": {
441
+ "name": "support.function.misc.counters.css"
442
+ },
443
+ "2": {
444
+ "name": "punctuation.section.function.css"
445
+ }
446
+ },
447
+ "end": "(?=\\))",
448
+ "name": "meta.function.misc.counters.css",
449
+ "patterns": [
450
+ {
451
+ "match": "\\G[a-zA-Z_-][a-zA-Z0-9_-]*",
452
+ "name": "variable.section.css"
453
+ },
454
+ {
455
+ "match": "\\s*(,)\\s*",
456
+ "name": "punctuation.separator.parameter.css"
457
+ },
458
+ {
459
+ "include": "#string"
460
+ },
461
+ {
462
+ "include": "#interpolation"
463
+ }
464
+ ]
465
+ },
466
+ {
467
+ "begin": "(attr)(\\()",
468
+ "beginCaptures": {
469
+ "1": {
470
+ "name": "support.function.misc.attr.css"
471
+ },
472
+ "2": {
473
+ "name": "punctuation.section.function.css"
474
+ }
475
+ },
476
+ "end": "(?=\\))",
477
+ "name": "meta.function.misc.attr.css",
478
+ "patterns": [
479
+ {
480
+ "match": "\\G[a-zA-Z_-][a-zA-Z0-9_-]*",
481
+ "name": "entity.other.attribute-name.attribute.css"
482
+ },
483
+ {
484
+ "match": "(?<=[a-zA-Z0-9_-])\\s*\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\b",
485
+ "name": "support.type.attr.css"
486
+ },
487
+ {
488
+ "match": "\\s*(,)\\s*",
489
+ "name": "punctuation.separator.parameter.css"
490
+ },
491
+ {
492
+ "include": "#string"
493
+ },
494
+ {
495
+ "include": "#interpolation"
496
+ }
497
+ ]
498
+ },
499
+ {
500
+ "begin": "(calc)(\\()",
501
+ "beginCaptures": {
502
+ "1": {
503
+ "name": "support.function.misc.calc.css"
504
+ },
505
+ "2": {
506
+ "name": "punctuation.section.function.css"
507
+ }
508
+ },
509
+ "end": "(?=\\))",
510
+ "name": "meta.function.misc.calc.css",
511
+ "patterns": [
512
+ {
513
+ "include": "#property_values"
514
+ }
515
+ ]
516
+ },
517
+ {
518
+ "begin": "(cubic-bezier)(\\()",
519
+ "beginCaptures": {
520
+ "1": {
521
+ "name": "support.function.timing.cubic-bezier.css"
522
+ },
523
+ "2": {
524
+ "name": "punctuation.section.function.css"
525
+ }
526
+ },
527
+ "end": "(?=\\))",
528
+ "name": "meta.function.timing.cubic-bezier.css",
529
+ "patterns": [
530
+ {
531
+ "match": "\\s*(,)\\s*",
532
+ "name": "punctuation.separator.parameter.css"
533
+ },
534
+ {
535
+ "include": "#numeric"
536
+ },
537
+ {
538
+ "include": "#interpolation"
539
+ }
540
+ ]
541
+ },
542
+ {
543
+ "begin": "(steps)(\\()",
544
+ "beginCaptures": {
545
+ "1": {
546
+ "name": "support.function.timing.steps.css"
547
+ },
548
+ "2": {
549
+ "name": "punctuation.section.function.css"
550
+ }
551
+ },
552
+ "end": "(?=\\))",
553
+ "name": "meta.function.timing.steps.css",
554
+ "patterns": [
555
+ {
556
+ "match": "\\s*(,)\\s*",
557
+ "name": "punctuation.separator.parameter.css"
558
+ },
559
+ {
560
+ "include": "#numeric"
561
+ },
562
+ {
563
+ "match": "\\b(start|end)\\b",
564
+ "name": "support.constant.timing.steps.direction.css"
565
+ },
566
+ {
567
+ "include": "#interpolation"
568
+ }
569
+ ]
570
+ },
571
+ {
572
+ "begin": "(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\()",
573
+ "beginCaptures": {
574
+ "1": {
575
+ "name": "support.function.gradient.css"
576
+ },
577
+ "2": {
578
+ "name": "punctuation.section.function.css"
579
+ }
580
+ },
581
+ "end": "(?=\\))",
582
+ "name": "meta.function.gradient.css",
583
+ "patterns": [
584
+ {
585
+ "match": "\\s*(,)\\s*",
586
+ "name": "punctuation.separator.parameter.css"
587
+ },
588
+ {
589
+ "include": "#numeric"
590
+ },
591
+ {
592
+ "include": "#color"
593
+ },
594
+ {
595
+ "match": "\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\b",
596
+ "name": "support.constant.gradient.css"
597
+ },
598
+ {
599
+ "include": "#interpolation"
600
+ }
601
+ ]
602
+ },
603
+ {
604
+ "begin": "(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\()",
605
+ "beginCaptures": {
606
+ "1": {
607
+ "name": "support.function.filter.css"
608
+ },
609
+ "2": {
610
+ "name": "punctuation.section.function.css"
611
+ }
612
+ },
613
+ "end": "(?=\\))",
614
+ "name": "meta.function.filter.css",
615
+ "patterns": [
616
+ {
617
+ "include": "#numeric"
618
+ },
619
+ {
620
+ "include": "#property_variable"
621
+ },
622
+ {
623
+ "include": "#interpolation"
624
+ }
625
+ ]
626
+ },
627
+ {
628
+ "begin": "(drop-shadow)(\\()",
629
+ "beginCaptures": {
630
+ "1": {
631
+ "name": "support.function.filter.drop-shadow.css"
632
+ },
633
+ "2": {
634
+ "name": "punctuation.section.function.css"
635
+ }
636
+ },
637
+ "end": "(?=\\))",
638
+ "name": "meta.function.filter.drop-shadow.css",
639
+ "patterns": [
640
+ {
641
+ "include": "#numeric"
642
+ },
643
+ {
644
+ "include": "#color"
645
+ },
646
+ {
647
+ "include": "#property_variable"
648
+ },
649
+ {
650
+ "include": "#interpolation"
651
+ }
652
+ ]
653
+ },
654
+ {
655
+ "begin": "(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\()",
656
+ "beginCaptures": {
657
+ "1": {
658
+ "name": "support.function.transform.css"
659
+ },
660
+ "2": {
661
+ "name": "punctuation.section.function.css"
662
+ }
663
+ },
664
+ "end": "(?=\\))",
665
+ "name": "meta.function.transform.css",
666
+ "patterns": [
667
+ {
668
+ "include": "#numeric"
669
+ },
670
+ {
671
+ "include": "#property_variable"
672
+ },
673
+ {
674
+ "include": "#interpolation"
675
+ }
676
+ ]
677
+ },
678
+ {
679
+ "match": "(url|local|format|counter|counters|attr|calc)(?=\\()",
680
+ "name": "support.function.misc.css"
681
+ },
682
+ {
683
+ "match": "(cubic-bezier|steps)(?=\\()",
684
+ "name": "support.function.timing.css"
685
+ },
686
+ {
687
+ "match": "(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\()",
688
+ "name": "support.function.gradient.css"
689
+ },
690
+ {
691
+ "match": "(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\()",
692
+ "name": "support.function.filter.css"
693
+ },
694
+ {
695
+ "match": "(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\()",
696
+ "name": "support.function.transform.css"
697
+ },
698
+ {
699
+ "begin": "([a-zA-Z_-][a-zA-Z0-9_-]*)(\\()",
700
+ "beginCaptures": {
701
+ "1": {
702
+ "name": "entity.name.function.stylus"
703
+ },
704
+ "2": {
705
+ "name": "punctuation.section.function.css"
706
+ }
707
+ },
708
+ "end": "(?=\\))",
709
+ "name": "meta.function.stylus",
710
+ "patterns": [
711
+ {
712
+ "match": "(?x)\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",
713
+ "name": "variable.argument.stylus"
714
+ },
715
+ {
716
+ "match": "\\s*(,)\\s*",
717
+ "name": "punctuation.separator.parameter.css"
718
+ },
719
+ {
720
+ "include": "#interpolation"
721
+ },
722
+ {
723
+ "include": "#property_values"
724
+ }
725
+ ]
726
+ },
727
+ {
728
+ "match": "\\(",
729
+ "name": "punctuation.section.function.css"
730
+ }
731
+ ]
732
+ },
733
+ "interpolation": {
734
+ "begin": "(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})",
735
+ "beginCaptures": {
736
+ "1": {
737
+ "name": "meta.brace.curly"
738
+ }
739
+ },
740
+ "end": "(?:[^\\S\\n]*(\\}))|\\n|$",
741
+ "endCaptures": {
742
+ "1": {
743
+ "name": "meta.brace.curly"
744
+ }
745
+ },
746
+ "name": "meta.interpolation.stylus",
747
+ "patterns": [
748
+ {
749
+ "include": "#variable"
750
+ },
751
+ {
752
+ "include": "#numeric"
753
+ },
754
+ {
755
+ "include": "#string"
756
+ },
757
+ {
758
+ "include": "#operator"
759
+ }
760
+ ]
761
+ },
762
+ "language_constants": {
763
+ "match": "\\b(true|false|null)\\b",
764
+ "name": "constant.language.stylus"
765
+ },
766
+ "language_keywords": {
767
+ "patterns": [
768
+ {
769
+ "match": "(\\b|\\s)(return|else|for|unless|if|else)\\b",
770
+ "name": "keyword.control.stylus"
771
+ },
772
+ {
773
+ "match": "(\\b|\\s)(!important|in|is defined|is a)\\b",
774
+ "name": "keyword.other.stylus"
775
+ },
776
+ {
777
+ "match": "\\barguments\\b",
778
+ "name": "variable.language.stylus"
779
+ }
780
+ ]
781
+ },
782
+ "numeric": {
783
+ "patterns": [
784
+ {
785
+ "captures": {
786
+ "1": {
787
+ "name": "keyword.other.unit.css"
788
+ }
789
+ },
790
+ "match": "(?x) (?<!\\w|-)(?:(?:-|\\+)?(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)) ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?",
791
+ "name": "constant.numeric.css"
792
+ }
793
+ ]
794
+ },
795
+ "operator": {
796
+ "patterns": [
797
+ {
798
+ "match": "((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)",
799
+ "name": "keyword.operator.stylus"
800
+ },
801
+ {
802
+ "include": "#char_escape"
803
+ }
804
+ ]
805
+ },
806
+ "property": {
807
+ "begin": "(?x:\\G\\s*(?:\n (-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode-range|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|mix-blend-mode|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line-break|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify-content|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|gap|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-start|grid-row|grid-row-end|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|row-gap|gap|font-kerning|font-language-override|font-weight|font-variant-caps|font-variant|font-style|font-synthesis|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-blend-mode|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust|will-change)|\n (writing-mode|text-anchor|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|stop-opacity|stop-color|shape-rendering|marker-start|marker-mid|marker-end|lighting-color|kerning|image-rendering|glyph-orientation-vertical|glyph-orientation-horizontal|flood-opacity|flood-color|fill-rule|fill-opacity|fill|enable-background|color-rendering|color-interpolation-filters|color-interpolation|clip-rule|clip-path)|\n ([a-zA-Z_-][a-zA-Z0-9_-]*)\n)(?!([^\\S\\n]*&)|([^\\S\\n]*\\{))(?=:|([^\\S\\n]+[^\\s])))",
808
+ "beginCaptures": {
809
+ "1": {
810
+ "name": "support.type.property-name.css"
811
+ },
812
+ "2": {
813
+ "name": "support.type.property-name.svg.css"
814
+ },
815
+ "3": {
816
+ "name": "support.function.mixin.stylus"
817
+ }
818
+ },
819
+ "end": "(;)|(?=\\n|\\}|$)",
820
+ "endCaptures": {
821
+ "1": {
822
+ "name": "punctuation.terminator.rule.css"
823
+ }
824
+ },
825
+ "patterns": [
826
+ {
827
+ "include": "#property_value"
828
+ }
829
+ ]
830
+ },
831
+ "property_value": {
832
+ "begin": "\\G(?:(:)|(\\s))(\\s*)(?!&)",
833
+ "beginCaptures": {
834
+ "1": {
835
+ "name": "punctuation.separator.key-value.css"
836
+ },
837
+ "2": {
838
+ "name": "punctuation.separator.key-value.css"
839
+ }
840
+ },
841
+ "end": "(?=\\n|;|\\})",
842
+ "endCaptures": {
843
+ "1": {
844
+ "name": "punctuation.terminator.rule.css"
845
+ }
846
+ },
847
+ "name": "meta.property-value.css",
848
+ "patterns": [
849
+ {
850
+ "include": "#property_values"
851
+ },
852
+ {
853
+ "match": "[^\\n]+?"
854
+ }
855
+ ]
856
+ },
857
+ "property_values": {
858
+ "patterns": [
859
+ {
860
+ "include": "#function"
861
+ },
862
+ {
863
+ "include": "#comment"
864
+ },
865
+ {
866
+ "include": "#language_keywords"
867
+ },
868
+ {
869
+ "include": "#language_constants"
870
+ },
871
+ {
872
+ "match": "(?:(?=\\w)(?<![\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\w)(?![\\w-]))",
873
+ "name": "support.constant.property-value.css"
874
+ },
875
+ {
876
+ "match": "(?:(?=\\w)(?<![\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\w)(?![\\w-]))",
877
+ "name": "support.constant.property-value.svg.css"
878
+ },
879
+ {
880
+ "include": "#font_name"
881
+ },
882
+ {
883
+ "include": "#numeric"
884
+ },
885
+ {
886
+ "include": "#color"
887
+ },
888
+ {
889
+ "include": "#string"
890
+ },
891
+ {
892
+ "match": "\\!\\s*important",
893
+ "name": "keyword.other.important.css"
894
+ },
895
+ {
896
+ "include": "#operator"
897
+ },
898
+ {
899
+ "include": "#stylus_keywords"
900
+ },
901
+ {
902
+ "include": "#property_variable"
903
+ }
904
+ ]
905
+ },
906
+ "property_variable": {
907
+ "patterns": [
908
+ {
909
+ "include": "#variable"
910
+ },
911
+ {
912
+ "match": "(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)",
913
+ "name": "variable.property.stylus"
914
+ }
915
+ ]
916
+ },
917
+ "selector": {
918
+ "patterns": [
919
+ {
920
+ "match": "(?:(?=\\w)(?<![\\w-]))(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\w)(?![\\w-]))",
921
+ "name": "entity.name.tag.css"
922
+ },
923
+ {
924
+ "match": "(?:(?=\\w)(?<![\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\w)(?![\\w-]))",
925
+ "name": "entity.name.tag.svg.css"
926
+ },
927
+ {
928
+ "match": "\\s*(\\,)\\s*",
929
+ "name": "meta.selector.stylus"
930
+ },
931
+ {
932
+ "match": "\\*",
933
+ "name": "meta.selector.stylus"
934
+ },
935
+ {
936
+ "captures": {
937
+ "2": {
938
+ "name": "entity.other.attribute-name.parent-selector-suffix.stylus"
939
+ }
940
+ },
941
+ "match": "\\s*(\\&)([a-zA-Z0-9_-]+)\\s*",
942
+ "name": "meta.selector.stylus"
943
+ },
944
+ {
945
+ "match": "\\s*(\\&)\\s*",
946
+ "name": "meta.selector.stylus"
947
+ },
948
+ {
949
+ "captures": {
950
+ "1": {
951
+ "name": "punctuation.definition.entity.css"
952
+ }
953
+ },
954
+ "match": "(\\.)[a-zA-Z0-9_-]+",
955
+ "name": "entity.other.attribute-name.class.css"
956
+ },
957
+ {
958
+ "captures": {
959
+ "1": {
960
+ "name": "punctuation.definition.entity.css"
961
+ }
962
+ },
963
+ "match": "(#)[a-zA-Z][a-zA-Z0-9_-]*",
964
+ "name": "entity.other.attribute-name.id.css"
965
+ },
966
+ {
967
+ "captures": {
968
+ "1": {
969
+ "name": "punctuation.definition.entity.css"
970
+ }
971
+ },
972
+ "match": "(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\b",
973
+ "name": "entity.other.attribute-name.pseudo-element.css"
974
+ },
975
+ {
976
+ "captures": {
977
+ "1": {
978
+ "name": "punctuation.definition.entity.css"
979
+ }
980
+ },
981
+ "match": "(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b",
982
+ "name": "entity.other.attribute-name.pseudo-class.css"
983
+ },
984
+ {
985
+ "captures": {
986
+ "1": {
987
+ "name": "punctuation.definition.entity.css"
988
+ }
989
+ },
990
+ "match": "(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b",
991
+ "name": "entity.other.attribute-name.pseudo-class.ui-state.css"
992
+ },
993
+ {
994
+ "begin": "((:)not)(\\()",
995
+ "beginCaptures": {
996
+ "1": {
997
+ "name": "entity.other.attribute-name.pseudo-class.css"
998
+ },
999
+ "2": {
1000
+ "name": "punctuation.definition.entity.css"
1001
+ },
1002
+ "3": {
1003
+ "name": "punctuation.section.function.css"
1004
+ }
1005
+ },
1006
+ "end": "\\)",
1007
+ "endCaptures": {
1008
+ "0": {
1009
+ "name": "punctuation.section.function.css"
1010
+ }
1011
+ },
1012
+ "patterns": [
1013
+ {
1014
+ "include": "#selector"
1015
+ }
1016
+ ]
1017
+ },
1018
+ {
1019
+ "captures": {
1020
+ "1": {
1021
+ "name": "entity.other.attribute-name.pseudo-class.css"
1022
+ },
1023
+ "2": {
1024
+ "name": "punctuation.definition.entity.css"
1025
+ },
1026
+ "3": {
1027
+ "name": "punctuation.section.function.css"
1028
+ },
1029
+ "4": {
1030
+ "name": "constant.numeric.css"
1031
+ },
1032
+ "5": {
1033
+ "name": "punctuation.section.function.css"
1034
+ }
1035
+ },
1036
+ "match": "((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))"
1037
+ },
1038
+ {
1039
+ "captures": {
1040
+ "1": {
1041
+ "name": "entity.other.attribute-name.pseudo-class.css"
1042
+ },
1043
+ "2": {
1044
+ "name": "puncutation.definition.entity.css"
1045
+ },
1046
+ "3": {
1047
+ "name": "punctuation.section.function.css"
1048
+ },
1049
+ "4": {
1050
+ "name": "constant.language.css"
1051
+ },
1052
+ "5": {
1053
+ "name": "punctuation.section.function.css"
1054
+ }
1055
+ },
1056
+ "match": "((:)dir)\\s*(?:(\\()(ltr|rtl)?(\\)))?"
1057
+ },
1058
+ {
1059
+ "captures": {
1060
+ "1": {
1061
+ "name": "entity.other.attribute-name.pseudo-class.css"
1062
+ },
1063
+ "2": {
1064
+ "name": "puncutation.definition.entity.css"
1065
+ },
1066
+ "3": {
1067
+ "name": "punctuation.section.function.css"
1068
+ },
1069
+ "4": {
1070
+ "name": "constant.language.css"
1071
+ },
1072
+ "6": {
1073
+ "name": "punctuation.section.function.css"
1074
+ }
1075
+ },
1076
+ "match": "((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?"
1077
+ },
1078
+ {
1079
+ "captures": {
1080
+ "1": {
1081
+ "name": "punctuation.definition.entity.css"
1082
+ }
1083
+ },
1084
+ "match": "(:)(active|hover|link|visited|focus)\\b",
1085
+ "name": "entity.other.attribute-name.pseudo-class.css"
1086
+ },
1087
+ {
1088
+ "captures": {
1089
+ "1": {
1090
+ "name": "punctuation.definition.entity.css"
1091
+ }
1092
+ },
1093
+ "match": "(::)(shadow)\\b",
1094
+ "name": "entity.other.attribute-name.pseudo-class.css"
1095
+ },
1096
+ {
1097
+ "captures": {
1098
+ "1": {
1099
+ "name": "punctuation.definition.entity.css"
1100
+ },
1101
+ "2": {
1102
+ "name": "entity.other.attribute-name.attribute.css"
1103
+ },
1104
+ "3": {
1105
+ "name": "punctuation.separator.operator.css"
1106
+ },
1107
+ "4": {
1108
+ "name": "string.unquoted.attribute-value.css"
1109
+ },
1110
+ "5": {
1111
+ "name": "string.quoted.double.attribute-value.css"
1112
+ },
1113
+ "6": {
1114
+ "name": "punctuation.definition.string.begin.css"
1115
+ },
1116
+ "7": {
1117
+ "name": "punctuation.definition.string.end.css"
1118
+ },
1119
+ "8": {
1120
+ "name": "punctuation.definition.entity.css"
1121
+ }
1122
+ },
1123
+ "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])",
1124
+ "name": "meta.attribute-selector.css"
1125
+ },
1126
+ {
1127
+ "include": "#interpolation"
1128
+ },
1129
+ {
1130
+ "include": "#variable"
1131
+ }
1132
+ ]
1133
+ },
1134
+ "string": {
1135
+ "patterns": [
1136
+ {
1137
+ "begin": "\"",
1138
+ "beginCaptures": {
1139
+ "0": {
1140
+ "name": "punctuation.definition.string.begin.css"
1141
+ }
1142
+ },
1143
+ "end": "\"",
1144
+ "endCaptures": {
1145
+ "0": {
1146
+ "name": "punctuation.definition.string.end.css"
1147
+ }
1148
+ },
1149
+ "name": "string.quoted.double.css",
1150
+ "patterns": [
1151
+ {
1152
+ "match": "\\\\([a-fA-F0-9]{1,6}|.)",
1153
+ "name": "constant.character.escape.css"
1154
+ }
1155
+ ]
1156
+ },
1157
+ {
1158
+ "begin": "'",
1159
+ "beginCaptures": {
1160
+ "0": {
1161
+ "name": "punctuation.definition.string.begin.css"
1162
+ }
1163
+ },
1164
+ "end": "'",
1165
+ "endCaptures": {
1166
+ "0": {
1167
+ "name": "punctuation.definition.string.end.css"
1168
+ }
1169
+ },
1170
+ "name": "string.quoted.single.css",
1171
+ "patterns": [
1172
+ {
1173
+ "match": "\\\\([a-fA-F0-9]{1,6}|.)",
1174
+ "name": "constant.character.escape.css"
1175
+ }
1176
+ ]
1177
+ }
1178
+ ]
1179
+ },
1180
+ "variable": {
1181
+ "match": "(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)",
1182
+ "name": "variable.stylus"
1183
+ },
1184
+ "variable_declaration": {
1185
+ "begin": "^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)",
1186
+ "beginCaptures": {
1187
+ "1": {
1188
+ "name": "variable.stylus"
1189
+ },
1190
+ "2": {
1191
+ "name": "keyword.operator.stylus"
1192
+ }
1193
+ },
1194
+ "end": "(\\n)|(;)|(?=\\})",
1195
+ "endCaptures": {
1196
+ "2": {
1197
+ "name": "punctuation.terminator.rule.css"
1198
+ }
1199
+ },
1200
+ "patterns": [
1201
+ {
1202
+ "include": "#property_values"
1203
+ }
1204
+ ]
1205
+ }
1206
+ },
1207
+ "scopeName": "source.stylus"
1208
+ }