PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.3.0
Code Block Pro – Beautiful Syntax Highlighting v1.3.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 / pug.tmLanguage.json

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

988 lines 22.9 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/davidrios/pug-tmbundle/blob/master/Syntaxes/Pug.JSON-tmLanguage",
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/davidrios/pug-tmbundle/commit/e67e895f6fb64932aa122e471000fa55d826bff6",
8 "name": "pug",
9 "scopeName": "text.pug",
10 "patterns": [
11 {
12 "match": "^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?",
13 "name": "meta.tag.sgml.doctype.html",
14 "comment": "Doctype declaration."
15 },
16 {
17 "begin": "^(\\s*)//-",
18 "end": "^(?!(\\1\\s)|\\s*$)",
19 "name": "comment.unbuffered.block.pug",
20 "comment": "Unbuffered (pug-only) comments."
21 },
22 {
23 "begin": "^(\\s*)//",
24 "end": "^(?!(\\1\\s)|\\s*$)",
25 "name": "string.comment.buffered.block.pug",
26 "comment": "Buffered (html) comments.",
27 "patterns": [
28 {
29 "captures": {
30 "1": {
31 "name": "invalid.illegal.comment.comment.block.pug"
32 }
33 },
34 "match": "^\\s*(//)(?!-)",
35 "name": "string.comment.buffered.block.pug",
36 "comment": "Buffered comments inside buffered comments will generate invalid html."
37 }
38 ]
39 },
40 {
41 "begin": "<!--",
42 "end": "--\\s*>",
43 "name": "comment.unbuffered.block.pug",
44 "patterns": [
45 {
46 "match": "--",
47 "name": "invalid.illegal.comment.comment.block.pug"
48 }
49 ]
50 },
51 {
52 "begin": "^(\\s*)-$",
53 "end": "^(?!(\\1\\s)|\\s*$)",
54 "name": "source.js",
55 "comment": "Unbuffered code block.",
56 "patterns": [
57 {
58 "include": "source.js"
59 }
60 ]
61 },
62 {
63 "begin": "^(\\s*)(script)((\\.$)|(?=[^\\n]*(text|application)/javascript.*\\.$))",
64 "beginCaptures": {
65 "2": {
66 "name": "entity.name.tag.pug"
67 }
68 },
69 "end": "^(?!(\\1\\s)|\\s*$)",
70 "name": "meta.tag.other",
71 "comment": "Script tag with JavaScript code.",
72 "patterns": [
73 {
74 "begin": "\\G(?=\\()",
75 "end": "$",
76 "patterns": [
77 {
78 "include": "#tag_attributes"
79 }
80 ]
81 },
82 {
83 "begin": "\\G(?=[.#])",
84 "end": "$",
85 "patterns": [
86 {
87 "include": "#complete_tag"
88 }
89 ]
90 },
91 {
92 "include": "source.js"
93 }
94 ]
95 },
96 {
97 "begin": "^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))",
98 "beginCaptures": {
99 "2": {
100 "name": "entity.name.tag.pug"
101 }
102 },
103 "end": "^(?!(\\1\\s)|\\s*$)",
104 "name": "meta.tag.other",
105 "comment": "Style tag with CSS code.",
106 "patterns": [
107 {
108 "begin": "\\G(?=\\()",
109 "end": "$",
110 "patterns": [
111 {
112 "include": "#tag_attributes"
113 }
114 ]
115 },
116 {
117 "begin": "\\G(?=[.#])",
118 "end": "$",
119 "patterns": [
120 {
121 "include": "#complete_tag"
122 }
123 ]
124 },
125 {
126 "include": "source.css"
127 }
128 ]
129 },
130 {
131 "begin": "^(\\s*):(sass)(?=\\(|$)",
132 "beginCaptures": {
133 "2": {
134 "name": "constant.language.name.sass.filter.pug"
135 }
136 },
137 "end": "^(?!(\\1\\s)|\\s*$)",
138 "name": "source.sass.filter.pug",
139 "patterns": [
140 {
141 "include": "#tag_attributes"
142 },
143 {
144 "include": "source.sass"
145 }
146 ]
147 },
148 {
149 "begin": "^(\\s*):(less)(?=\\(|$)",
150 "beginCaptures": {
151 "2": {
152 "name": "constant.language.name.less.filter.pug"
153 }
154 },
155 "end": "^(?!(\\1\\s)|\\s*$)",
156 "name": "source.less.filter.pug",
157 "patterns": [
158 {
159 "include": "#tag_attributes"
160 },
161 {
162 "include": "source.less"
163 }
164 ]
165 },
166 {
167 "begin": "^(\\s*):(stylus)(?=\\(|$)",
168 "beginCaptures": {
169 "2": {
170 "name": "constant.language.name.stylus.filter.pug"
171 }
172 },
173 "end": "^(?!(\\1\\s)|\\s*$)",
174 "patterns": [
175 {
176 "include": "#tag_attributes"
177 },
178 {
179 "include": "source.stylus"
180 }
181 ]
182 },
183 {
184 "begin": "^(\\s*):(coffee(-?script)?)(?=\\(|$)",
185 "beginCaptures": {
186 "2": {
187 "name": "constant.language.name.coffeescript.filter.pug"
188 }
189 },
190 "end": "^(?!(\\1\\s)|\\s*$)",
191 "name": "source.coffeescript.filter.pug",
192 "patterns": [
193 {
194 "include": "#tag_attributes"
195 },
196 {
197 "include": "source.coffee"
198 }
199 ]
200 },
201 {
202 "begin": "^(\\s*)((:(?=.))|(:$))",
203 "beginCaptures": {
204 "4": {
205 "name": "invalid.illegal.empty.generic.filter.pug"
206 }
207 },
208 "end": "^(?!(\\1\\s)|\\s*$)",
209 "comment": "Generic Pug filter.",
210 "patterns": [
211 {
212 "begin": "\\G(?<=:)(?=.)",
213 "end": "$",
214 "name": "name.generic.filter.pug",
215 "patterns": [
216 {
217 "match": "\\G\\(",
218 "name": "invalid.illegal.name.generic.filter.pug"
219 },
220 {
221 "match": "[\\w-]",
222 "name": "constant.language.name.generic.filter.pug"
223 },
224 {
225 "include": "#tag_attributes"
226 },
227 {
228 "match": "\\W",
229 "name": "invalid.illegal.name.generic.filter.pug"
230 }
231 ]
232 }
233 ]
234 },
235 {
236 "begin": "^(\\s*)(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*)(?:(?:(?::\\s+)|(?<=\\)))(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*))*)\\.$)(?:(?:(#[\\w-]+)|(\\.[\\w-]+))|((?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))",
237 "beginCaptures": {
238 "2": {
239 "name": "entity.other.attribute-name.id.pug"
240 },
241 "3": {
242 "name": "entity.other.attribute-name.class.pug"
243 },
244 "4": {
245 "name": "meta.tag.other entity.name.tag.pug"
246 }
247 },
248 "end": "^(?!(\\1\\s)|\\s*$)",
249 "comment": "Generated from dot_block_tag.py",
250 "patterns": [
251 {
252 "include": "#tag_attributes"
253 },
254 {
255 "include": "#complete_tag"
256 },
257 {
258 "begin": "^(?=.)",
259 "end": "$",
260 "name": "text.block.pug",
261 "patterns": [
262 {
263 "include": "#inline_pug"
264 },
265 {
266 "include": "#embedded_html"
267 },
268 {
269 "include": "#html_entity"
270 },
271 {
272 "include": "#interpolated_value"
273 },
274 {
275 "include": "#interpolated_error"
276 }
277 ]
278 }
279 ]
280 },
281 {
282 "begin": "^\\s*",
283 "end": "$",
284 "comment": "All constructs that generally span a single line starting with any number of white-spaces.",
285 "patterns": [
286 {
287 "include": "#inline_pug"
288 },
289 {
290 "include": "#blocks_and_includes"
291 },
292 {
293 "include": "#unbuffered_code"
294 },
295 {
296 "include": "#mixin_definition"
297 },
298 {
299 "include": "#mixin_call"
300 },
301 {
302 "include": "#flow_control"
303 },
304 {
305 "include": "#case_conds"
306 },
307 {
308 "begin": "\\|",
309 "end": "$",
310 "name": "text.block.pipe.pug",
311 "comment": "Tag pipe text line.",
312 "patterns": [
313 {
314 "include": "#inline_pug"
315 },
316 {
317 "include": "#embedded_html"
318 },
319 {
320 "include": "#html_entity"
321 },
322 {
323 "include": "#interpolated_value"
324 },
325 {
326 "include": "#interpolated_error"
327 }
328 ]
329 },
330 {
331 "include": "#printed_expression"
332 },
333 {
334 "begin": "\\G(?=(#[^\\{\\w-])|[^\\w.#])",
335 "end": "$",
336 "comment": "Line starting with characters incompatible with tag name/id/class is standalone text.",
337 "patterns": [
338 {
339 "begin": "</?(?=[!#])",
340 "end": ">|$",
341 "patterns": [
342 {
343 "include": "#inline_pug"
344 },
345 {
346 "include": "#interpolated_value"
347 },
348 {
349 "include": "#interpolated_error"
350 }
351 ]
352 },
353 {
354 "include": "#inline_pug"
355 },
356 {
357 "include": "#embedded_html"
358 },
359 {
360 "include": "#html_entity"
361 },
362 {
363 "include": "#interpolated_value"
364 },
365 {
366 "include": "#interpolated_error"
367 }
368 ]
369 },
370 {
371 "include": "#complete_tag"
372 }
373 ]
374 }
375 ],
376 "repository": {
377 "blocks_and_includes": {
378 "captures": {
379 "1": {
380 "name": "storage.type.import.include.pug"
381 },
382 "4": {
383 "name": "variable.control.import.include.pug"
384 }
385 },
386 "match": "(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$",
387 "name": "meta.first-class.pug",
388 "comment": "Template blocks and includes."
389 },
390 "unbuffered_code": {
391 "begin": "(-|(([a-zA-Z0-9_]+)\\s+=))",
392 "beginCaptures": {
393 "3": {
394 "name": "variable.parameter.javascript.embedded.pug"
395 }
396 },
397 "end": "(?=\\])|(({\\s*)?$)",
398 "name": "source.js",
399 "comment": "name = function() {}",
400 "patterns": [
401 {
402 "include": "#js_brackets"
403 },
404 {
405 "include": "#babel_parens"
406 },
407 {
408 "include": "source.js"
409 }
410 ]
411 },
412 "mixin_definition": {
413 "match": "(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$",
414 "captures": {
415 "1": {
416 "name": "storage.type.function.pug"
417 },
418 "2": {
419 "name": "meta.tag.other entity.name.function.pug"
420 },
421 "3": {
422 "name": "punctuation.definition.parameters.begin.js"
423 },
424 "4": {
425 "name": "variable.parameter.function.js"
426 },
427 "5": {
428 "name": "punctuation.definition.parameters.begin.js"
429 }
430 }
431 },
432 "mixin_call": {
433 "begin": "((?:mixin\\s+)|\\+)([\\w-]+)",
434 "beginCaptures": {
435 "1": {
436 "name": "storage.type.function.pug"
437 },
438 "2": {
439 "name": "meta.tag.other entity.name.function.pug"
440 }
441 },
442 "end": "(?!\\()|$",
443 "patterns": [
444 {
445 "begin": "(?<!\\))\\(",
446 "end": "\\)",
447 "name": "args.mixin.pug",
448 "patterns": [
449 {
450 "include": "#js_parens"
451 },
452 {
453 "include": "#string"
454 },
455 {
456 "match": "([^\\s(),=/]+)\\s*=\\s*",
457 "captures": {
458 "1": {
459 "name": "meta.tag.other entity.other.attribute-name.tag.pug"
460 }
461 }
462 },
463 {
464 "include": "source.js"
465 }
466 ]
467 },
468 {
469 "include": "#tag_attributes"
470 }
471 ]
472 },
473 "flow_control": {
474 "begin": "(for|if|else if|else|each|until|while|unless|case)(\\s+|$)",
475 "captures": {
476 "1": {
477 "name": "storage.type.function.pug"
478 }
479 },
480 "end": "$",
481 "name": "meta.control.flow.pug",
482 "comment": "Pug control flow.",
483 "patterns": [
484 {
485 "begin": "",
486 "end": "$",
487 "name": "js.embedded.control.flow.pug",
488 "patterns": [
489 {
490 "include": "source.js"
491 }
492 ]
493 }
494 ]
495 },
496 "case_when_paren": {
497 "begin": "\\(",
498 "end": "\\)",
499 "name": "js.when.control.flow.pug",
500 "patterns": [
501 {
502 "include": "#case_when_paren"
503 },
504 {
505 "match": ":",
506 "name": "invalid.illegal.name.tag.pug"
507 },
508 {
509 "include": "source.js"
510 }
511 ]
512 },
513 "case_conds": {
514 "begin": "(default|when)((\\s+|(?=:))|$)",
515 "captures": {
516 "1": {
517 "name": "storage.type.function.pug"
518 }
519 },
520 "end": "$",
521 "name": "meta.control.flow.pug",
522 "comment": "Pug case conditionals.",
523 "patterns": [
524 {
525 "begin": "\\G(?!:)",
526 "end": "(?=:\\s+)|$",
527 "name": "js.embedded.control.flow.pug",
528 "patterns": [
529 {
530 "include": "#case_when_paren"
531 },
532 {
533 "include": "source.js"
534 }
535 ]
536 },
537 {
538 "begin": ":\\s+",
539 "end": "$",
540 "name": "tag.case.control.flow.pug",
541 "patterns": [
542 {
543 "include": "#complete_tag"
544 }
545 ]
546 }
547 ]
548 },
549 "complete_tag": {
550 "begin": "(?=[\\w.#])|(:\\s*)",
551 "end": "(\\.?$)|(?=:.)",
552 "patterns": [
553 {
554 "include": "#blocks_and_includes"
555 },
556 {
557 "include": "#unbuffered_code"
558 },
559 {
560 "include": "#mixin_call"
561 },
562 {
563 "include": "#flow_control"
564 },
565 {
566 "match": "(?<=:)\\w.*$",
567 "name": "invalid.illegal.name.tag.pug"
568 },
569 {
570 "include": "#tag_name"
571 },
572 {
573 "include": "#tag_id"
574 },
575 {
576 "include": "#tag_classes"
577 },
578 {
579 "include": "#tag_attributes"
580 },
581 {
582 "include": "#tag_mixin_attributes"
583 },
584 {
585 "match": "((\\.)\\s+$)|((:)\\s*$)",
586 "captures": {
587 "2": {
588 "name": "invalid.illegal.end.tag.pug"
589 },
590 "4": {
591 "name": "invalid.illegal.end.tag.pug"
592 }
593 }
594 },
595 {
596 "include": "#printed_expression"
597 },
598 {
599 "include": "#tag_text"
600 }
601 ]
602 },
603 "tag_name": {
604 "begin": "([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))",
605 "end": "(\\G(?<!\\5[^\\w-]))|\\}|$",
606 "name": "meta.tag.other entity.name.tag.pug",
607 "patterns": [
608 {
609 "begin": "\\G(?<=\\{)",
610 "end": "(?=\\})",
611 "name": "meta.tag.other entity.name.tag.pug",
612 "patterns": [
613 {
614 "match": "{",
615 "name": "invalid.illegal.tag.pug"
616 },
617 {
618 "include": "source.js"
619 }
620 ]
621 }
622 ]
623 },
624 "tag_id": {
625 "match": "#[\\w-]+",
626 "name": "entity.other.attribute-name.id.pug"
627 },
628 "tag_classes": {
629 "match": "\\.([^\\w-])?[\\w-]*",
630 "captures": {
631 "1": {
632 "name": "invalid.illegal.tag.pug"
633 }
634 },
635 "name": "entity.other.attribute-name.class.pug"
636 },
637 "tag_attributes": {
638 "begin": "(\\(\\s*)",
639 "captures": {
640 "1": {
641 "name": "constant.name.attribute.tag.pug"
642 }
643 },
644 "end": "(\\))",
645 "name": "meta.tag.other",
646 "patterns": [
647 {
648 "include": "#tag_attribute_name_paren"
649 },
650 {
651 "include": "#tag_attribute_name"
652 },
653 {
654 "match": "!(?!=)",
655 "name": "invalid.illegal.tag.pug"
656 },
657 {
658 "begin": "=\\s*",
659 "end": "$|(?=,|(?:\\s+[^!%&*-+~|<>:?/])|\\))",
660 "name": "attribute_value",
661 "patterns": [
662 {
663 "include": "#string"
664 },
665 {
666 "include": "#js_parens"
667 },
668 {
669 "include": "#js_brackets"
670 },
671 {
672 "include": "#js_braces"
673 },
674 {
675 "include": "source.js"
676 }
677 ]
678 },
679 {
680 "begin": "(?<=[%&*-+~|<>:?/])\\s+",
681 "end": "$|(?=,|(?:\\s+[^!%&*-+~|<>:?/])|\\))",
682 "name": "attribute_value2",
683 "patterns": [
684 {
685 "include": "#string"
686 },
687 {
688 "include": "#js_parens"
689 },
690 {
691 "include": "#js_brackets"
692 },
693 {
694 "include": "#js_braces"
695 },
696 {
697 "include": "source.js"
698 }
699 ]
700 }
701 ]
702 },
703 "tag_attribute_name": {
704 "match": "([^\\s(),=/!]+)\\s*",
705 "captures": {
706 "1": {
707 "name": "entity.other.attribute-name.tag.pug"
708 }
709 }
710 },
711 "tag_attribute_name_paren": {
712 "begin": "\\(\\s*",
713 "end": "\\)",
714 "name": "entity.other.attribute-name.tag.pug",
715 "patterns": [
716 {
717 "include": "#tag_attribute_name_paren"
718 },
719 {
720 "include": "#tag_attribute_name"
721 }
722 ]
723 },
724 "tag_mixin_attributes": {
725 "begin": "(&attributes\\()",
726 "captures": {
727 "1": {
728 "name": "entity.name.function.pug"
729 }
730 },
731 "end": "(\\))",
732 "name": "meta.tag.other",
733 "patterns": [
734 {
735 "match": "attributes(?=\\))",
736 "name": "storage.type.keyword.pug"
737 },
738 {
739 "include": "source.js"
740 }
741 ]
742 },
743 "tag_text": {
744 "begin": "(?=.)",
745 "end": "$",
746 "patterns": [
747 {
748 "include": "#inline_pug"
749 },
750 {
751 "include": "#embedded_html"
752 },
753 {
754 "include": "#html_entity"
755 },
756 {
757 "include": "#interpolated_value"
758 },
759 {
760 "include": "#interpolated_error"
761 }
762 ]
763 },
764 "inline_pug_text": {
765 "begin": "",
766 "end": "(?=\\])",
767 "patterns": [
768 {
769 "begin": "\\[",
770 "end": "\\]",
771 "patterns": [
772 {
773 "include": "#inline_pug_text"
774 }
775 ]
776 },
777 {
778 "include": "#inline_pug"
779 },
780 {
781 "include": "#embedded_html"
782 },
783 {
784 "include": "#html_entity"
785 },
786 {
787 "include": "#interpolated_value"
788 },
789 {
790 "include": "#interpolated_error"
791 }
792 ]
793 },
794 "inline_pug": {
795 "begin": "(?<!\\\\)(#\\[)",
796 "captures": {
797 "1": {
798 "name": "entity.name.function.pug"
799 },
800 "2": {
801 "name": "entity.name.function.pug"
802 }
803 },
804 "end": "(\\])",
805 "name": "inline.pug",
806 "patterns": [
807 {
808 "include": "#inline_pug"
809 },
810 {
811 "include": "#mixin_call"
812 },
813 {
814 "begin": "(?<!\\])(?=[\\w.#])|(:\\s*)",
815 "end": "(?=\\]|(:.)|=|\\s)",
816 "name": "tag.inline.pug",
817 "patterns": [
818 {
819 "include": "#tag_name"
820 },
821 {
822 "include": "#tag_id"
823 },
824 {
825 "include": "#tag_classes"
826 },
827 {
828 "include": "#tag_attributes"
829 },
830 {
831 "include": "#tag_mixin_attributes"
832 },
833 {
834 "include": "#inline_pug"
835 },
836 {
837 "match": "\\[",
838 "name": "invalid.illegal.tag.pug"
839 }
840 ]
841 },
842 {
843 "include": "#unbuffered_code"
844 },
845 {
846 "include": "#printed_expression"
847 },
848 {
849 "match": "\\[",
850 "name": "invalid.illegal.tag.pug"
851 },
852 {
853 "include": "#inline_pug_text"
854 }
855 ]
856 },
857 "html_entity": {
858 "patterns": [
859 {
860 "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
861 "name": "constant.character.entity.html.text.pug"
862 },
863 {
864 "match": "[<>&]",
865 "name": "invalid.illegal.html_entity.text.pug"
866 }
867 ]
868 },
869 "interpolated_value": {
870 "begin": "(?<!\\\\)[#!]\\{(?=.*?\\})",
871 "end": "\\}",
872 "name": "string.interpolated.pug",
873 "patterns": [
874 {
875 "match": "{",
876 "name": "invalid.illegal.tag.pug"
877 },
878 {
879 "include": "source.js"
880 }
881 ]
882 },
883 "interpolated_error": {
884 "match": "(?<!\\\\)[#!]\\{(?=[^}]*$)",
885 "name": "invalid.illegal.tag.pug"
886 },
887 "printed_expression": {
888 "begin": "(!?\\=)\\s*",
889 "captures": {
890 "1": {
891 "name": "constant"
892 }
893 },
894 "end": "(?=\\])|$",
895 "name": "source.js",
896 "patterns": [
897 {
898 "include": "#js_brackets"
899 },
900 {
901 "include": "source.js"
902 }
903 ]
904 },
905 "string": {
906 "begin": "(['\"])",
907 "end": "(?<!\\\\)\\1",
908 "name": "string.quoted.pug",
909 "patterns": [
910 {
911 "match": "\\\\((x[0-9a-fA-F]{2})|(u[0-9]{4})|.)",
912 "name": "constant.character.quoted.pug"
913 },
914 {
915 "include": "#interpolated_value"
916 },
917 {
918 "include": "#interpolated_error"
919 }
920 ]
921 },
922 "embedded_html": {
923 "begin": "(?=<[^>]*>)",
924 "end": "$|(?=>)",
925 "name": "html",
926 "patterns": [
927 {
928 "include": "text.html.basic"
929 },
930 {
931 "include": "#interpolated_value"
932 },
933 {
934 "include": "#interpolated_error"
935 }
936 ]
937 },
938 "js_parens": {
939 "begin": "\\(",
940 "end": "\\)",
941 "patterns": [
942 {
943 "include": "#js_parens"
944 },
945 {
946 "include": "source.js"
947 }
948 ]
949 },
950 "js_brackets": {
951 "begin": "\\[",
952 "end": "\\]",
953 "patterns": [
954 {
955 "include": "#js_brackets"
956 },
957 {
958 "include": "source.js"
959 }
960 ]
961 },
962 "js_braces": {
963 "begin": "\\{",
964 "end": "\\}",
965 "patterns": [
966 {
967 "include": "#js_braces"
968 },
969 {
970 "include": "source.js"
971 }
972 ]
973 },
974 "babel_parens": {
975 "begin": "\\(",
976 "end": "\\)|(({\\s*)?$)",
977 "patterns": [
978 {
979 "include": "#babel_parens"
980 },
981 {
982 "include": "source.js"
983 }
984 ]
985 }
986 }
987 }
988