PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.9.1
Code Block Pro – Beautiful Syntax Highlighting v1.9.1
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 / java.tmLanguage.json

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

1,856 lines 48.0 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-java/blob/master/grammars/java.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-java/commit/29f977dc42a7e2568b39bb6fb34c4ef108eb59b3",
8 "name": "java",
9 "scopeName": "source.java",
10 "patterns": [
11 {
12 "begin": "\\b(package)\\b\\s*",
13 "beginCaptures": {
14 "1": {
15 "name": "keyword.other.package.java"
16 }
17 },
18 "end": "\\s*(;)",
19 "endCaptures": {
20 "1": {
21 "name": "punctuation.terminator.java"
22 }
23 },
24 "name": "meta.package.java",
25 "contentName": "storage.modifier.package.java",
26 "patterns": [
27 {
28 "include": "#comments"
29 },
30 {
31 "match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)",
32 "name": "invalid.illegal.character_not_allowed_here.java"
33 },
34 {
35 "match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+",
36 "name": "invalid.illegal.character_not_allowed_here.java"
37 },
38 {
39 "match": "[A-Z]+",
40 "name": "invalid.deprecated.package_name_not_lowercase.java"
41 },
42 {
43 "match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b",
44 "name": "invalid.illegal.character_not_allowed_here.java"
45 },
46 {
47 "match": "\\.",
48 "name": "punctuation.separator.java"
49 }
50 ]
51 },
52 {
53 "begin": "\\b(import)\\b\\s*\\b(static)?\\b\\s",
54 "beginCaptures": {
55 "1": {
56 "name": "keyword.other.import.java"
57 },
58 "2": {
59 "name": "storage.modifier.java"
60 }
61 },
62 "end": "\\s*(;)",
63 "endCaptures": {
64 "1": {
65 "name": "punctuation.terminator.java"
66 }
67 },
68 "name": "meta.import.java",
69 "contentName": "storage.modifier.import.java",
70 "patterns": [
71 {
72 "include": "#comments"
73 },
74 {
75 "match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)",
76 "name": "invalid.illegal.character_not_allowed_here.java"
77 },
78 {
79 "match": "(?<!\\.)\\s*\\*",
80 "name": "invalid.illegal.character_not_allowed_here.java"
81 },
82 {
83 "match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+",
84 "name": "invalid.illegal.character_not_allowed_here.java"
85 },
86 {
87 "match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b",
88 "name": "invalid.illegal.character_not_allowed_here.java"
89 },
90 {
91 "match": "\\.",
92 "name": "punctuation.separator.java"
93 },
94 {
95 "match": "\\*",
96 "name": "variable.language.wildcard.java"
97 }
98 ]
99 },
100 {
101 "include": "#comments-javadoc"
102 },
103 {
104 "include": "#code"
105 },
106 {
107 "include": "#module"
108 }
109 ],
110 "repository": {
111 "all-types": {
112 "patterns": [
113 {
114 "include": "#primitive-arrays"
115 },
116 {
117 "include": "#primitive-types"
118 },
119 {
120 "include": "#object-types"
121 }
122 ]
123 },
124 "annotations": {
125 "patterns": [
126 {
127 "begin": "((@)\\s*([^\\s(]+))(\\()",
128 "beginCaptures": {
129 "2": {
130 "name": "punctuation.definition.annotation.java"
131 },
132 "3": {
133 "name": "storage.type.annotation.java"
134 },
135 "4": {
136 "name": "punctuation.definition.annotation-arguments.begin.bracket.round.java"
137 }
138 },
139 "end": "\\)",
140 "endCaptures": {
141 "0": {
142 "name": "punctuation.definition.annotation-arguments.end.bracket.round.java"
143 }
144 },
145 "name": "meta.declaration.annotation.java",
146 "patterns": [
147 {
148 "captures": {
149 "1": {
150 "name": "constant.other.key.java"
151 },
152 "2": {
153 "name": "keyword.operator.assignment.java"
154 }
155 },
156 "match": "(\\w*)\\s*(=)"
157 },
158 {
159 "include": "#code"
160 }
161 ]
162 },
163 {
164 "match": "(@)(interface)\\s+(\\w*)|((@)\\s*(\\w+))",
165 "name": "meta.declaration.annotation.java",
166 "captures": {
167 "1": {
168 "name": "punctuation.definition.annotation.java"
169 },
170 "2": {
171 "name": "storage.modifier.java"
172 },
173 "3": {
174 "name": "storage.type.annotation.java"
175 },
176 "5": {
177 "name": "punctuation.definition.annotation.java"
178 },
179 "6": {
180 "name": "storage.type.annotation.java"
181 }
182 }
183 }
184 ]
185 },
186 "anonymous-block-and-instance-initializer": {
187 "begin": "{",
188 "beginCaptures": {
189 "0": {
190 "name": "punctuation.section.block.begin.bracket.curly.java"
191 }
192 },
193 "end": "}",
194 "endCaptures": {
195 "0": {
196 "name": "punctuation.section.block.end.bracket.curly.java"
197 }
198 },
199 "patterns": [
200 {
201 "include": "#code"
202 }
203 ]
204 },
205 "anonymous-classes-and-new": {
206 "begin": "\\bnew\\b",
207 "beginCaptures": {
208 "0": {
209 "name": "keyword.control.new.java"
210 }
211 },
212 "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)",
213 "patterns": [
214 {
215 "include": "#comments"
216 },
217 {
218 "include": "#function-call"
219 },
220 {
221 "include": "#all-types"
222 },
223 {
224 "begin": "(?<=\\))",
225 "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)",
226 "patterns": [
227 {
228 "include": "#comments"
229 },
230 {
231 "begin": "{",
232 "beginCaptures": {
233 "0": {
234 "name": "punctuation.section.inner-class.begin.bracket.curly.java"
235 }
236 },
237 "end": "}",
238 "endCaptures": {
239 "0": {
240 "name": "punctuation.section.inner-class.end.bracket.curly.java"
241 }
242 },
243 "name": "meta.inner-class.java",
244 "patterns": [
245 {
246 "include": "#class-body"
247 }
248 ]
249 }
250 ]
251 },
252 {
253 "begin": "(?<=\\])",
254 "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)",
255 "patterns": [
256 {
257 "include": "#comments"
258 },
259 {
260 "begin": "{",
261 "beginCaptures": {
262 "0": {
263 "name": "punctuation.section.array-initializer.begin.bracket.curly.java"
264 }
265 },
266 "end": "}",
267 "endCaptures": {
268 "0": {
269 "name": "punctuation.section.array-initializer.end.bracket.curly.java"
270 }
271 },
272 "name": "meta.array-initializer.java",
273 "patterns": [
274 {
275 "include": "#code"
276 }
277 ]
278 }
279 ]
280 },
281 {
282 "include": "#parens"
283 }
284 ]
285 },
286 "assertions": {
287 "patterns": [
288 {
289 "begin": "\\b(assert)\\s",
290 "beginCaptures": {
291 "1": {
292 "name": "keyword.control.assert.java"
293 }
294 },
295 "end": "$",
296 "name": "meta.declaration.assertion.java",
297 "patterns": [
298 {
299 "match": ":",
300 "name": "keyword.operator.assert.expression-separator.java"
301 },
302 {
303 "include": "#code"
304 }
305 ]
306 }
307 ]
308 },
309 "class": {
310 "begin": "(?=\\w?[\\w\\s-]*\\b(?:class|(?<!@)interface|enum)\\s+[\\w$]+)",
311 "end": "}",
312 "endCaptures": {
313 "0": {
314 "name": "punctuation.section.class.end.bracket.curly.java"
315 }
316 },
317 "name": "meta.class.java",
318 "patterns": [
319 {
320 "include": "#storage-modifiers"
321 },
322 {
323 "include": "#generics"
324 },
325 {
326 "include": "#comments"
327 },
328 {
329 "captures": {
330 "1": {
331 "name": "storage.modifier.java"
332 },
333 "2": {
334 "name": "entity.name.type.class.java"
335 }
336 },
337 "match": "(class|(?<!@)interface|enum)\\s+([\\w$]+)",
338 "name": "meta.class.identifier.java"
339 },
340 {
341 "begin": "extends",
342 "beginCaptures": {
343 "0": {
344 "name": "storage.modifier.extends.java"
345 }
346 },
347 "end": "(?={|implements|permits)",
348 "name": "meta.definition.class.inherited.classes.java",
349 "patterns": [
350 {
351 "include": "#object-types-inherited"
352 },
353 {
354 "include": "#comments"
355 }
356 ]
357 },
358 {
359 "begin": "(implements)\\s",
360 "beginCaptures": {
361 "1": {
362 "name": "storage.modifier.implements.java"
363 }
364 },
365 "end": "(?=\\s*extends|permits|\\{)",
366 "name": "meta.definition.class.implemented.interfaces.java",
367 "patterns": [
368 {
369 "include": "#object-types-inherited"
370 },
371 {
372 "include": "#comments"
373 }
374 ]
375 },
376 {
377 "begin": "(permits)\\s",
378 "beginCaptures": {
379 "1": {
380 "name": "storage.modifier.permits.java"
381 }
382 },
383 "end": "(?=\\s*extends|implements|\\{)",
384 "name": "meta.definition.class.permits.classes.java",
385 "patterns": [
386 {
387 "include": "#object-types-inherited"
388 },
389 {
390 "include": "#comments"
391 }
392 ]
393 },
394 {
395 "begin": "{",
396 "beginCaptures": {
397 "0": {
398 "name": "punctuation.section.class.begin.bracket.curly.java"
399 }
400 },
401 "end": "(?=})",
402 "contentName": "meta.class.body.java",
403 "patterns": [
404 {
405 "include": "#class-body"
406 }
407 ]
408 }
409 ]
410 },
411 "class-body": {
412 "patterns": [
413 {
414 "include": "#comments-javadoc"
415 },
416 {
417 "include": "#comments"
418 },
419 {
420 "include": "#enums"
421 },
422 {
423 "include": "#class"
424 },
425 {
426 "include": "#generics"
427 },
428 {
429 "include": "#static-initializer"
430 },
431 {
432 "include": "#class-fields-and-methods"
433 },
434 {
435 "include": "#annotations"
436 },
437 {
438 "include": "#storage-modifiers"
439 },
440 {
441 "include": "#member-variables"
442 },
443 {
444 "include": "#code"
445 }
446 ]
447 },
448 "class-fields-and-methods": {
449 "patterns": [
450 {
451 "begin": "(?=\\=)",
452 "end": "(?=;)",
453 "patterns": [
454 {
455 "include": "#code"
456 }
457 ]
458 },
459 {
460 "include": "#methods"
461 }
462 ]
463 },
464 "code": {
465 "patterns": [
466 {
467 "include": "#annotations"
468 },
469 {
470 "include": "#comments"
471 },
472 {
473 "include": "#enums"
474 },
475 {
476 "include": "#class"
477 },
478 {
479 "include": "#record"
480 },
481 {
482 "include": "#anonymous-block-and-instance-initializer"
483 },
484 {
485 "include": "#try-catch-finally"
486 },
487 {
488 "include": "#assertions"
489 },
490 {
491 "include": "#parens"
492 },
493 {
494 "include": "#constants-and-special-vars"
495 },
496 {
497 "include": "#numbers"
498 },
499 {
500 "include": "#anonymous-classes-and-new"
501 },
502 {
503 "include": "#lambda-expression"
504 },
505 {
506 "include": "#keywords"
507 },
508 {
509 "include": "#storage-modifiers"
510 },
511 {
512 "include": "#method-call"
513 },
514 {
515 "include": "#function-call"
516 },
517 {
518 "include": "#variables"
519 },
520 {
521 "include": "#variables-local"
522 },
523 {
524 "include": "#objects"
525 },
526 {
527 "include": "#properties"
528 },
529 {
530 "include": "#strings"
531 },
532 {
533 "include": "#all-types"
534 },
535 {
536 "match": ",",
537 "name": "punctuation.separator.delimiter.java"
538 },
539 {
540 "match": "\\.",
541 "name": "punctuation.separator.period.java"
542 },
543 {
544 "match": ";",
545 "name": "punctuation.terminator.java"
546 }
547 ]
548 },
549 "comments": {
550 "patterns": [
551 {
552 "captures": {
553 "0": {
554 "name": "punctuation.definition.comment.java"
555 }
556 },
557 "match": "/\\*\\*/",
558 "name": "comment.block.empty.java"
559 },
560 {
561 "include": "#comments-inline"
562 }
563 ]
564 },
565 "comments-inline": {
566 "patterns": [
567 {
568 "begin": "/\\*",
569 "captures": {
570 "0": {
571 "name": "punctuation.definition.comment.java"
572 }
573 },
574 "end": "\\*/",
575 "name": "comment.block.java"
576 },
577 {
578 "begin": "(^[ \\t]+)?(?=//)",
579 "beginCaptures": {
580 "1": {
581 "name": "punctuation.whitespace.comment.leading.java"
582 }
583 },
584 "end": "(?!\\G)",
585 "patterns": [
586 {
587 "begin": "//",
588 "beginCaptures": {
589 "0": {
590 "name": "punctuation.definition.comment.java"
591 }
592 },
593 "end": "\\n",
594 "name": "comment.line.double-slash.java"
595 }
596 ]
597 }
598 ]
599 },
600 "comments-javadoc": {
601 "patterns": [
602 {
603 "begin": "^\\s*(/\\*\\*)(?!/)",
604 "beginCaptures": {
605 "1": {
606 "name": "punctuation.definition.comment.java"
607 }
608 },
609 "end": "\\*/",
610 "endCaptures": {
611 "0": {
612 "name": "punctuation.definition.comment.java"
613 }
614 },
615 "name": "comment.block.javadoc.java",
616 "patterns": [
617 {
618 "match": "@(author|deprecated|return|see|serial|since|version)\\b",
619 "name": "keyword.other.documentation.javadoc.java"
620 },
621 {
622 "match": "(@param)\\s+(\\S+)",
623 "captures": {
624 "1": {
625 "name": "keyword.other.documentation.javadoc.java"
626 },
627 "2": {
628 "name": "variable.parameter.java"
629 }
630 }
631 },
632 {
633 "match": "(@(?:exception|throws))\\s+(\\S+)",
634 "captures": {
635 "1": {
636 "name": "keyword.other.documentation.javadoc.java"
637 },
638 "2": {
639 "name": "entity.name.type.class.java"
640 }
641 }
642 },
643 {
644 "match": "{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*?}",
645 "captures": {
646 "1": {
647 "name": "keyword.other.documentation.javadoc.java"
648 },
649 "2": {
650 "name": "entity.name.type.class.java"
651 },
652 "3": {
653 "name": "variable.parameter.java"
654 }
655 }
656 }
657 ]
658 }
659 ]
660 },
661 "constants-and-special-vars": {
662 "patterns": [
663 {
664 "match": "\\b(true|false|null)\\b",
665 "name": "constant.language.java"
666 },
667 {
668 "match": "\\bthis\\b",
669 "name": "variable.language.this.java"
670 },
671 {
672 "match": "\\bsuper\\b",
673 "name": "variable.language.java"
674 }
675 ]
676 },
677 "enums": {
678 "begin": "^\\s*([\\w\\s]*)(enum)\\s+(\\w+)",
679 "beginCaptures": {
680 "1": {
681 "patterns": [
682 {
683 "include": "#storage-modifiers"
684 }
685 ]
686 },
687 "2": {
688 "name": "storage.modifier.java"
689 },
690 "3": {
691 "name": "entity.name.type.enum.java"
692 }
693 },
694 "end": "}",
695 "endCaptures": {
696 "0": {
697 "name": "punctuation.section.enum.end.bracket.curly.java"
698 }
699 },
700 "name": "meta.enum.java",
701 "patterns": [
702 {
703 "begin": "\\b(extends)\\b",
704 "beginCaptures": {
705 "1": {
706 "name": "storage.modifier.extends.java"
707 }
708 },
709 "end": "(?={|\\bimplements\\b)",
710 "name": "meta.definition.class.inherited.classes.java",
711 "patterns": [
712 {
713 "include": "#object-types-inherited"
714 },
715 {
716 "include": "#comments"
717 }
718 ]
719 },
720 {
721 "begin": "\\b(implements)\\b",
722 "beginCaptures": {
723 "1": {
724 "name": "storage.modifier.implements.java"
725 }
726 },
727 "end": "(?={|\\bextends\\b)",
728 "name": "meta.definition.class.implemented.interfaces.java",
729 "patterns": [
730 {
731 "include": "#object-types-inherited"
732 },
733 {
734 "include": "#comments"
735 }
736 ]
737 },
738 {
739 "begin": "{",
740 "beginCaptures": {
741 "0": {
742 "name": "punctuation.section.enum.begin.bracket.curly.java"
743 }
744 },
745 "end": "(?=})",
746 "patterns": [
747 {
748 "begin": "(?<={)",
749 "end": "(?=;|})",
750 "patterns": [
751 {
752 "include": "#comments-javadoc"
753 },
754 {
755 "include": "#comments"
756 },
757 {
758 "begin": "\\b(\\w+)\\b",
759 "beginCaptures": {
760 "1": {
761 "name": "constant.other.enum.java"
762 }
763 },
764 "end": "(,)|(?=;|})",
765 "endCaptures": {
766 "1": {
767 "name": "punctuation.separator.delimiter.java"
768 }
769 },
770 "patterns": [
771 {
772 "include": "#comments-javadoc"
773 },
774 {
775 "include": "#comments"
776 },
777 {
778 "begin": "\\(",
779 "beginCaptures": {
780 "0": {
781 "name": "punctuation.bracket.round.java"
782 }
783 },
784 "end": "\\)",
785 "endCaptures": {
786 "0": {
787 "name": "punctuation.bracket.round.java"
788 }
789 },
790 "patterns": [
791 {
792 "include": "#code"
793 }
794 ]
795 },
796 {
797 "begin": "{",
798 "beginCaptures": {
799 "0": {
800 "name": "punctuation.bracket.curly.java"
801 }
802 },
803 "end": "}",
804 "endCaptures": {
805 "0": {
806 "name": "punctuation.bracket.curly.java"
807 }
808 },
809 "patterns": [
810 {
811 "include": "#class-body"
812 }
813 ]
814 }
815 ]
816 }
817 ]
818 },
819 {
820 "include": "#class-body"
821 }
822 ]
823 }
824 ]
825 },
826 "function-call": {
827 "begin": "([A-Za-z_$][\\w$]*)\\s*(\\()",
828 "beginCaptures": {
829 "1": {
830 "name": "entity.name.function.java"
831 },
832 "2": {
833 "name": "punctuation.definition.parameters.begin.bracket.round.java"
834 }
835 },
836 "end": "\\)",
837 "endCaptures": {
838 "0": {
839 "name": "punctuation.definition.parameters.end.bracket.round.java"
840 }
841 },
842 "name": "meta.function-call.java",
843 "patterns": [
844 {
845 "include": "#code"
846 }
847 ]
848 },
849 "generics": {
850 "begin": "<",
851 "beginCaptures": {
852 "0": {
853 "name": "punctuation.bracket.angle.java"
854 }
855 },
856 "end": ">",
857 "endCaptures": {
858 "0": {
859 "name": "punctuation.bracket.angle.java"
860 }
861 },
862 "patterns": [
863 {
864 "match": "\\b(extends|super)\\b",
865 "name": "storage.modifier.$1.java"
866 },
867 {
868 "match": "(?<!\\.)([a-zA-Z$_][a-zA-Z0-9$_]*)(?=\\s*<)",
869 "captures": {
870 "1": {
871 "name": "storage.type.java"
872 }
873 }
874 },
875 {
876 "include": "#primitive-arrays"
877 },
878 {
879 "match": "[a-zA-Z$_][a-zA-Z0-9$_]*",
880 "name": "storage.type.generic.java"
881 },
882 {
883 "match": "\\?",
884 "name": "storage.type.generic.wildcard.java"
885 },
886 {
887 "match": "&",
888 "name": "punctuation.separator.types.java"
889 },
890 {
891 "match": ",",
892 "name": "punctuation.separator.delimiter.java"
893 },
894 {
895 "match": "\\.",
896 "name": "punctuation.separator.period.java"
897 },
898 {
899 "include": "#parens"
900 },
901 {
902 "include": "#generics"
903 },
904 {
905 "include": "#comments"
906 }
907 ]
908 },
909 "keywords": {
910 "patterns": [
911 {
912 "match": "\\bthrow\\b",
913 "name": "keyword.control.throw.java"
914 },
915 {
916 "match": "\\?|:",
917 "name": "keyword.control.ternary.java"
918 },
919 {
920 "match": "\\b(return|yield|break|case|continue|default|do|while|for|switch|if|else)\\b",
921 "name": "keyword.control.java"
922 },
923 {
924 "match": "\\b(instanceof)\\b",
925 "name": "keyword.operator.instanceof.java"
926 },
927 {
928 "match": "(<<|>>>?|~|\\^)",
929 "name": "keyword.operator.bitwise.java"
930 },
931 {
932 "match": "((&|\\^|\\||<<|>>>?)=)",
933 "name": "keyword.operator.assignment.bitwise.java"
934 },
935 {
936 "match": "(===?|!=|<=|>=|<>|<|>)",
937 "name": "keyword.operator.comparison.java"
938 },
939 {
940 "match": "([+*/%-]=)",
941 "name": "keyword.operator.assignment.arithmetic.java"
942 },
943 {
944 "match": "(=)",
945 "name": "keyword.operator.assignment.java"
946 },
947 {
948 "match": "(\\-\\-|\\+\\+)",
949 "name": "keyword.operator.increment-decrement.java"
950 },
951 {
952 "match": "(\\-|\\+|\\*|\\/|%)",
953 "name": "keyword.operator.arithmetic.java"
954 },
955 {
956 "match": "(!|&&|\\|\\|)",
957 "name": "keyword.operator.logical.java"
958 },
959 {
960 "match": "(\\||&)",
961 "name": "keyword.operator.bitwise.java"
962 },
963 {
964 "match": "\\b(const|goto)\\b",
965 "name": "keyword.reserved.java"
966 }
967 ]
968 },
969 "lambda-expression": {
970 "patterns": [
971 {
972 "match": "->",
973 "name": "storage.type.function.arrow.java"
974 }
975 ]
976 },
977 "member-variables": {
978 "begin": "(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)",
979 "end": "(?=\\=|;)",
980 "patterns": [
981 {
982 "include": "#storage-modifiers"
983 },
984 {
985 "include": "#variables"
986 },
987 {
988 "include": "#primitive-arrays"
989 },
990 {
991 "include": "#object-types"
992 }
993 ]
994 },
995 "method-call": {
996 "begin": "(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()",
997 "beginCaptures": {
998 "1": {
999 "name": "punctuation.separator.period.java"
1000 },
1001 "2": {
1002 "name": "entity.name.function.java"
1003 },
1004 "3": {
1005 "name": "punctuation.definition.parameters.begin.bracket.round.java"
1006 }
1007 },
1008 "end": "\\)",
1009 "endCaptures": {
1010 "0": {
1011 "name": "punctuation.definition.parameters.end.bracket.round.java"
1012 }
1013 },
1014 "name": "meta.method-call.java",
1015 "patterns": [
1016 {
1017 "include": "#code"
1018 }
1019 ]
1020 },
1021 "methods": {
1022 "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()",
1023 "end": "(})|(?=;)",
1024 "endCaptures": {
1025 "1": {
1026 "name": "punctuation.section.method.end.bracket.curly.java"
1027 }
1028 },
1029 "name": "meta.method.java",
1030 "patterns": [
1031 {
1032 "include": "#storage-modifiers"
1033 },
1034 {
1035 "begin": "(\\w+)\\s*(\\()",
1036 "beginCaptures": {
1037 "1": {
1038 "name": "entity.name.function.java"
1039 },
1040 "2": {
1041 "name": "punctuation.definition.parameters.begin.bracket.round.java"
1042 }
1043 },
1044 "end": "\\)",
1045 "endCaptures": {
1046 "0": {
1047 "name": "punctuation.definition.parameters.end.bracket.round.java"
1048 }
1049 },
1050 "name": "meta.method.identifier.java",
1051 "patterns": [
1052 {
1053 "include": "#parameters"
1054 },
1055 {
1056 "include": "#parens"
1057 },
1058 {
1059 "include": "#comments"
1060 }
1061 ]
1062 },
1063 {
1064 "include": "#generics"
1065 },
1066 {
1067 "begin": "(?=\\w.*\\s+\\w+\\s*\\()",
1068 "end": "(?=\\s+\\w+\\s*\\()",
1069 "name": "meta.method.return-type.java",
1070 "patterns": [
1071 {
1072 "include": "#all-types"
1073 },
1074 {
1075 "include": "#parens"
1076 },
1077 {
1078 "include": "#comments"
1079 }
1080 ]
1081 },
1082 {
1083 "include": "#throws"
1084 },
1085 {
1086 "begin": "{",
1087 "beginCaptures": {
1088 "0": {
1089 "name": "punctuation.section.method.begin.bracket.curly.java"
1090 }
1091 },
1092 "end": "(?=})",
1093 "contentName": "meta.method.body.java",
1094 "patterns": [
1095 {
1096 "include": "#code"
1097 }
1098 ]
1099 },
1100 {
1101 "include": "#comments"
1102 }
1103 ]
1104 },
1105 "module": {
1106 "begin": "((open)\\s)?(module)\\s+(\\w+)",
1107 "end": "}",
1108 "beginCaptures": {
1109 "1": {
1110 "name": "storage.modifier.java"
1111 },
1112 "3": {
1113 "name": "storage.modifier.java"
1114 },
1115 "4": {
1116 "name": "entity.name.type.module.java"
1117 }
1118 },
1119 "endCaptures": {
1120 "0": {
1121 "name": "punctuation.section.module.end.bracket.curly.java"
1122 }
1123 },
1124 "name": "meta.module.java",
1125 "patterns": [
1126 {
1127 "begin": "{",
1128 "beginCaptures": {
1129 "0": {
1130 "name": "punctuation.section.module.begin.bracket.curly.java"
1131 }
1132 },
1133 "end": "(?=})",
1134 "contentName": "meta.module.body.java",
1135 "patterns": [
1136 {
1137 "include": "#comments"
1138 },
1139 {
1140 "include": "#comments-javadoc"
1141 },
1142 {
1143 "match": "\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",
1144 "name": "keyword.module.java"
1145 }
1146 ]
1147 }
1148 ]
1149 },
1150 "numbers": {
1151 "patterns": [
1152 {
1153 "match": "(?x)\n\\b(?<!\\$)\n0(x|X)\n(\n (?<!\\.)[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?[Ll]?(?!\\.)\n |\n (\n [0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\\.?\n |\n ([0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?)?\\.[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\n )\n [Pp][+-]?[0-9]([0-9_]*[0-9])?[FfDd]?\n)\n\\b(?!\\$)",
1154 "name": "constant.numeric.hex.java"
1155 },
1156 {
1157 "match": "\\b(?<!\\$)0(b|B)[01]([01_]*[01])?[Ll]?\\b(?!\\$)",
1158 "name": "constant.numeric.binary.java"
1159 },
1160 {
1161 "match": "\\b(?<!\\$)0[0-7]([0-7_]*[0-7])?[Ll]?\\b(?!\\$)",
1162 "name": "constant.numeric.octal.java"
1163 },
1164 {
1165 "match": "(?x)\n(?<!\\$)\n(\n \\b[0-9]([0-9_]*[0-9])?\\.\\B(?!\\.)\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([0-9]([0-9_]*[0-9])?)([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n (?<!\\.)\\B\\.[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b(0|[1-9]([0-9_]*[0-9])?)(?!\\.)[Ll]?\\b\n)\n(?!\\$)",
1166 "name": "constant.numeric.decimal.java"
1167 }
1168 ]
1169 },
1170 "object-types": {
1171 "patterns": [
1172 {
1173 "include": "#generics"
1174 },
1175 {
1176 "begin": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*)([A-Z_]\\w*)\\s*(?=\\[)",
1177 "beginCaptures": {
1178 "1": {
1179 "patterns": [
1180 {
1181 "match": "[A-Za-z_]\\w*",
1182 "name": "storage.type.java"
1183 },
1184 {
1185 "match": "\\.",
1186 "name": "punctuation.separator.period.java"
1187 }
1188 ]
1189 },
1190 "2": {
1191 "name": "storage.type.object.array.java"
1192 }
1193 },
1194 "end": "(?!\\s*\\[)",
1195 "patterns": [
1196 {
1197 "include": "#comments"
1198 },
1199 {
1200 "include": "#parens"
1201 }
1202 ]
1203 },
1204 {
1205 "match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\s*(?=<)",
1206 "captures": {
1207 "1": {
1208 "patterns": [
1209 {
1210 "match": "[A-Za-z_]\\w*",
1211 "name": "storage.type.java"
1212 },
1213 {
1214 "match": "\\.",
1215 "name": "punctuation.separator.period.java"
1216 }
1217 ]
1218 }
1219 }
1220 },
1221 {
1222 "match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\b((?=\\s*[A-Za-z$_\\n])|(?=\\s*\\.\\.\\.))",
1223 "captures": {
1224 "1": {
1225 "patterns": [
1226 {
1227 "match": "[A-Za-z_]\\w*",
1228 "name": "storage.type.java"
1229 },
1230 {
1231 "match": "\\.",
1232 "name": "punctuation.separator.period.java"
1233 }
1234 ]
1235 }
1236 }
1237 }
1238 ]
1239 },
1240 "object-types-inherited": {
1241 "patterns": [
1242 {
1243 "include": "#generics"
1244 },
1245 {
1246 "match": "\\b(?:[A-Z]\\w*\\s*(\\.)\\s*)*[A-Z]\\w*\\b",
1247 "name": "entity.other.inherited-class.java",
1248 "captures": {
1249 "1": {
1250 "name": "punctuation.separator.period.java"
1251 }
1252 }
1253 },
1254 {
1255 "match": ",",
1256 "name": "punctuation.separator.delimiter.java"
1257 }
1258 ]
1259 },
1260 "objects": {
1261 "match": "(?<![\\w$])[a-zA-Z_$][\\w$]*(?=\\s*\\.\\s*[\\w$]+)",
1262 "name": "variable.other.object.java"
1263 },
1264 "parameters": {
1265 "patterns": [
1266 {
1267 "match": "\\bfinal\\b",
1268 "name": "storage.modifier.java"
1269 },
1270 {
1271 "include": "#annotations"
1272 },
1273 {
1274 "include": "#all-types"
1275 },
1276 {
1277 "include": "#strings"
1278 },
1279 {
1280 "match": "\\w+",
1281 "name": "variable.parameter.java"
1282 },
1283 {
1284 "match": ",",
1285 "name": "punctuation.separator.delimiter.java"
1286 },
1287 {
1288 "match": "\\.\\.\\.",
1289 "name": "punctuation.definition.parameters.varargs.java"
1290 }
1291 ]
1292 },
1293 "parens": {
1294 "patterns": [
1295 {
1296 "begin": "\\(",
1297 "beginCaptures": {
1298 "0": {
1299 "name": "punctuation.bracket.round.java"
1300 }
1301 },
1302 "end": "\\)",
1303 "endCaptures": {
1304 "0": {
1305 "name": "punctuation.bracket.round.java"
1306 }
1307 },
1308 "patterns": [
1309 {
1310 "include": "#code"
1311 }
1312 ]
1313 },
1314 {
1315 "begin": "\\[",
1316 "beginCaptures": {
1317 "0": {
1318 "name": "punctuation.bracket.square.java"
1319 }
1320 },
1321 "end": "\\]",
1322 "endCaptures": {
1323 "0": {
1324 "name": "punctuation.bracket.square.java"
1325 }
1326 },
1327 "patterns": [
1328 {
1329 "include": "#code"
1330 }
1331 ]
1332 },
1333 {
1334 "begin": "{",
1335 "beginCaptures": {
1336 "0": {
1337 "name": "punctuation.bracket.curly.java"
1338 }
1339 },
1340 "end": "}",
1341 "endCaptures": {
1342 "0": {
1343 "name": "punctuation.bracket.curly.java"
1344 }
1345 },
1346 "patterns": [
1347 {
1348 "include": "#code"
1349 }
1350 ]
1351 }
1352 ]
1353 },
1354 "primitive-arrays": {
1355 "patterns": [
1356 {
1357 "begin": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b\\s*(?=\\[)",
1358 "beginCaptures": {
1359 "1": {
1360 "name": "storage.type.primitive.array.java"
1361 }
1362 },
1363 "end": "(?!\\s*\\[)",
1364 "patterns": [
1365 {
1366 "include": "#comments"
1367 },
1368 {
1369 "include": "#parens"
1370 }
1371 ]
1372 }
1373 ]
1374 },
1375 "primitive-types": {
1376 "match": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b",
1377 "name": "storage.type.primitive.java"
1378 },
1379 "properties": {
1380 "patterns": [
1381 {
1382 "match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)(?=\\s*\\.\\s*[a-zA-Z_$][\\w$]*)",
1383 "captures": {
1384 "1": {
1385 "name": "punctuation.separator.period.java"
1386 },
1387 "2": {
1388 "name": "variable.other.object.property.java"
1389 }
1390 }
1391 },
1392 {
1393 "match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)",
1394 "captures": {
1395 "1": {
1396 "name": "punctuation.separator.period.java"
1397 },
1398 "2": {
1399 "name": "variable.other.object.property.java"
1400 }
1401 }
1402 },
1403 {
1404 "match": "(\\.)\\s*([0-9][\\w$]*)",
1405 "captures": {
1406 "1": {
1407 "name": "punctuation.separator.period.java"
1408 },
1409 "2": {
1410 "name": "invalid.illegal.identifier.java"
1411 }
1412 }
1413 }
1414 ]
1415 },
1416 "record": {
1417 "begin": "(?=\\w?[\\w\\s]*\\b(?:record)\\s+[\\w$]+)",
1418 "end": "}",
1419 "endCaptures": {
1420 "0": {
1421 "name": "punctuation.section.class.end.bracket.curly.java"
1422 }
1423 },
1424 "name": "meta.record.java",
1425 "patterns": [
1426 {
1427 "include": "#storage-modifiers"
1428 },
1429 {
1430 "include": "#generics"
1431 },
1432 {
1433 "include": "#comments"
1434 },
1435 {
1436 "begin": "(record)\\s+([\\w$]+)(<[\\w$]+>)?(\\()",
1437 "beginCaptures": {
1438 "1": {
1439 "name": "storage.modifier.java"
1440 },
1441 "2": {
1442 "name": "entity.name.type.record.java"
1443 },
1444 "3": {
1445 "patterns": [
1446 {
1447 "include": "#generics"
1448 }
1449 ]
1450 },
1451 "4": {
1452 "name": "punctuation.definition.parameters.begin.bracket.round.java"
1453 }
1454 },
1455 "end": "\\)",
1456 "endCaptures": {
1457 "0": {
1458 "name": "punctuation.definition.parameters.end.bracket.round.java"
1459 }
1460 },
1461 "name": "meta.record.identifier.java",
1462 "patterns": [
1463 {
1464 "include": "#code"
1465 }
1466 ]
1467 },
1468 {
1469 "begin": "(implements)\\s",
1470 "beginCaptures": {
1471 "1": {
1472 "name": "storage.modifier.implements.java"
1473 }
1474 },
1475 "end": "(?=\\s*\\{)",
1476 "name": "meta.definition.class.implemented.interfaces.java",
1477 "patterns": [
1478 {
1479 "include": "#object-types-inherited"
1480 },
1481 {
1482 "include": "#comments"
1483 }
1484 ]
1485 },
1486 {
1487 "include": "#record-body"
1488 }
1489 ]
1490 },
1491 "record-body": {
1492 "begin": "{",
1493 "beginCaptures": {
1494 "0": {
1495 "name": "punctuation.section.class.begin.bracket.curly.java"
1496 }
1497 },
1498 "end": "(?=})",
1499 "name": "meta.record.body.java",
1500 "patterns": [
1501 {
1502 "include": "#record-constructor"
1503 },
1504 {
1505 "include": "#class-body"
1506 }
1507 ]
1508 },
1509 "record-constructor": {
1510 "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))",
1511 "end": "(})|(?=;)",
1512 "endCaptures": {
1513 "1": {
1514 "name": "punctuation.section.method.end.bracket.curly.java"
1515 }
1516 },
1517 "name": "meta.method.java",
1518 "patterns": [
1519 {
1520 "include": "#storage-modifiers"
1521 },
1522 {
1523 "begin": "(\\w+)",
1524 "beginCaptures": {
1525 "1": {
1526 "name": "entity.name.function.java"
1527 }
1528 },
1529 "end": "(?=\\s*{)",
1530 "name": "meta.method.identifier.java",
1531 "patterns": [
1532 {
1533 "include": "#comments"
1534 }
1535 ]
1536 },
1537 {
1538 "include": "#comments"
1539 },
1540 {
1541 "begin": "{",
1542 "beginCaptures": {
1543 "0": {
1544 "name": "punctuation.section.method.begin.bracket.curly.java"
1545 }
1546 },
1547 "end": "(?=})",
1548 "contentName": "meta.method.body.java",
1549 "patterns": [
1550 {
1551 "include": "#code"
1552 }
1553 ]
1554 }
1555 ]
1556 },
1557 "static-initializer": {
1558 "patterns": [
1559 {
1560 "include": "#anonymous-block-and-instance-initializer"
1561 },
1562 {
1563 "match": "static",
1564 "name": "storage.modifier.java"
1565 }
1566 ]
1567 },
1568 "storage-modifiers": {
1569 "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b",
1570 "name": "storage.modifier.java"
1571 },
1572 "strings": {
1573 "patterns": [
1574 {
1575 "begin": "\"",
1576 "beginCaptures": {
1577 "0": {
1578 "name": "punctuation.definition.string.begin.java"
1579 }
1580 },
1581 "end": "\"",
1582 "endCaptures": {
1583 "0": {
1584 "name": "punctuation.definition.string.end.java"
1585 }
1586 },
1587 "name": "string.quoted.double.java",
1588 "patterns": [
1589 {
1590 "match": "\\\\.",
1591 "name": "constant.character.escape.java"
1592 }
1593 ]
1594 },
1595 {
1596 "begin": "'",
1597 "beginCaptures": {
1598 "0": {
1599 "name": "punctuation.definition.string.begin.java"
1600 }
1601 },
1602 "end": "'",
1603 "endCaptures": {
1604 "0": {
1605 "name": "punctuation.definition.string.end.java"
1606 }
1607 },
1608 "name": "string.quoted.single.java",
1609 "patterns": [
1610 {
1611 "match": "\\\\.",
1612 "name": "constant.character.escape.java"
1613 }
1614 ]
1615 }
1616 ]
1617 },
1618 "throws": {
1619 "begin": "throws",
1620 "beginCaptures": {
1621 "0": {
1622 "name": "storage.modifier.java"
1623 }
1624 },
1625 "end": "(?={|;)",
1626 "name": "meta.throwables.java",
1627 "patterns": [
1628 {
1629 "match": ",",
1630 "name": "punctuation.separator.delimiter.java"
1631 },
1632 {
1633 "match": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*",
1634 "name": "storage.type.java"
1635 }
1636 ]
1637 },
1638 "try-catch-finally": {
1639 "patterns": [
1640 {
1641 "begin": "\\btry\\b",
1642 "beginCaptures": {
1643 "0": {
1644 "name": "keyword.control.try.java"
1645 }
1646 },
1647 "end": "}",
1648 "endCaptures": {
1649 "0": {
1650 "name": "punctuation.section.try.end.bracket.curly.java"
1651 }
1652 },
1653 "name": "meta.try.java",
1654 "patterns": [
1655 {
1656 "begin": "\\(",
1657 "beginCaptures": {
1658 "0": {
1659 "name": "punctuation.section.try.resources.begin.bracket.round.java"
1660 }
1661 },
1662 "end": "\\)",
1663 "endCaptures": {
1664 "0": {
1665 "name": "punctuation.section.try.resources.end.bracket.round.java"
1666 }
1667 },
1668 "name": "meta.try.resources.java",
1669 "patterns": [
1670 {
1671 "include": "#code"
1672 }
1673 ]
1674 },
1675 {
1676 "begin": "{",
1677 "beginCaptures": {
1678 "0": {
1679 "name": "punctuation.section.try.begin.bracket.curly.java"
1680 }
1681 },
1682 "end": "(?=})",
1683 "contentName": "meta.try.body.java",
1684 "patterns": [
1685 {
1686 "include": "#code"
1687 }
1688 ]
1689 }
1690 ]
1691 },
1692 {
1693 "begin": "\\b(catch)\\b",
1694 "beginCaptures": {
1695 "1": {
1696 "name": "keyword.control.catch.java"
1697 }
1698 },
1699 "end": "}",
1700 "endCaptures": {
1701 "0": {
1702 "name": "punctuation.section.catch.end.bracket.curly.java"
1703 }
1704 },
1705 "name": "meta.catch.java",
1706 "patterns": [
1707 {
1708 "include": "#comments"
1709 },
1710 {
1711 "begin": "\\(",
1712 "beginCaptures": {
1713 "0": {
1714 "name": "punctuation.definition.parameters.begin.bracket.round.java"
1715 }
1716 },
1717 "end": "\\)",
1718 "endCaptures": {
1719 "0": {
1720 "name": "punctuation.definition.parameters.end.bracket.round.java"
1721 }
1722 },
1723 "contentName": "meta.catch.parameters.java",
1724 "patterns": [
1725 {
1726 "include": "#comments"
1727 },
1728 {
1729 "include": "#storage-modifiers"
1730 },
1731 {
1732 "begin": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*",
1733 "beginCaptures": {
1734 "0": {
1735 "name": "storage.type.java"
1736 }
1737 },
1738 "end": "(\\|)|(?=\\))",
1739 "endCaptures": {
1740 "1": {
1741 "name": "punctuation.catch.separator.java"
1742 }
1743 },
1744 "patterns": [
1745 {
1746 "include": "#comments"
1747 },
1748 {
1749 "match": "\\w+",
1750 "captures": {
1751 "0": {
1752 "name": "variable.parameter.java"
1753 }
1754 }
1755 }
1756 ]
1757 }
1758 ]
1759 },
1760 {
1761 "begin": "{",
1762 "beginCaptures": {
1763 "0": {
1764 "name": "punctuation.section.catch.begin.bracket.curly.java"
1765 }
1766 },
1767 "end": "(?=})",
1768 "contentName": "meta.catch.body.java",
1769 "patterns": [
1770 {
1771 "include": "#code"
1772 }
1773 ]
1774 }
1775 ]
1776 },
1777 {
1778 "begin": "\\bfinally\\b",
1779 "beginCaptures": {
1780 "0": {
1781 "name": "keyword.control.finally.java"
1782 }
1783 },
1784 "end": "}",
1785 "endCaptures": {
1786 "0": {
1787 "name": "punctuation.section.finally.end.bracket.curly.java"
1788 }
1789 },
1790 "name": "meta.finally.java",
1791 "patterns": [
1792 {
1793 "begin": "{",
1794 "beginCaptures": {
1795 "0": {
1796 "name": "punctuation.section.finally.begin.bracket.curly.java"
1797 }
1798 },
1799 "end": "(?=})",
1800 "contentName": "meta.finally.body.java",
1801 "patterns": [
1802 {
1803 "include": "#code"
1804 }
1805 ]
1806 }
1807 ]
1808 }
1809 ]
1810 },
1811 "variables": {
1812 "begin": "(?x)\n(?=\n \\b\n (\n (void|boolean|byte|char|short|int|float|long|double)\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\b\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap<Integer, String>`, or `List<java.lang.String>`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)",
1813 "end": "(?=\\=|:|;)",
1814 "name": "meta.definition.variable.java",
1815 "patterns": [
1816 {
1817 "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))",
1818 "captures": {
1819 "1": {
1820 "name": "variable.other.definition.java"
1821 }
1822 }
1823 },
1824 {
1825 "include": "#all-types"
1826 },
1827 {
1828 "include": "#code"
1829 }
1830 ]
1831 },
1832 "variables-local": {
1833 "begin": "(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))",
1834 "end": "(?=\\=|:|;)",
1835 "name": "meta.definition.variable.local.java",
1836 "patterns": [
1837 {
1838 "match": "\\bvar\\b",
1839 "name": "storage.type.local.java"
1840 },
1841 {
1842 "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))",
1843 "captures": {
1844 "1": {
1845 "name": "variable.other.definition.java"
1846 }
1847 }
1848 },
1849 {
1850 "include": "#code"
1851 }
1852 ]
1853 }
1854 }
1855 }
1856