PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.4.0
Code Block Pro – Beautiful Syntax Highlighting v1.4.0
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / sass.tmLanguage.json

sass.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.4.0, at build/shiki/languages/sass.tmLanguage.json

616 lines 13.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "fileTypes": ["sass"],
3 "foldingStartMarker": "/\\*|^#|^\\*|^\\b|*#?region|^\\.",
4 "foldingStopMarker": "\\*/|*#?endregion|^\\s*$",
5 "name": "sass",
6 "patterns": [
7 {
8 "begin": "^(\\s*)(/\\*)",
9 "end": "(\\*/)|^(?!\\s\\1)",
10 "name": "comment.block.sass",
11 "patterns": [
12 {
13 "include": "#comment-tag"
14 },
15 {
16 "include": "#comment-param"
17 }
18 ]
19 },
20 {
21 "match": "^[\\t ]*/?//[\\t ]*[SRI][\\t ]*$",
22 "name": "keyword.other.sass.formatter.action"
23 },
24 {
25 "begin": "^[\\t ]*//[\\t ]*(import)[\\t ]*(css-variables)[\\t ]*(from)",
26 "end": "$\\n?",
27 "name": "comment.import.css.variables",
28 "captures": {
29 "1": {
30 "name": "keyword.control"
31 },
32 "2": {
33 "name": "variable"
34 },
35 "3": {
36 "name": "keyword.control"
37 }
38 },
39 "patterns": [
40 {
41 "include": "#import-quotes"
42 }
43 ]
44 },
45 {
46 "include": "#double-slash"
47 },
48 {
49 "include": "#double-quoted"
50 },
51 {
52 "include": "#single-quoted"
53 },
54 {
55 "include": "#interpolation"
56 },
57 {
58 "include": "#curly-brackets"
59 },
60 {
61 "include": "#placeholder-selector"
62 },
63 {
64 "begin": "\\$[a-zA-Z0-9_-]+(?=:)",
65 "end": "$\\n?|(?=\\)\\s\\)|\\)\\n)",
66 "name": "sass.script.maps",
67 "captures": {
68 "0": {
69 "name": "variable.other.name"
70 }
71 },
72 "patterns": [
73 {
74 "include": "#double-slash"
75 },
76 {
77 "include": "#double-quoted"
78 },
79 {
80 "include": "#single-quoted"
81 },
82 {
83 "include": "#interpolation"
84 },
85 {
86 "include": "#variable"
87 },
88 {
89 "include": "#rgb-value"
90 },
91 {
92 "include": "#numeric"
93 },
94 {
95 "include": "#unit"
96 },
97 {
98 "include": "#flag"
99 },
100 {
101 "include": "#comma"
102 },
103 {
104 "include": "#function"
105 },
106 {
107 "include": "#function-content"
108 },
109 {
110 "include": "#operator"
111 },
112 {
113 "include": "#reserved-words"
114 },
115 {
116 "include": "#parent-selector"
117 },
118 {
119 "include": "#property-value"
120 },
121 {
122 "include": "#semicolon"
123 },
124 {
125 "include": "#dotdotdot"
126 }
127 ]
128 },
129 {
130 "include": "#variable-root"
131 },
132 {
133 "include": "#numeric"
134 },
135 {
136 "include": "#unit"
137 },
138 {
139 "include": "#flag"
140 },
141 {
142 "include": "#comma"
143 },
144 {
145 "include": "#semicolon"
146 },
147 {
148 "include": "#dotdotdot"
149 },
150 {
151 "begin": "@include|\\+(?!\\W|\\d)",
152 "end": "(?=\\n|\\()",
153 "name": "support.function.name.sass.library",
154 "captures": {
155 "0": {
156 "name": "keyword.control.at-rule.css.sass"
157 }
158 }
159 },
160 {
161 "begin": "^(@use)",
162 "end": "(?=\\n)",
163 "name": "sass.use",
164 "captures": {
165 "0": {
166 "name": "keyword.control.at-rule.css.sass.use"
167 }
168 },
169 "patterns": [
170 {
171 "match": "as|with",
172 "name": "support.type.css.sass"
173 },
174 {
175 "include": "#numeric"
176 },
177 {
178 "include": "#unit"
179 },
180 {
181 "include": "#variable-root"
182 },
183 {
184 "include": "#rgb-value"
185 },
186 {
187 "include": "#comma"
188 },
189 {
190 "include": "#parenthesis-open"
191 },
192 {
193 "include": "#parenthesis-close"
194 },
195 {
196 "include": "#colon"
197 },
198 {
199 "include": "#import-quotes"
200 }
201 ]
202 },
203 {
204 "begin": "^@import(.*?)( as.*)?$",
205 "end": "(?=\\n)",
206 "name": "keyword.control.at-rule.use",
207 "captures": {
208 "1": {
209 "name": "constant.character.css.sass"
210 },
211 "2": {
212 "name": "invalid"
213 }
214 }
215 },
216 {
217 "begin": "@mixin|^[\\t ]*=|@function",
218 "end": "$\\n?|(?=\\()",
219 "name": "support.function.name.sass",
220 "captures": {
221 "0": {
222 "name": "keyword.control.at-rule.css.sass"
223 }
224 },
225 "patterns": [
226 {
227 "match": "[\\w-]+",
228 "name": "entity.name.function"
229 }
230 ]
231 },
232 {
233 "begin": "@",
234 "end": "$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))",
235 "name": "keyword.control.at-rule.css.sass"
236 },
237 {
238 "begin": "(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|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|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|x)\\b(?!-|\\)|:\\s)|&",
239 "end": "$\\n?|(?=\\s|,|\\(|\\)|\\.|\\#|\\[|>|-|_)",
240 "name": "entity.name.tag.css.sass.symbol",
241 "patterns": [
242 {
243 "include": "#interpolation"
244 },
245 {
246 "include": "#pseudo-class"
247 }
248 ]
249 },
250 {
251 "begin": "#",
252 "end": "$\\n?|(?=\\s|,|\\(|\\)|\\.|\\[|>)",
253 "name": "entity.other.attribute-name.id.css.sass",
254 "patterns": [
255 {
256 "include": "#interpolation"
257 },
258 {
259 "include": "#pseudo-class"
260 }
261 ]
262 },
263 {
264 "begin": "\\.|(?<=&)(-|_)",
265 "end": "$\\n?|(?=\\s|,|\\(|\\)|\\[|>)",
266 "name": "entity.other.attribute-name.class.css.sass",
267 "patterns": [
268 {
269 "include": "#interpolation"
270 },
271 {
272 "include": "#pseudo-class"
273 }
274 ]
275 },
276 {
277 "begin": "\\[",
278 "end": "\\]",
279 "name": "entity.other.attribute-selector.sass",
280 "patterns": [
281 {
282 "include": "#double-quoted"
283 },
284 {
285 "include": "#single-quoted"
286 },
287 {
288 "match": "\\^|\\$|\\*|~",
289 "name": "keyword.other.regex.sass"
290 }
291 ]
292 },
293 {
294 "match": "(?<=\\]|\\)|not\\(|\\*|>|>\\s):[a-z:-]+|(::|:-)[a-z:-]+",
295 "name": "entity.other.attribute-name.pseudo-class.css.sass"
296 },
297 {
298 "include": "#module"
299 },
300 {
301 "match": "[\\w-]*\\(",
302 "name": "entity.name.function"
303 },
304 {
305 "match": "\\)",
306 "name": "entity.name.function.close"
307 },
308 {
309 "begin": ":",
310 "end": "$\\n?|(?=\\s\\(|and\\(|\\),)",
311 "name": "meta.property-list.css.sass.prop",
312 "patterns": [
313 {
314 "match": "(?<=:)[a-z-]+\\s",
315 "name": "support.type.property-name.css.sass.prop.name"
316 },
317 {
318 "include": "#double-slash"
319 },
320 {
321 "include": "#double-quoted"
322 },
323 {
324 "include": "#single-quoted"
325 },
326 {
327 "include": "#interpolation"
328 },
329 {
330 "include": "#curly-brackets"
331 },
332 {
333 "include": "#variable"
334 },
335 {
336 "include": "#rgb-value"
337 },
338 {
339 "include": "#numeric"
340 },
341 {
342 "include": "#unit"
343 },
344 {
345 "include": "#module"
346 },
347 {
348 "match": "--.+?(?=\\))",
349 "name": "variable.css"
350 },
351 {
352 "match": "[\\w-]*\\(",
353 "name": "entity.name.function"
354 },
355 {
356 "match": "\\)",
357 "name": "entity.name.function.close"
358 },
359 {
360 "include": "#flag"
361 },
362 {
363 "include": "#comma"
364 },
365 {
366 "include": "#semicolon"
367 },
368 {
369 "include": "#function"
370 },
371 {
372 "include": "#function-content"
373 },
374 {
375 "include": "#operator"
376 },
377 {
378 "include": "#parent-selector"
379 },
380 {
381 "include": "#property-value"
382 }
383 ]
384 },
385 {
386 "include": "#rgb-value"
387 },
388 {
389 "include": "#function"
390 },
391 {
392 "include": "#function-content"
393 },
394 {
395 "begin": "(?<=})(?!\\n|\\(|\\)|[a-zA-Z0-9_-]+:)",
396 "end": "\\s|(?=,|\\.|\\[|\\)|\\n)",
397 "name": "entity.name.tag.css.sass",
398 "patterns": [
399 {
400 "include": "#interpolation"
401 },
402 {
403 "include": "#pseudo-class"
404 }
405 ]
406 },
407 {
408 "include": "#operator"
409 },
410 {
411 "match": "[a-z-]+((?=:|#{))",
412 "name": "support.type.property-name.css.sass.prop.name"
413 },
414 {
415 "include": "#reserved-words"
416 },
417 {
418 "include": "#property-value"
419 }
420 ],
421 "repository": {
422 "module": {
423 "match": "([\\w-]+?)(\\.)",
424 "name": "constant.character.module",
425 "captures": {
426 "1": {
427 "name": "constant.character.module.name"
428 },
429 "2": {
430 "name": "constant.numeric.module.dot"
431 }
432 }
433 },
434 "comma": {
435 "match": "\\band\\b|\\bor\\b|,",
436 "name": "comment.punctuation.comma.sass"
437 },
438 "comment-tag": {
439 "begin": "(?<={{)",
440 "end": "(?=}})",
441 "name": "comment.tag.sass"
442 },
443 "comment-param": {
444 "match": "\\@(\\w+)",
445 "name": "storage.type.class.jsdoc"
446 },
447 "curly-brackets": {
448 "match": "{|}",
449 "name": "invalid"
450 },
451 "dotdotdot": {
452 "match": "\\.\\.\\.",
453 "name": "variable.other"
454 },
455 "double-slash": {
456 "begin": "//",
457 "end": "$\\n?",
458 "name": "comment.line.sass",
459 "patterns": [
460 {
461 "include": "#comment-tag"
462 }
463 ]
464 },
465 "double-quoted": {
466 "begin": "\"",
467 "end": "\"",
468 "name": "string.quoted.double.css.sass",
469 "patterns": [
470 {
471 "include": "#quoted-interpolation"
472 }
473 ]
474 },
475 "flag": {
476 "match": "!(important|default|optional|global)",
477 "name": "keyword.other.important.css.sass"
478 },
479 "function": {
480 "match": "(?<=[\\s|\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\w-]*(?=\\()",
481 "name": "support.function.name.sass"
482 },
483 "function-content": {
484 "begin": "(?<=url\\(|format\\(|attr\\()",
485 "end": ".(?=\\))",
486 "name": "string.quoted.double.css.sass"
487 },
488 "parenthesis-open": {
489 "match": "\\(",
490 "name": "entity.name.function.parenthesis.open"
491 },
492 "parenthesis-close": {
493 "match": "\\)",
494 "name": "entity.name.function.parenthesis.close"
495 },
496 "colon": {
497 "match": ":",
498 "name": "meta.property-list.css.sass.colon"
499 },
500 "interpolation": {
501 "begin": "#{",
502 "end": "}",
503 "name": "support.function.interpolation.sass",
504 "patterns": [
505 {
506 "include": "#variable"
507 },
508 {
509 "include": "#numeric"
510 },
511 {
512 "include": "#operator"
513 },
514 {
515 "include": "#unit"
516 },
517 {
518 "include": "#comma"
519 },
520 {
521 "include": "#double-quoted"
522 },
523 {
524 "include": "#single-quoted"
525 }
526 ]
527 },
528 "numeric": {
529 "match": "(-|\\.)?[0-9]+(\\.[0-9]+)?",
530 "name": "constant.numeric.css.sass"
531 },
532 "operator": {
533 "match": "\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~",
534 "name": "keyword.operator.sass"
535 },
536 "parent-selector": {
537 "match": "&",
538 "name": "entity.name.tag.css.sass"
539 },
540 "placeholder-selector": {
541 "begin": "(?<!\\d)%(?!\\d)",
542 "end": "$\\n?|\\s",
543 "name": "entity.other.inherited-class.placeholder-selector.css.sass"
544 },
545 "property-value": {
546 "match": "[a-zA-Z0-9_-]+",
547 "name": "meta.property-value.css.sass support.constant.property-value.css.sass"
548 },
549 "pseudo-class": {
550 "match": ":[a-z:-]+",
551 "name": "entity.other.attribute-name.pseudo-class.css.sass"
552 },
553 "quoted-interpolation": {
554 "begin": "#{",
555 "end": "}",
556 "name": "support.function.interpolation.sass",
557 "patterns": [
558 {
559 "include": "#variable"
560 },
561 {
562 "include": "#numeric"
563 },
564 {
565 "include": "#operator"
566 },
567 {
568 "include": "#unit"
569 },
570 {
571 "include": "#comma"
572 }
573 ]
574 },
575 "reserved-words": {
576 "match": "\\b(false|from|in|not|null|through|to|true)\\b",
577 "name": "support.type.property-name.css.sass"
578 },
579 "rgb-value": {
580 "match": "(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",
581 "name": "constant.language.color.rgb-value.css.sass"
582 },
583 "semicolon": {
584 "match": ";",
585 "name": "invalid"
586 },
587 "single-quoted": {
588 "begin": "'",
589 "end": "'",
590 "name": "string.quoted.single.css.sass",
591 "patterns": [
592 {
593 "include": "#quoted-interpolation"
594 }
595 ]
596 },
597 "unit": {
598 "match": "(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)",
599 "name": "keyword.control.unit.css.sass"
600 },
601 "variable-root": {
602 "match": "\\$[a-zA-Z0-9_-]+",
603 "name": "variable.other.root"
604 },
605 "variable": {
606 "match": "\\$[a-zA-Z0-9_-]+",
607 "name": "variable.other.value"
608 },
609 "import-quotes": {
610 "match": "[\"']?\\.{0,2}[\\w/]+[\"']?",
611 "name": "constant.character.css.sass"
612 }
613 },
614 "scopeName": "source.sass"
615 }
616