PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.6
Code Block Pro – Beautiful Syntax Highlighting v1.27.6
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 / hjson.tmLanguage.json

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

820 lines 20.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "fileTypes": ["hjson"],
3 "foldingStartMarker": "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [{\\[] # the start of an object or array\n (?! # but not followed by\n .* # whatever\n [}\\]] # and the close of an object or array\n ,? # an optional comma\n \\s* # some optional space\n $ # at the end of the line\n )\n | # ...or...\n [{\\[] # the start of an object or array\n \\s* # some optional space\n $ # at the end of the line\n )",
4 "foldingStopMarker": "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [}\\]] # and the close of an object or array\n )",
5 "keyEquivalent": "^~J",
6 "name": "hjson",
7 "patterns": [
8 {
9 "include": "#comments"
10 },
11 {
12 "include": "#value"
13 },
14 {
15 "match": "[^\\s]",
16 "name": "invalid.illegal.excess-characters.hjson"
17 }
18 ],
19 "repository": {
20 "array": {
21 "begin": "\\[",
22 "beginCaptures": {
23 "0": {
24 "name": "punctuation.definition.array.begin.hjson"
25 }
26 },
27 "end": "(\\])(?:\\s*([^,\\s]+))?",
28 "endCaptures": {
29 "1": {
30 "name": "punctuation.definition.array.end.hjson"
31 },
32 "2": {
33 "name": "invalid.illegal.value.hjson"
34 }
35 },
36 "name": "meta.structure.array.hjson",
37 "patterns": [
38 {
39 "include": "#arrayContent"
40 }
41 ]
42 },
43 "arrayArray": {
44 "begin": "\\[",
45 "beginCaptures": {
46 "0": {
47 "name": "punctuation.definition.array.begin.hjson"
48 }
49 },
50 "end": "(\\])(?:\\s*([^,\\s\\]]+))?",
51 "endCaptures": {
52 "1": {
53 "name": "punctuation.definition.array.end.hjson"
54 },
55 "2": {
56 "name": "invalid.illegal.value.hjson"
57 }
58 },
59 "name": "meta.structure.array.hjson",
60 "patterns": [
61 {
62 "include": "#arrayContent"
63 }
64 ]
65 },
66 "arrayConstant": {
67 "captures": {
68 "1": {
69 "name": "constant.language.hjson"
70 },
71 "2": {
72 "name": "punctuation.separator.array.after-const.hjson"
73 }
74 },
75 "match": "\\b(true|false|null)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\]))"
76 },
77 "arrayContent": {
78 "name": "meta.structure.array.hjson",
79 "patterns": [
80 {
81 "include": "#comments"
82 },
83 {
84 "include": "#arrayValue"
85 },
86 {
87 "begin": "(?<=\\[)|,",
88 "beginCaptures": {
89 "1": {
90 "name": "punctuation.separator.dictionary.pair.hjson"
91 }
92 },
93 "end": "(?=[^\\s,/#])|(?=/[^/*])",
94 "patterns": [
95 {
96 "include": "#comments"
97 },
98 {
99 "match": ",",
100 "name": "invalid.illegal.extra-comma.hjson"
101 }
102 ]
103 },
104 {
105 "match": ",",
106 "name": "punctuation.separator.array.hjson"
107 },
108 {
109 "match": "[^\\s\\]]",
110 "name": "invalid.illegal.expected-array-separator.hjson"
111 }
112 ]
113 },
114 "arrayJstring": {
115 "patterns": [
116 {
117 "begin": "\"",
118 "beginCaptures": {
119 "0": {
120 "name": "punctuation.definition.string.begin.hjson"
121 }
122 },
123 "end": "(\")(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?",
124 "endCaptures": {
125 "1": {
126 "name": "punctuation.definition.string.end.hjson"
127 },
128 "2": {
129 "name": "invalid.illegal.value.hjson"
130 }
131 },
132 "name": "string.quoted.double.hjson",
133 "patterns": [
134 {
135 "include": "#jstringDoubleContent"
136 }
137 ]
138 },
139 {
140 "begin": "'",
141 "beginCaptures": {
142 "0": {
143 "name": "punctuation.definition.string.begin.hjson"
144 }
145 },
146 "end": "(')(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?",
147 "endCaptures": {
148 "1": {
149 "name": "punctuation.definition.string.end.hjson"
150 },
151 "2": {
152 "name": "invalid.illegal.value.hjson"
153 }
154 },
155 "name": "string.quoted.single.hjson",
156 "patterns": [
157 {
158 "include": "#jstringSingleContent"
159 }
160 ]
161 }
162 ]
163 },
164 "arrayMstring": {
165 "begin": "'''",
166 "beginCaptures": {
167 "0": {
168 "name": "punctuation.definition.string.begin.hjson"
169 }
170 },
171 "end": "(''')(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?",
172 "endCaptures": {
173 "1": {
174 "name": "punctuation.definition.string.end.hjson"
175 },
176 "2": {
177 "name": "invalid.illegal.value.hjson"
178 }
179 },
180 "name": "string.quoted.multiline.hjson"
181 },
182 "arrayNumber": {
183 "captures": {
184 "1": {
185 "name": "constant.numeric.hjson"
186 },
187 "2": {
188 "name": "punctuation.separator.array.after-num.hjson"
189 }
190 },
191 "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\]))"
192 },
193 "arrayObject": {
194 "begin": "\\{",
195 "beginCaptures": {
196 "0": {
197 "name": "punctuation.definition.dictionary.begin.hjson"
198 }
199 },
200 "end": "(\\}|(?<=\\}))(?:\\s*([^,\\s\\]]+))?",
201 "endCaptures": {
202 "1": {
203 "name": "punctuation.definition.dictionary.end.hjson"
204 },
205 "2": {
206 "name": "invalid.illegal.value.hjson"
207 }
208 },
209 "name": "meta.structure.dictionary.hjson",
210 "patterns": [
211 {
212 "include": "#objectContent"
213 }
214 ]
215 },
216 "arrayString": {
217 "patterns": [
218 {
219 "include": "#arrayMstring"
220 },
221 {
222 "include": "#arrayJstring"
223 },
224 {
225 "include": "#ustring"
226 }
227 ]
228 },
229 "arrayValue": {
230 "patterns": [
231 {
232 "include": "#arrayNumber"
233 },
234 {
235 "include": "#arrayConstant"
236 },
237 {
238 "include": "#arrayString"
239 },
240 {
241 "include": "#arrayObject"
242 },
243 {
244 "include": "#arrayArray"
245 }
246 ]
247 },
248 "comments": {
249 "patterns": [
250 {
251 "captures": {
252 "1": {
253 "name": "punctuation.definition.comment.hjson"
254 }
255 },
256 "match": "^\\s*(#).*(?:\\n)?",
257 "name": "comment.line.hash"
258 },
259 {
260 "captures": {
261 "1": {
262 "name": "punctuation.definition.comment.hjson"
263 }
264 },
265 "match": "^\\s*(//).*(?:\\n)?",
266 "name": "comment.line.double-slash"
267 },
268 {
269 "begin": "^\\s*/\\*",
270 "beginCaptures": {
271 "1": {
272 "name": "punctuation.definition.comment.hjson"
273 }
274 },
275 "end": "\\*/(?:\\s*\\n)?",
276 "endCaptures": {
277 "1": {
278 "name": "punctuation.definition.comment.hjson"
279 }
280 },
281 "name": "comment.block.double-slash"
282 },
283 {
284 "captures": {
285 "1": {
286 "name": "punctuation.definition.comment.hjson"
287 }
288 },
289 "match": "(#)[^\\n]*",
290 "name": "comment.line.hash"
291 },
292 {
293 "captures": {
294 "1": {
295 "name": "punctuation.definition.comment.hjson"
296 }
297 },
298 "match": "(//)[^\\n]*",
299 "name": "comment.line.double-slash"
300 },
301 {
302 "begin": "/\\*",
303 "beginCaptures": {
304 "1": {
305 "name": "punctuation.definition.comment.hjson"
306 }
307 },
308 "end": "\\*/",
309 "endCaptures": {
310 "1": {
311 "name": "punctuation.definition.comment.hjson"
312 }
313 },
314 "name": "comment.block.double-slash"
315 }
316 ]
317 },
318 "commentsNewline": {
319 "patterns": [
320 {
321 "captures": {
322 "1": {
323 "name": "punctuation.definition.comment.hjson"
324 }
325 },
326 "match": "(#).*\\n",
327 "name": "comment.line.hash"
328 },
329 {
330 "captures": {
331 "1": {
332 "name": "punctuation.definition.comment.hjson"
333 }
334 },
335 "match": "(//).*\\n",
336 "name": "comment.line.double-slash"
337 },
338 {
339 "begin": "/\\*",
340 "beginCaptures": {
341 "1": {
342 "name": "punctuation.definition.comment.hjson"
343 }
344 },
345 "end": "\\*/(\\s*\\n)?",
346 "endCaptures": {
347 "1": {
348 "name": "punctuation.definition.comment.hjson"
349 }
350 },
351 "name": "comment.block.double-slash"
352 }
353 ]
354 },
355 "constant": {
356 "captures": {
357 "1": {
358 "name": "constant.language.hjson"
359 }
360 },
361 "match": "\\b(true|false|null)[\\t ]*(?=$|#|/\\*|//|\\])"
362 },
363 "jstring": {
364 "patterns": [
365 {
366 "begin": "\"",
367 "beginCaptures": {
368 "0": {
369 "name": "punctuation.definition.string.begin.hjson"
370 }
371 },
372 "end": "(\")(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?",
373 "endCaptures": {
374 "1": {
375 "name": "punctuation.definition.string.end.hjson"
376 },
377 "2": {
378 "name": "invalid.illegal.value.hjson"
379 }
380 },
381 "name": "string.quoted.double.hjson",
382 "patterns": [
383 {
384 "include": "#jstringDoubleContent"
385 }
386 ]
387 },
388 {
389 "begin": "'",
390 "beginCaptures": {
391 "0": {
392 "name": "punctuation.definition.string.begin.hjson"
393 }
394 },
395 "end": "(')(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?",
396 "endCaptures": {
397 "1": {
398 "name": "punctuation.definition.string.end.hjson"
399 },
400 "2": {
401 "name": "invalid.illegal.value.hjson"
402 }
403 },
404 "name": "string.quoted.single.hjson",
405 "patterns": [
406 {
407 "include": "#jstringSingleContent"
408 }
409 ]
410 }
411 ]
412 },
413 "jstringDoubleContent": {
414 "patterns": [
415 {
416 "match": "\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})",
417 "name": "constant.character.escape.hjson"
418 },
419 {
420 "match": "\\\\.",
421 "name": "invalid.illegal.unrecognized-string-escape.hjson"
422 },
423 {
424 "match": "[^\"]*[^\\n\\r\"\\\\]$",
425 "name": "invalid.illegal.string.hjson"
426 }
427 ]
428 },
429 "jstringSingleContent": {
430 "patterns": [
431 {
432 "match": "\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})",
433 "name": "constant.character.escape.hjson"
434 },
435 {
436 "match": "\\\\.",
437 "name": "invalid.illegal.unrecognized-string-escape.hjson"
438 },
439 {
440 "match": "[^']*[^\\n\\r'\\\\]$",
441 "name": "invalid.illegal.string.hjson"
442 }
443 ]
444 },
445 "key": {
446 "begin": "(?x:\n (\n (?:[^:,\\{\\}\\[\\]\\s\"'][^:,\\{\\}\\[\\]\\s]*) |\n (?: # json string w/ '\n '\n (?:\n [^\\\\'] | # anything but an escape character or quote\n (\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})) | # escape characters\n (\\\\.) # bad escape characters\n )*\n '\n ) |\n (?: # json string w/ \"\n \"\n (?:\n [^\\\\\"] | # anything but an escape character or quote\n (\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})) | # escape characters\n (\\\\.) # bad escape characters\n )*\n \"\n )\n )\n \\s*\n (?!\\n)\n ([,\\{\\}\\[\\]]*)\n )",
447 "beginCaptures": {
448 "0": {
449 "name": "meta.structure.key-value.begin.hjson"
450 },
451 "1": {
452 "name": "support.type.property-name.hjson"
453 },
454 "2": {
455 "name": "constant.character.escape.hjson"
456 },
457 "3": {
458 "name": "invalid.illegal.unrecognized-string-escape.hjson"
459 },
460 "4": {
461 "name": "constant.character.escape.hjson"
462 },
463 "5": {
464 "name": "invalid.illegal.unrecognized-string-escape.hjson"
465 },
466 "6": {
467 "name": "invalid.illegal.separator.hjson"
468 },
469 "7": {
470 "name": "invalid.illegal.property-name.hjson"
471 }
472 },
473 "end": "(?<!^|:)\\s*\\n|(?=})|(,)",
474 "endCaptures": {
475 "1": {
476 "name": "punctuation.separator.dictionary.pair.hjson"
477 }
478 },
479 "patterns": [
480 {
481 "include": "#commentsNewline"
482 },
483 {
484 "include": "#keyValue"
485 },
486 {
487 "match": "[^\\s]",
488 "name": "invalid.illegal.object-property.hjson"
489 }
490 ]
491 },
492 "keyValue": {
493 "begin": "(?x:\n \\s*\n (:)\n \\s* # capture the line ending if there is no value on the same line\n ([,\\}\\]]*)\n )",
494 "beginCaptures": {
495 "1": {
496 "name": "punctuation.separator.dictionary.key-value.hjson"
497 },
498 "2": {
499 "name": "invalid.illegal.object-property.hjson"
500 }
501 },
502 "end": "(?<!^)\\s*(?=\\n)|(?=[},])",
503 "name": "meta.structure.key-value.hjson",
504 "patterns": [
505 {
506 "include": "#comments"
507 },
508 {
509 "match": "^\\s+"
510 },
511 {
512 "include": "#objectValue"
513 },
514 {
515 "captures": {
516 "1": {
517 "name": "invalid.illegal.object-property.closing-bracket.hjson"
518 }
519 },
520 "match": "^\\s*(\\})"
521 },
522 {
523 "match": "[^\\s]",
524 "name": "invalid.illegal.object-property.hjson"
525 }
526 ]
527 },
528 "mstring": {
529 "begin": "'''",
530 "beginCaptures": {
531 "0": {
532 "name": "punctuation.definition.string.begin.hjson"
533 }
534 },
535 "end": "(''')(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?",
536 "endCaptures": {
537 "1": {
538 "name": "punctuation.definition.string.end.hjson"
539 },
540 "2": {
541 "name": "invalid.illegal.value.hjson"
542 }
543 },
544 "name": "string.quoted.multiline.hjson"
545 },
546 "number": {
547 "captures": {
548 "1": {
549 "name": "constant.numeric.hjson"
550 }
551 },
552 "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)[\\t ]*(?=$|#|/\\*|//|\\])"
553 },
554 "object": {
555 "begin": "\\{",
556 "beginCaptures": {
557 "0": {
558 "name": "punctuation.definition.dictionary.begin.hjson"
559 }
560 },
561 "end": "(\\}|(?<=\\}))(?:\\s*([^,\\s]+))?",
562 "endCaptures": {
563 "1": {
564 "name": "punctuation.definition.dictionary.end.hjson"
565 },
566 "2": {
567 "name": "invalid.illegal.value.hjson"
568 }
569 },
570 "name": "meta.structure.dictionary.hjson",
571 "patterns": [
572 {
573 "include": "#objectContent"
574 }
575 ]
576 },
577 "objectArray": {
578 "begin": "\\[",
579 "beginCaptures": {
580 "0": {
581 "name": "punctuation.definition.array.begin.hjson"
582 }
583 },
584 "end": "(\\])(?:\\s*([^,\\s\\}]+))?",
585 "endCaptures": {
586 "1": {
587 "name": "punctuation.definition.array.end.hjson"
588 },
589 "2": {
590 "name": "invalid.illegal.value.hjson"
591 }
592 },
593 "name": "meta.structure.array.hjson",
594 "patterns": [
595 {
596 "include": "#arrayContent"
597 }
598 ]
599 },
600 "objectConstant": {
601 "captures": {
602 "1": {
603 "name": "constant.language.hjson"
604 },
605 "2": {
606 "name": "punctuation.separator.dictionary.pair.after-const.hjson"
607 }
608 },
609 "match": "\\b(true|false|null)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\}))"
610 },
611 "objectContent": {
612 "patterns": [
613 {
614 "include": "#comments"
615 },
616 {
617 "include": "#key"
618 },
619 {
620 "match": ":[.|\\s]",
621 "name": "invalid.illegal.object-property.hjson"
622 },
623 {
624 "begin": "(?<=\\{|,)|,",
625 "beginCaptures": {
626 "1": {
627 "name": "punctuation.separator.dictionary.pair.hjson"
628 }
629 },
630 "end": "(?=[^\\s,/#])|(?=/[^/*])",
631 "patterns": [
632 {
633 "include": "#comments"
634 },
635 {
636 "match": ",",
637 "name": "invalid.illegal.extra-comma.hjson"
638 }
639 ]
640 },
641 {
642 "match": "[^\\s]",
643 "name": "invalid.illegal.object-property.hjson"
644 }
645 ]
646 },
647 "objectJstring": {
648 "patterns": [
649 {
650 "begin": "\"",
651 "beginCaptures": {
652 "0": {
653 "name": "punctuation.definition.string.begin.hjson"
654 }
655 },
656 "end": "(\")(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?",
657 "endCaptures": {
658 "1": {
659 "name": "punctuation.definition.string.end.hjson"
660 },
661 "2": {
662 "name": "invalid.illegal.value.hjson"
663 }
664 },
665 "name": "string.quoted.double.hjson",
666 "patterns": [
667 {
668 "include": "#jstringDoubleContent"
669 }
670 ]
671 },
672 {
673 "begin": "'",
674 "beginCaptures": {
675 "0": {
676 "name": "punctuation.definition.string.begin.hjson"
677 }
678 },
679 "end": "(')(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?",
680 "endCaptures": {
681 "1": {
682 "name": "punctuation.definition.string.end.hjson"
683 },
684 "2": {
685 "name": "invalid.illegal.value.hjson"
686 }
687 },
688 "name": "string.quoted.single.hjson",
689 "patterns": [
690 {
691 "include": "#jstringSingleContent"
692 }
693 ]
694 }
695 ]
696 },
697 "objectMstring": {
698 "begin": "'''",
699 "beginCaptures": {
700 "0": {
701 "name": "punctuation.definition.string.begin.hjson"
702 }
703 },
704 "end": "(''')(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?",
705 "endCaptures": {
706 "1": {
707 "name": "punctuation.definition.string.end.hjson"
708 },
709 "2": {
710 "name": "invalid.illegal.value.hjson"
711 }
712 },
713 "name": "string.quoted.multiline.hjson"
714 },
715 "objectNumber": {
716 "captures": {
717 "1": {
718 "name": "constant.numeric.hjson"
719 },
720 "2": {
721 "name": "punctuation.separator.dictionary.pair.after-num.hjson"
722 }
723 },
724 "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\}))"
725 },
726 "objectObject": {
727 "begin": "\\{",
728 "beginCaptures": {
729 "0": {
730 "name": "punctuation.definition.dictionary.begin.hjson"
731 }
732 },
733 "end": "(\\}|(?<=\\})\\}?)(?:\\s*([^,\\s}]+))?",
734 "endCaptures": {
735 "1": {
736 "name": "punctuation.definition.dictionary.end.hjson"
737 },
738 "2": {
739 "name": "invalid.illegal.value.hjson"
740 }
741 },
742 "name": "meta.structure.dictionary.hjson",
743 "patterns": [
744 {
745 "include": "#objectContent"
746 }
747 ]
748 },
749 "objectString": {
750 "patterns": [
751 {
752 "include": "#objectMstring"
753 },
754 {
755 "include": "#objectJstring"
756 },
757 {
758 "include": "#ustring"
759 }
760 ]
761 },
762 "objectValue": {
763 "patterns": [
764 {
765 "include": "#objectNumber"
766 },
767 {
768 "include": "#objectConstant"
769 },
770 {
771 "include": "#objectString"
772 },
773 {
774 "include": "#objectObject"
775 },
776 {
777 "include": "#objectArray"
778 }
779 ]
780 },
781 "string": {
782 "patterns": [
783 {
784 "include": "#mstring"
785 },
786 {
787 "include": "#jstring"
788 },
789 {
790 "include": "#ustring"
791 }
792 ]
793 },
794 "ustring": {
795 "match": "([^:,\\{\\[\\}\\]\\s].*)$",
796 "name": "string.quoted.none.hjson"
797 },
798 "value": {
799 "patterns": [
800 {
801 "include": "#number"
802 },
803 {
804 "include": "#constant"
805 },
806 {
807 "include": "#string"
808 },
809 {
810 "include": "#object"
811 },
812 {
813 "include": "#array"
814 }
815 ]
816 }
817 },
818 "scopeName": "source.hjson"
819 }
820