PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.2
Code Block Pro – Beautiful Syntax Highlighting v1.27.2
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 / scss.tmLanguage.json

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

1,880 lines 49.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "information_for_contributors": [
3 "This file has been converted from https://github.com/atom/language-sass/blob/master/grammars/scss.cson",
4 "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5 "Once accepted there, we are happy to receive an update request."
6 ],
7 "version": "https://github.com/atom/language-sass/commit/f52ab12f7f9346cc2568129d8c4419bd3d506b47",
8 "name": "scss",
9 "scopeName": "source.css.scss",
10 "patterns": [
11 {
12 "include": "#variable_setting"
13 },
14 {
15 "include": "#at_rule_forward"
16 },
17 {
18 "include": "#at_rule_use"
19 },
20 {
21 "include": "#at_rule_include"
22 },
23 {
24 "include": "#at_rule_import"
25 },
26 {
27 "include": "#general"
28 },
29 {
30 "include": "#flow_control"
31 },
32 {
33 "include": "#rules"
34 },
35 {
36 "include": "#property_list"
37 },
38 {
39 "include": "#at_rule_mixin"
40 },
41 {
42 "include": "#at_rule_media"
43 },
44 {
45 "include": "#at_rule_function"
46 },
47 {
48 "include": "#at_rule_charset"
49 },
50 {
51 "include": "#at_rule_option"
52 },
53 {
54 "include": "#at_rule_namespace"
55 },
56 {
57 "include": "#at_rule_fontface"
58 },
59 {
60 "include": "#at_rule_page"
61 },
62 {
63 "include": "#at_rule_keyframes"
64 },
65 {
66 "include": "#at_rule_at_root"
67 },
68 {
69 "include": "#at_rule_supports"
70 },
71 {
72 "match": ";",
73 "name": "punctuation.terminator.rule.css"
74 }
75 ],
76 "repository": {
77 "at_rule_charset": {
78 "begin": "\\s*((@)charset\\b)\\s*",
79 "captures": {
80 "1": {
81 "name": "keyword.control.at-rule.charset.scss"
82 },
83 "2": {
84 "name": "punctuation.definition.keyword.scss"
85 }
86 },
87 "end": "\\s*((?=;|$))",
88 "name": "meta.at-rule.charset.scss",
89 "patterns": [
90 {
91 "include": "#variable"
92 },
93 {
94 "include": "#string_single"
95 },
96 {
97 "include": "#string_double"
98 }
99 ]
100 },
101 "at_rule_content": {
102 "begin": "\\s*((@)content\\b)\\s*",
103 "captures": {
104 "1": {
105 "name": "keyword.control.content.scss"
106 }
107 },
108 "end": "\\s*((?=;))",
109 "name": "meta.content.scss",
110 "patterns": [
111 {
112 "include": "#variable"
113 },
114 {
115 "include": "#selectors"
116 },
117 {
118 "include": "#property_values"
119 }
120 ]
121 },
122 "at_rule_each": {
123 "begin": "\\s*((@)each\\b)\\s*",
124 "captures": {
125 "1": {
126 "name": "keyword.control.each.scss"
127 },
128 "2": {
129 "name": "punctuation.definition.keyword.scss"
130 }
131 },
132 "end": "\\s*((?=}))",
133 "name": "meta.at-rule.each.scss",
134 "patterns": [
135 {
136 "match": "\\b(in|,)\\b",
137 "name": "keyword.control.operator"
138 },
139 {
140 "include": "#variable"
141 },
142 {
143 "include": "#property_values"
144 },
145 {
146 "include": "$self"
147 }
148 ]
149 },
150 "at_rule_else": {
151 "begin": "\\s*((@)else(\\s*(if)?))\\s*",
152 "captures": {
153 "1": {
154 "name": "keyword.control.else.scss"
155 },
156 "2": {
157 "name": "punctuation.definition.keyword.scss"
158 }
159 },
160 "end": "\\s*(?={)",
161 "name": "meta.at-rule.else.scss",
162 "patterns": [
163 {
164 "include": "#conditional_operators"
165 },
166 {
167 "include": "#variable"
168 },
169 {
170 "include": "#property_values"
171 }
172 ]
173 },
174 "at_rule_extend": {
175 "begin": "\\s*((@)extend\\b)\\s*",
176 "captures": {
177 "1": {
178 "name": "keyword.control.at-rule.extend.scss"
179 },
180 "2": {
181 "name": "punctuation.definition.keyword.scss"
182 }
183 },
184 "end": "\\s*(?=;)",
185 "name": "meta.at-rule.extend.scss",
186 "patterns": [
187 {
188 "include": "#variable"
189 },
190 {
191 "include": "#selectors"
192 },
193 {
194 "include": "#property_values"
195 }
196 ]
197 },
198 "at_rule_fontface": {
199 "patterns": [
200 {
201 "begin": "^\\s*((@)font-face\\b)",
202 "beginCaptures": {
203 "1": {
204 "name": "keyword.control.at-rule.fontface.scss"
205 },
206 "2": {
207 "name": "punctuation.definition.keyword.scss"
208 }
209 },
210 "end": "\\s*(?={)",
211 "name": "meta.at-rule.fontface.scss",
212 "patterns": [
213 {
214 "include": "#function_attributes"
215 }
216 ]
217 }
218 ]
219 },
220 "at_rule_for": {
221 "begin": "\\s*((@)for\\b)\\s*",
222 "captures": {
223 "1": {
224 "name": "keyword.control.for.scss"
225 },
226 "2": {
227 "name": "punctuation.definition.keyword.scss"
228 }
229 },
230 "end": "\\s*(?={)",
231 "name": "meta.at-rule.for.scss",
232 "patterns": [
233 {
234 "match": "(==|!=|<=|>=|<|>|from|to|through)",
235 "name": "keyword.control.operator"
236 },
237 {
238 "include": "#variable"
239 },
240 {
241 "include": "#property_values"
242 },
243 {
244 "include": "$self"
245 }
246 ]
247 },
248 "at_rule_forward": {
249 "begin": "\\s*((@)forward\\b)\\s*",
250 "captures": {
251 "1": {
252 "name": "keyword.control.at-rule.forward.scss"
253 },
254 "2": {
255 "name": "punctuation.definition.keyword.scss"
256 }
257 },
258 "end": "\\s*(?=;)",
259 "name": "meta.at-rule.forward.scss",
260 "patterns": [
261 {
262 "match": "\\b(as|hide|show)\\b",
263 "name": "keyword.control.operator"
264 },
265 {
266 "match": "\\b([\\w-]+)(\\*)",
267 "captures": {
268 "1": {
269 "name": "entity.other.attribute-name.module.scss"
270 },
271 "2": {
272 "name": "punctuation.definition.wildcard.scss"
273 }
274 }
275 },
276 {
277 "match": "\\b[\\w-]+\\b",
278 "name": "entity.name.function.scss"
279 },
280 {
281 "include": "#variable"
282 },
283 {
284 "include": "#string_single"
285 },
286 {
287 "include": "#string_double"
288 },
289 {
290 "include": "#comment_line"
291 },
292 {
293 "include": "#comment_block"
294 }
295 ]
296 },
297 "at_rule_function": {
298 "patterns": [
299 {
300 "begin": "\\s*((@)function\\b)\\s*",
301 "captures": {
302 "1": {
303 "name": "keyword.control.at-rule.function.scss"
304 },
305 "2": {
306 "name": "punctuation.definition.keyword.scss"
307 },
308 "3": {
309 "name": "entity.name.function.scss"
310 }
311 },
312 "end": "\\s*(?={)",
313 "name": "meta.at-rule.function.scss",
314 "patterns": [
315 {
316 "include": "#function_attributes"
317 }
318 ]
319 },
320 {
321 "captures": {
322 "1": {
323 "name": "keyword.control.at-rule.function.scss"
324 },
325 "2": {
326 "name": "punctuation.definition.keyword.scss"
327 },
328 "3": {
329 "name": "entity.name.function.scss"
330 }
331 },
332 "match": "\\s*((@)function\\b)\\s*",
333 "name": "meta.at-rule.function.scss"
334 }
335 ]
336 },
337 "at_rule_if": {
338 "begin": "\\s*((@)if\\b)\\s*",
339 "captures": {
340 "1": {
341 "name": "keyword.control.if.scss"
342 },
343 "2": {
344 "name": "punctuation.definition.keyword.scss"
345 }
346 },
347 "end": "\\s*(?={)",
348 "name": "meta.at-rule.if.scss",
349 "patterns": [
350 {
351 "include": "#conditional_operators"
352 },
353 {
354 "include": "#variable"
355 },
356 {
357 "include": "#property_values"
358 }
359 ]
360 },
361 "at_rule_import": {
362 "begin": "\\s*((@)import\\b)\\s*",
363 "captures": {
364 "1": {
365 "name": "keyword.control.at-rule.import.scss"
366 },
367 "2": {
368 "name": "punctuation.definition.keyword.scss"
369 }
370 },
371 "end": "\\s*((?=;)|(?=}))",
372 "name": "meta.at-rule.import.scss",
373 "patterns": [
374 {
375 "include": "#variable"
376 },
377 {
378 "include": "#string_single"
379 },
380 {
381 "include": "#string_double"
382 },
383 {
384 "include": "#functions"
385 },
386 {
387 "include": "#comment_line"
388 }
389 ]
390 },
391 "at_rule_include": {
392 "patterns": [
393 {
394 "begin": "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()",
395 "beginCaptures": {
396 "1": {
397 "name": "variable.scss"
398 },
399 "2": {
400 "name": "punctuation.access.module.scss"
401 },
402 "3": {
403 "name": "entity.name.function.scss"
404 },
405 "4": {
406 "name": "punctuation.definition.parameters.begin.bracket.round.scss"
407 }
408 },
409 "end": "\\)",
410 "endCaptures": {
411 "0": {
412 "name": "punctuation.definition.parameters.end.bracket.round.scss"
413 }
414 },
415 "name": "meta.at-rule.include.scss",
416 "patterns": [
417 {
418 "include": "#function_attributes"
419 }
420 ]
421 },
422 {
423 "match": "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)",
424 "captures": {
425 "0": {
426 "name": "meta.at-rule.include.scss"
427 },
428 "1": {
429 "name": "variable.scss"
430 },
431 "2": {
432 "name": "punctuation.access.module.scss"
433 },
434 "3": {
435 "name": "entity.name.function.scss"
436 }
437 }
438 },
439 {
440 "match": "((@)include)\\b",
441 "captures": {
442 "0": {
443 "name": "meta.at-rule.include.scss"
444 },
445 "1": {
446 "name": "keyword.control.at-rule.include.scss"
447 },
448 "2": {
449 "name": "punctuation.definition.keyword.scss"
450 }
451 }
452 }
453 ]
454 },
455 "at_rule_keyframes": {
456 "begin": "(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b",
457 "beginCaptures": {
458 "0": {
459 "name": "keyword.control.at-rule.keyframes.scss"
460 },
461 "1": {
462 "name": "punctuation.definition.keyword.scss"
463 }
464 },
465 "end": "(?<=})",
466 "name": "meta.at-rule.keyframes.scss",
467 "patterns": [
468 {
469 "match": "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)",
470 "captures": {
471 "1": {
472 "name": "entity.name.function.scss"
473 }
474 }
475 },
476 {
477 "begin": "(?<=@keyframes)\\s+(\")",
478 "beginCaptures": {
479 "1": {
480 "name": "punctuation.definition.string.begin.scss"
481 }
482 },
483 "end": "\"",
484 "endCaptures": {
485 "0": {
486 "name": "punctuation.definition.string.end.scss"
487 }
488 },
489 "name": "string.quoted.double.scss",
490 "contentName": "entity.name.function.scss",
491 "patterns": [
492 {
493 "match": "\\\\(\\h{1,6}|.)",
494 "name": "constant.character.escape.scss"
495 },
496 {
497 "include": "#interpolation"
498 }
499 ]
500 },
501 {
502 "begin": "(?<=@keyframes)\\s+(')",
503 "beginCaptures": {
504 "1": {
505 "name": "punctuation.definition.string.begin.scss"
506 }
507 },
508 "end": "'",
509 "endCaptures": {
510 "0": {
511 "name": "punctuation.definition.string.end.scss"
512 }
513 },
514 "name": "string.quoted.single.scss",
515 "contentName": "entity.name.function.scss",
516 "patterns": [
517 {
518 "match": "\\\\(\\h{1,6}|.)",
519 "name": "constant.character.escape.scss"
520 },
521 {
522 "include": "#interpolation"
523 }
524 ]
525 },
526 {
527 "begin": "{",
528 "beginCaptures": {
529 "0": {
530 "name": "punctuation.section.keyframes.begin.scss"
531 }
532 },
533 "end": "}",
534 "endCaptures": {
535 "0": {
536 "name": "punctuation.section.keyframes.end.scss"
537 }
538 },
539 "patterns": [
540 {
541 "match": "\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)",
542 "name": "entity.other.attribute-name.scss"
543 },
544 {
545 "include": "#flow_control"
546 },
547 {
548 "include": "#interpolation"
549 },
550 {
551 "include": "#property_list"
552 },
553 {
554 "include": "#rules"
555 }
556 ]
557 }
558 ]
559 },
560 "at_rule_media": {
561 "patterns": [
562 {
563 "begin": "^\\s*((@)media)\\b",
564 "beginCaptures": {
565 "1": {
566 "name": "keyword.control.at-rule.media.scss"
567 },
568 "2": {
569 "name": "punctuation.definition.keyword.scss"
570 }
571 },
572 "end": "\\s*(?={)",
573 "name": "meta.at-rule.media.scss",
574 "patterns": [
575 {
576 "include": "#comment_docblock"
577 },
578 {
579 "include": "#comment_block"
580 },
581 {
582 "include": "#comment_line"
583 },
584 {
585 "match": "\\b(only)\\b",
586 "name": "keyword.control.operator.css.scss"
587 },
588 {
589 "begin": "\\(",
590 "beginCaptures": {
591 "0": {
592 "name": "punctuation.definition.media-query.begin.bracket.round.scss"
593 }
594 },
595 "end": "\\)",
596 "endCaptures": {
597 "0": {
598 "name": "punctuation.definition.media-query.end.bracket.round.scss"
599 }
600 },
601 "name": "meta.property-list.media-query.scss",
602 "patterns": [
603 {
604 "begin": "(?<![-a-z])(?=[-a-z])",
605 "end": "$|(?![-a-z])",
606 "name": "meta.property-name.media-query.scss",
607 "patterns": [
608 {
609 "include": "source.css#media-features"
610 },
611 {
612 "include": "source.css#property-names"
613 }
614 ]
615 },
616 {
617 "begin": "(:)\\s*(?!(\\s*{))",
618 "beginCaptures": {
619 "1": {
620 "name": "punctuation.separator.key-value.scss"
621 }
622 },
623 "end": "\\s*(;|(?=}|\\)))",
624 "endCaptures": {
625 "1": {
626 "name": "punctuation.terminator.rule.scss"
627 }
628 },
629 "contentName": "meta.property-value.media-query.scss",
630 "patterns": [
631 {
632 "include": "#general"
633 },
634 {
635 "include": "#property_values"
636 }
637 ]
638 }
639 ]
640 },
641 {
642 "include": "#variable"
643 },
644 {
645 "include": "#conditional_operators"
646 },
647 {
648 "include": "source.css#media-types"
649 }
650 ]
651 }
652 ]
653 },
654 "at_rule_mixin": {
655 "patterns": [
656 {
657 "begin": "(?<=@mixin)\\s+([\\w-]+)\\s*(\\()",
658 "beginCaptures": {
659 "1": {
660 "name": "entity.name.function.scss"
661 },
662 "2": {
663 "name": "punctuation.definition.parameters.begin.bracket.round.scss"
664 }
665 },
666 "end": "\\)",
667 "endCaptures": {
668 "0": {
669 "name": "punctuation.definition.parameters.end.bracket.round.scss"
670 }
671 },
672 "name": "meta.at-rule.mixin.scss",
673 "patterns": [
674 {
675 "include": "#function_attributes"
676 }
677 ]
678 },
679 {
680 "match": "(?<=@mixin)\\s+([\\w-]+)",
681 "captures": {
682 "1": {
683 "name": "entity.name.function.scss"
684 }
685 },
686 "name": "meta.at-rule.mixin.scss"
687 },
688 {
689 "match": "((@)mixin)\\b",
690 "captures": {
691 "1": {
692 "name": "keyword.control.at-rule.mixin.scss"
693 },
694 "2": {
695 "name": "punctuation.definition.keyword.scss"
696 }
697 },
698 "name": "meta.at-rule.mixin.scss"
699 }
700 ]
701 },
702 "at_rule_namespace": {
703 "patterns": [
704 {
705 "begin": "(?<=@namespace)\\s+(?=url)",
706 "end": "(?=;|$)",
707 "name": "meta.at-rule.namespace.scss",
708 "patterns": [
709 {
710 "include": "#property_values"
711 },
712 {
713 "include": "#string_single"
714 },
715 {
716 "include": "#string_double"
717 }
718 ]
719 },
720 {
721 "begin": "(?<=@namespace)\\s+([\\w-]*)",
722 "captures": {
723 "1": {
724 "name": "entity.name.namespace-prefix.scss"
725 }
726 },
727 "end": "(?=;|$)",
728 "name": "meta.at-rule.namespace.scss",
729 "patterns": [
730 {
731 "include": "#variables"
732 },
733 {
734 "include": "#property_values"
735 },
736 {
737 "include": "#string_single"
738 },
739 {
740 "include": "#string_double"
741 }
742 ]
743 },
744 {
745 "match": "((@)namespace)\\b",
746 "captures": {
747 "1": {
748 "name": "keyword.control.at-rule.namespace.scss"
749 },
750 "2": {
751 "name": "punctuation.definition.keyword.scss"
752 }
753 },
754 "name": "meta.at-rule.namespace.scss"
755 }
756 ]
757 },
758 "at_rule_option": {
759 "captures": {
760 "1": {
761 "name": "keyword.control.at-rule.charset.scss"
762 },
763 "2": {
764 "name": "punctuation.definition.keyword.scss"
765 }
766 },
767 "match": "^\\s*((@)option\\b)\\s*",
768 "name": "meta.at-rule.option.scss"
769 },
770 "at_rule_page": {
771 "patterns": [
772 {
773 "begin": "^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)",
774 "captures": {
775 "1": {
776 "name": "keyword.control.at-rule.page.scss"
777 },
778 "2": {
779 "name": "punctuation.definition.keyword.scss"
780 },
781 "3": {
782 "name": "entity.name.function.scss"
783 }
784 },
785 "end": "\\s*(?={)",
786 "name": "meta.at-rule.page.scss"
787 }
788 ]
789 },
790 "at_rule_return": {
791 "begin": "\\s*((@)(return)\\b)",
792 "captures": {
793 "1": {
794 "name": "keyword.control.return.scss"
795 },
796 "2": {
797 "name": "punctuation.definition.keyword.scss"
798 }
799 },
800 "end": "\\s*((?=;))",
801 "name": "meta.at-rule.return.scss",
802 "patterns": [
803 {
804 "include": "#variable"
805 },
806 {
807 "include": "#property_values"
808 }
809 ]
810 },
811 "at_rule_at_root": {
812 "begin": "\\s*((@)(at-root))(\\s+|$)",
813 "end": "\\s*(?={)",
814 "beginCaptures": {
815 "1": {
816 "name": "keyword.control.at-rule.at-root.scss"
817 },
818 "2": {
819 "name": "punctuation.definition.keyword.scss"
820 }
821 },
822 "name": "meta.at-rule.at-root.scss",
823 "patterns": [
824 {
825 "include": "#function_attributes"
826 },
827 {
828 "include": "#functions"
829 },
830 {
831 "include": "#selectors"
832 }
833 ]
834 },
835 "at_rule_supports": {
836 "begin": "(?<=^|\\s)(@)supports\\b",
837 "captures": {
838 "0": {
839 "name": "keyword.control.at-rule.supports.scss"
840 },
841 "1": {
842 "name": "punctuation.definition.keyword.scss"
843 }
844 },
845 "end": "(?={)|$",
846 "name": "meta.at-rule.supports.scss",
847 "patterns": [
848 {
849 "include": "#logical_operators"
850 },
851 {
852 "include": "#properties"
853 },
854 {
855 "match": "\\(",
856 "name": "punctuation.definition.condition.begin.bracket.round.scss"
857 },
858 {
859 "match": "\\)",
860 "name": "punctuation.definition.condition.end.bracket.round.scss"
861 }
862 ]
863 },
864 "at_rule_use": {
865 "begin": "\\s*((@)use\\b)\\s*",
866 "captures": {
867 "1": {
868 "name": "keyword.control.at-rule.use.scss"
869 },
870 "2": {
871 "name": "punctuation.definition.keyword.scss"
872 }
873 },
874 "end": "\\s*(?=;)",
875 "name": "meta.at-rule.use.scss",
876 "patterns": [
877 {
878 "match": "\\b(as|with)\\b",
879 "name": "keyword.control.operator"
880 },
881 {
882 "match": "\\b[\\w-]+\\b",
883 "name": "variable.scss"
884 },
885 {
886 "match": "\\*",
887 "name": "variable.language.expanded-namespace.scss"
888 },
889 {
890 "include": "#string_single"
891 },
892 {
893 "include": "#string_double"
894 },
895 {
896 "include": "#comment_line"
897 },
898 {
899 "include": "#comment_block"
900 },
901 {
902 "begin": "\\(",
903 "beginCaptures": {
904 "0": {
905 "name": "punctuation.definition.parameters.begin.bracket.round.scss"
906 }
907 },
908 "end": "\\)",
909 "endCaptures": {
910 "0": {
911 "name": "punctuation.definition.parameters.end.bracket.round.scss"
912 }
913 },
914 "patterns": [
915 {
916 "include": "#function_attributes"
917 }
918 ]
919 }
920 ]
921 },
922 "at_rule_warn": {
923 "begin": "\\s*((@)(warn|debug|error)\\b)\\s*",
924 "captures": {
925 "1": {
926 "name": "keyword.control.warn.scss"
927 },
928 "2": {
929 "name": "punctuation.definition.keyword.scss"
930 }
931 },
932 "end": "\\s*(?=;)",
933 "name": "meta.at-rule.warn.scss",
934 "patterns": [
935 {
936 "include": "#variable"
937 },
938 {
939 "include": "#string_double"
940 },
941 {
942 "include": "#string_single"
943 }
944 ]
945 },
946 "at_rule_while": {
947 "begin": "\\s*((@)while\\b)\\s*",
948 "captures": {
949 "1": {
950 "name": "keyword.control.while.scss"
951 },
952 "2": {
953 "name": "punctuation.definition.keyword.scss"
954 }
955 },
956 "end": "\\s*(?=})",
957 "name": "meta.at-rule.while.scss",
958 "patterns": [
959 {
960 "include": "#conditional_operators"
961 },
962 {
963 "include": "#variable"
964 },
965 {
966 "include": "#property_values"
967 },
968 {
969 "include": "$self"
970 }
971 ]
972 },
973 "comment_docblock": {
974 "name": "comment.block.documentation.scss",
975 "begin": "///",
976 "beginCaptures": {
977 "0": {
978 "name": "punctuation.definition.comment.scss"
979 }
980 },
981 "end": "(?=$)",
982 "patterns": [
983 {
984 "include": "source.sassdoc"
985 }
986 ]
987 },
988 "comment_block": {
989 "begin": "/\\*",
990 "beginCaptures": {
991 "0": {
992 "name": "punctuation.definition.comment.scss"
993 }
994 },
995 "end": "\\*/",
996 "endCaptures": {
997 "0": {
998 "name": "punctuation.definition.comment.scss"
999 }
1000 },
1001 "name": "comment.block.scss"
1002 },
1003 "comment_line": {
1004 "begin": "//",
1005 "beginCaptures": {
1006 "0": {
1007 "name": "punctuation.definition.comment.scss"
1008 }
1009 },
1010 "end": "\\n",
1011 "name": "comment.line.scss"
1012 },
1013 "constant_default": {
1014 "match": "!default",
1015 "name": "keyword.other.default.scss"
1016 },
1017 "constant_functions": {
1018 "begin": "(?:([\\w-]+)(\\.))?([\\w-]+)(\\()",
1019 "beginCaptures": {
1020 "1": {
1021 "name": "variable.scss"
1022 },
1023 "2": {
1024 "name": "punctuation.access.module.scss"
1025 },
1026 "3": {
1027 "name": "support.function.misc.scss"
1028 },
1029 "4": {
1030 "name": "punctuation.section.function.scss"
1031 }
1032 },
1033 "end": "(\\))",
1034 "endCaptures": {
1035 "1": {
1036 "name": "punctuation.section.function.scss"
1037 }
1038 },
1039 "patterns": [
1040 {
1041 "include": "#parameters"
1042 }
1043 ]
1044 },
1045 "constant_important": {
1046 "match": "!important",
1047 "name": "keyword.other.important.scss"
1048 },
1049 "constant_mathematical_symbols": {
1050 "match": "\\b(\\+|-|\\*|/)\\b",
1051 "name": "support.constant.mathematical-symbols.scss"
1052 },
1053 "constant_optional": {
1054 "match": "!optional",
1055 "name": "keyword.other.optional.scss"
1056 },
1057 "constant_sass_functions": {
1058 "begin": "(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\()",
1059 "beginCaptures": {
1060 "1": {
1061 "name": "support.function.misc.scss"
1062 },
1063 "2": {
1064 "name": "punctuation.section.function.scss"
1065 }
1066 },
1067 "end": "(\\))",
1068 "endCaptures": {
1069 "1": {
1070 "name": "punctuation.section.function.scss"
1071 }
1072 },
1073 "patterns": [
1074 {
1075 "include": "#parameters"
1076 }
1077 ]
1078 },
1079 "flow_control": {
1080 "patterns": [
1081 {
1082 "include": "#at_rule_if"
1083 },
1084 {
1085 "include": "#at_rule_else"
1086 },
1087 {
1088 "include": "#at_rule_warn"
1089 },
1090 {
1091 "include": "#at_rule_for"
1092 },
1093 {
1094 "include": "#at_rule_while"
1095 },
1096 {
1097 "include": "#at_rule_each"
1098 },
1099 {
1100 "include": "#at_rule_return"
1101 }
1102 ]
1103 },
1104 "function_attributes": {
1105 "patterns": [
1106 {
1107 "match": ":",
1108 "name": "punctuation.separator.key-value.scss"
1109 },
1110 {
1111 "include": "#general"
1112 },
1113 {
1114 "include": "#property_values"
1115 },
1116 {
1117 "match": "[={}\\?;@]",
1118 "name": "invalid.illegal.scss"
1119 }
1120 ]
1121 },
1122 "functions": {
1123 "patterns": [
1124 {
1125 "begin": "([\\w-]{1,})(\\()\\s*",
1126 "beginCaptures": {
1127 "1": {
1128 "name": "support.function.misc.scss"
1129 },
1130 "2": {
1131 "name": "punctuation.section.function.scss"
1132 }
1133 },
1134 "end": "(\\))",
1135 "endCaptures": {
1136 "1": {
1137 "name": "punctuation.section.function.scss"
1138 }
1139 },
1140 "patterns": [
1141 {
1142 "include": "#parameters"
1143 }
1144 ]
1145 },
1146 {
1147 "match": "([\\w-]{1,})",
1148 "name": "support.function.misc.scss"
1149 }
1150 ]
1151 },
1152 "general": {
1153 "patterns": [
1154 {
1155 "include": "#variable"
1156 },
1157 {
1158 "include": "#comment_docblock"
1159 },
1160 {
1161 "include": "#comment_block"
1162 },
1163 {
1164 "include": "#comment_line"
1165 }
1166 ]
1167 },
1168 "interpolation": {
1169 "begin": "#{",
1170 "beginCaptures": {
1171 "0": {
1172 "name": "punctuation.definition.interpolation.begin.bracket.curly.scss"
1173 }
1174 },
1175 "end": "}",
1176 "endCaptures": {
1177 "0": {
1178 "name": "punctuation.definition.interpolation.end.bracket.curly.scss"
1179 }
1180 },
1181 "name": "variable.interpolation.scss",
1182 "patterns": [
1183 {
1184 "include": "#variable"
1185 },
1186 {
1187 "include": "#property_values"
1188 }
1189 ]
1190 },
1191 "conditional_operators": {
1192 "patterns": [
1193 {
1194 "include": "#comparison_operators"
1195 },
1196 {
1197 "include": "#logical_operators"
1198 }
1199 ]
1200 },
1201 "comparison_operators": {
1202 "match": "==|!=|<=|>=|<|>",
1203 "name": "keyword.operator.comparison.scss"
1204 },
1205 "logical_operators": {
1206 "match": "\\b(not|or|and)\\b",
1207 "name": "keyword.operator.logical.scss"
1208 },
1209 "map": {
1210 "begin": "\\(",
1211 "beginCaptures": {
1212 "0": {
1213 "name": "punctuation.definition.map.begin.bracket.round.scss"
1214 }
1215 },
1216 "end": "\\)",
1217 "endCaptures": {
1218 "0": {
1219 "name": "punctuation.definition.map.end.bracket.round.scss"
1220 }
1221 },
1222 "name": "meta.definition.variable.map.scss",
1223 "patterns": [
1224 {
1225 "include": "#comment_docblock"
1226 },
1227 {
1228 "include": "#comment_block"
1229 },
1230 {
1231 "include": "#comment_line"
1232 },
1233 {
1234 "match": "\\b([\\w-]+)\\s*(:)",
1235 "captures": {
1236 "1": {
1237 "name": "support.type.map.key.scss"
1238 },
1239 "2": {
1240 "name": "punctuation.separator.key-value.scss"
1241 }
1242 }
1243 },
1244 {
1245 "match": ",",
1246 "name": "punctuation.separator.delimiter.scss"
1247 },
1248 {
1249 "include": "#map"
1250 },
1251 {
1252 "include": "#variable"
1253 },
1254 {
1255 "include": "#property_values"
1256 }
1257 ]
1258 },
1259 "operators": {
1260 "match": "[-+*/](?!\\s*[-+*/])",
1261 "name": "keyword.operator.css"
1262 },
1263 "parameters": {
1264 "patterns": [
1265 {
1266 "include": "#variable"
1267 },
1268 {
1269 "begin": "\\(",
1270 "beginCaptures": {
1271 "0": {
1272 "name": "punctuation.definition.begin.bracket.round.scss"
1273 }
1274 },
1275 "end": "\\)",
1276 "endCaptures": {
1277 "0": {
1278 "name": "punctuation.definition.end.bracket.round.scss"
1279 }
1280 },
1281 "patterns": [
1282 {
1283 "include": "#function_attributes"
1284 }
1285 ]
1286 },
1287 {
1288 "include": "#property_values"
1289 },
1290 {
1291 "include": "#comment_block"
1292 },
1293 {
1294 "match": "[^'\",) \\t]+",
1295 "name": "variable.parameter.url.scss"
1296 },
1297 {
1298 "match": ",",
1299 "name": "punctuation.separator.delimiter.scss"
1300 }
1301 ]
1302 },
1303 "properties": {
1304 "patterns": [
1305 {
1306 "begin": "(?<![-a-z])(?=[-a-z])",
1307 "end": "$|(?![-a-z])",
1308 "name": "meta.property-name.scss",
1309 "patterns": [
1310 {
1311 "include": "source.css#property-names"
1312 },
1313 {
1314 "include": "#at_rule_include"
1315 }
1316 ]
1317 },
1318 {
1319 "begin": "(:)\\s*(?!(\\s*{))",
1320 "beginCaptures": {
1321 "1": {
1322 "name": "punctuation.separator.key-value.scss"
1323 }
1324 },
1325 "end": "\\s*(;|(?=}|\\)))",
1326 "endCaptures": {
1327 "1": {
1328 "name": "punctuation.terminator.rule.scss"
1329 }
1330 },
1331 "contentName": "meta.property-value.scss",
1332 "patterns": [
1333 {
1334 "include": "#general"
1335 },
1336 {
1337 "include": "#property_values"
1338 }
1339 ]
1340 }
1341 ]
1342 },
1343 "property_list": {
1344 "begin": "{",
1345 "beginCaptures": {
1346 "0": {
1347 "name": "punctuation.section.property-list.begin.bracket.curly.scss"
1348 }
1349 },
1350 "end": "}",
1351 "endCaptures": {
1352 "0": {
1353 "name": "punctuation.section.property-list.end.bracket.curly.scss"
1354 }
1355 },
1356 "name": "meta.property-list.scss",
1357 "patterns": [
1358 {
1359 "include": "#flow_control"
1360 },
1361 {
1362 "include": "#rules"
1363 },
1364 {
1365 "include": "#properties"
1366 },
1367 {
1368 "include": "$self"
1369 }
1370 ]
1371 },
1372 "property_values": {
1373 "patterns": [
1374 {
1375 "include": "#string_single"
1376 },
1377 {
1378 "include": "#string_double"
1379 },
1380 {
1381 "include": "#constant_functions"
1382 },
1383 {
1384 "include": "#constant_sass_functions"
1385 },
1386 {
1387 "include": "#constant_important"
1388 },
1389 {
1390 "include": "#constant_default"
1391 },
1392 {
1393 "include": "#constant_optional"
1394 },
1395 {
1396 "include": "source.css#numeric-values"
1397 },
1398 {
1399 "include": "source.css#property-keywords"
1400 },
1401 {
1402 "include": "source.css#color-keywords"
1403 },
1404 {
1405 "include": "source.css#property-names"
1406 },
1407 {
1408 "include": "#constant_mathematical_symbols"
1409 },
1410 {
1411 "include": "#operators"
1412 },
1413 {
1414 "begin": "\\(",
1415 "beginCaptures": {
1416 "0": {
1417 "name": "punctuation.definition.begin.bracket.round.scss"
1418 }
1419 },
1420 "end": "\\)",
1421 "endCaptures": {
1422 "0": {
1423 "name": "punctuation.definition.end.bracket.round.scss"
1424 }
1425 },
1426 "patterns": [
1427 {
1428 "include": "#general"
1429 },
1430 {
1431 "include": "#property_values"
1432 }
1433 ]
1434 }
1435 ]
1436 },
1437 "rules": {
1438 "patterns": [
1439 {
1440 "include": "#general"
1441 },
1442 {
1443 "include": "#at_rule_extend"
1444 },
1445 {
1446 "include": "#at_rule_content"
1447 },
1448 {
1449 "include": "#at_rule_include"
1450 },
1451 {
1452 "include": "#at_rule_media"
1453 },
1454 {
1455 "include": "#selectors"
1456 }
1457 ]
1458 },
1459 "selector_attribute": {
1460 "match": "(?xi)\n(\\[)\n\\s*\n(\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+?\n)\n(?:\n \\s*([~|^$*]?=)\\s*\n (?:\n (\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n )\n |\n ((\")(.*?)(\"))\n |\n ((')(.*?)('))\n )\n)?\n\\s*\n(\\])",
1461 "name": "meta.attribute-selector.scss",
1462 "captures": {
1463 "1": {
1464 "name": "punctuation.definition.attribute-selector.begin.bracket.square.scss"
1465 },
1466 "2": {
1467 "name": "entity.other.attribute-name.attribute.scss",
1468 "patterns": [
1469 {
1470 "include": "#interpolation"
1471 },
1472 {
1473 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1474 "name": "constant.character.escape.scss"
1475 },
1476 {
1477 "match": "\\$|}",
1478 "name": "invalid.illegal.scss"
1479 }
1480 ]
1481 },
1482 "3": {
1483 "name": "keyword.operator.scss"
1484 },
1485 "4": {
1486 "name": "string.unquoted.attribute-value.scss",
1487 "patterns": [
1488 {
1489 "include": "#interpolation"
1490 },
1491 {
1492 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1493 "name": "constant.character.escape.scss"
1494 },
1495 {
1496 "match": "\\$|}",
1497 "name": "invalid.illegal.scss"
1498 }
1499 ]
1500 },
1501 "5": {
1502 "name": "string.quoted.double.attribute-value.scss"
1503 },
1504 "6": {
1505 "name": "punctuation.definition.string.begin.scss"
1506 },
1507 "7": {
1508 "patterns": [
1509 {
1510 "include": "#interpolation"
1511 },
1512 {
1513 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1514 "name": "constant.character.escape.scss"
1515 },
1516 {
1517 "match": "\\$|}",
1518 "name": "invalid.illegal.scss"
1519 }
1520 ]
1521 },
1522 "8": {
1523 "name": "punctuation.definition.string.end.scss"
1524 },
1525 "9": {
1526 "name": "string.quoted.single.attribute-value.scss"
1527 },
1528 "10": {
1529 "name": "punctuation.definition.string.begin.scss"
1530 },
1531 "11": {
1532 "patterns": [
1533 {
1534 "include": "#interpolation"
1535 },
1536 {
1537 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1538 "name": "constant.character.escape.scss"
1539 },
1540 {
1541 "match": "\\$|}",
1542 "name": "invalid.illegal.scss"
1543 }
1544 ]
1545 },
1546 "12": {
1547 "name": "punctuation.definition.string.end.scss"
1548 },
1549 "13": {
1550 "name": "punctuation.definition.attribute-selector.end.bracket.square.scss"
1551 }
1552 }
1553 },
1554 "selector_class": {
1555 "match": "(?x)\n(\\.) # Valid class-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n | ; # - A semicolon\n)",
1556 "name": "entity.other.attribute-name.class.css",
1557 "captures": {
1558 "1": {
1559 "name": "punctuation.definition.entity.css"
1560 },
1561 "2": {
1562 "patterns": [
1563 {
1564 "include": "#interpolation"
1565 },
1566 {
1567 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1568 "name": "constant.character.escape.scss"
1569 },
1570 {
1571 "match": "\\$|}",
1572 "name": "invalid.illegal.scss"
1573 }
1574 ]
1575 }
1576 }
1577 },
1578 "selector_custom": {
1579 "match": "\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)",
1580 "name": "entity.name.tag.custom.scss"
1581 },
1582 "selector_id": {
1583 "match": "(?x)\n(\\#) # Valid id-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)",
1584 "name": "entity.other.attribute-name.id.css",
1585 "captures": {
1586 "1": {
1587 "name": "punctuation.definition.entity.css"
1588 },
1589 "2": {
1590 "patterns": [
1591 {
1592 "include": "#interpolation"
1593 },
1594 {
1595 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1596 "name": "constant.character.escape.scss"
1597 },
1598 {
1599 "match": "\\$|}",
1600 "name": "invalid.illegal.identifier.scss"
1601 }
1602 ]
1603 }
1604 }
1605 },
1606 "selector_placeholder": {
1607 "match": "(?x)\n(%) # Valid placeholder-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.\\$ # Possible start of interpolation module scope variable\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= ; # - End of statement\n | $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)",
1608 "name": "entity.other.attribute-name.placeholder.css",
1609 "captures": {
1610 "1": {
1611 "name": "punctuation.definition.entity.css"
1612 },
1613 "2": {
1614 "patterns": [
1615 {
1616 "include": "#interpolation"
1617 },
1618 {
1619 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1620 "name": "constant.character.escape.scss"
1621 },
1622 {
1623 "match": "\\$|}",
1624 "name": "invalid.illegal.identifier.scss"
1625 }
1626 ]
1627 }
1628 }
1629 },
1630 "parent_selector_suffix": {
1631 "match": "(?x)\n(?<=&)\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{>+~|] # - Another selector\n | /\\* # - A block comment\n)",
1632 "name": "entity.other.attribute-name.parent-selector-suffix.css",
1633 "captures": {
1634 "1": {
1635 "name": "punctuation.definition.entity.css"
1636 },
1637 "2": {
1638 "patterns": [
1639 {
1640 "include": "#interpolation"
1641 },
1642 {
1643 "match": "\\\\([0-9a-fA-F]{1,6}|.)",
1644 "name": "constant.character.escape.scss"
1645 },
1646 {
1647 "match": "\\$|}",
1648 "name": "invalid.illegal.identifier.scss"
1649 }
1650 ]
1651 }
1652 }
1653 },
1654 "selector_pseudo_class": {
1655 "patterns": [
1656 {
1657 "begin": "((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()",
1658 "beginCaptures": {
1659 "1": {
1660 "name": "entity.other.attribute-name.pseudo-class.css"
1661 },
1662 "2": {
1663 "name": "punctuation.definition.entity.css"
1664 },
1665 "3": {
1666 "name": "punctuation.definition.pseudo-class.begin.bracket.round.css"
1667 }
1668 },
1669 "end": "\\)",
1670 "endCaptures": {
1671 "0": {
1672 "name": "punctuation.definition.pseudo-class.end.bracket.round.css"
1673 }
1674 },
1675 "patterns": [
1676 {
1677 "include": "#interpolation"
1678 },
1679 {
1680 "match": "\\d+",
1681 "name": "constant.numeric.css"
1682 },
1683 {
1684 "match": "(?<=\\d)n\\b|\\b(n|even|odd)\\b",
1685 "name": "constant.other.scss"
1686 },
1687 {
1688 "match": "\\w+",
1689 "name": "invalid.illegal.scss"
1690 }
1691 ]
1692 },
1693 {
1694 "include": "source.css#pseudo-classes"
1695 },
1696 {
1697 "include": "source.css#pseudo-elements"
1698 },
1699 {
1700 "include": "source.css#functional-pseudo-classes"
1701 }
1702 ]
1703 },
1704 "selectors": {
1705 "patterns": [
1706 {
1707 "include": "source.css#tag-names"
1708 },
1709 {
1710 "include": "#selector_custom"
1711 },
1712 {
1713 "include": "#selector_class"
1714 },
1715 {
1716 "include": "#selector_id"
1717 },
1718 {
1719 "include": "#selector_pseudo_class"
1720 },
1721 {
1722 "include": "#tag_wildcard"
1723 },
1724 {
1725 "include": "#tag_parent_reference"
1726 },
1727 {
1728 "include": "source.css#pseudo-elements"
1729 },
1730 {
1731 "include": "#selector_attribute"
1732 },
1733 {
1734 "include": "#selector_placeholder"
1735 },
1736 {
1737 "include": "#parent_selector_suffix"
1738 }
1739 ]
1740 },
1741 "string_double": {
1742 "begin": "\"",
1743 "beginCaptures": {
1744 "0": {
1745 "name": "punctuation.definition.string.begin.scss"
1746 }
1747 },
1748 "end": "\"",
1749 "endCaptures": {
1750 "0": {
1751 "name": "punctuation.definition.string.end.scss"
1752 }
1753 },
1754 "name": "string.quoted.double.scss",
1755 "patterns": [
1756 {
1757 "match": "\\\\(\\h{1,6}|.)",
1758 "name": "constant.character.escape.scss"
1759 },
1760 {
1761 "include": "#interpolation"
1762 }
1763 ]
1764 },
1765 "string_single": {
1766 "begin": "'",
1767 "beginCaptures": {
1768 "0": {
1769 "name": "punctuation.definition.string.begin.scss"
1770 }
1771 },
1772 "end": "'",
1773 "endCaptures": {
1774 "0": {
1775 "name": "punctuation.definition.string.end.scss"
1776 }
1777 },
1778 "name": "string.quoted.single.scss",
1779 "patterns": [
1780 {
1781 "match": "\\\\(\\h{1,6}|.)",
1782 "name": "constant.character.escape.scss"
1783 },
1784 {
1785 "include": "#interpolation"
1786 }
1787 ]
1788 },
1789 "tag_parent_reference": {
1790 "match": "&",
1791 "name": "entity.name.tag.reference.scss"
1792 },
1793 "tag_wildcard": {
1794 "match": "\\*",
1795 "name": "entity.name.tag.wildcard.scss"
1796 },
1797 "variable": {
1798 "patterns": [
1799 {
1800 "include": "#variables"
1801 },
1802 {
1803 "include": "#interpolation"
1804 }
1805 ]
1806 },
1807 "variable_setting": {
1808 "begin": "(?=\\$[\\w-]+\\s*:)",
1809 "end": ";",
1810 "endCaptures": {
1811 "0": {
1812 "name": "punctuation.terminator.rule.scss"
1813 }
1814 },
1815 "contentName": "meta.definition.variable.scss",
1816 "patterns": [
1817 {
1818 "match": "\\$[\\w-]+(?=\\s*:)",
1819 "name": "variable.scss"
1820 },
1821 {
1822 "begin": ":",
1823 "beginCaptures": {
1824 "0": {
1825 "name": "punctuation.separator.key-value.scss"
1826 }
1827 },
1828 "end": "(?=;)",
1829 "patterns": [
1830 {
1831 "include": "#comment_docblock"
1832 },
1833 {
1834 "include": "#comment_block"
1835 },
1836 {
1837 "include": "#comment_line"
1838 },
1839 {
1840 "include": "#map"
1841 },
1842 {
1843 "include": "#property_values"
1844 },
1845 {
1846 "include": "#variable"
1847 },
1848 {
1849 "match": ",",
1850 "name": "punctuation.separator.delimiter.scss"
1851 }
1852 ]
1853 }
1854 ]
1855 },
1856 "variables": {
1857 "patterns": [
1858 {
1859 "match": "\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b",
1860 "captures": {
1861 "1": {
1862 "name": "variable.scss"
1863 },
1864 "2": {
1865 "name": "punctuation.access.module.scss"
1866 },
1867 "3": {
1868 "name": "variable.scss"
1869 }
1870 }
1871 },
1872 {
1873 "match": "(\\$|\\-\\-)[A-Za-z0-9_-]+\\b",
1874 "name": "variable.scss"
1875 }
1876 ]
1877 }
1878 }
1879 }
1880