Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/java/syntaxes/java.tmLanguage.json
3316 views
1
{
2
"information_for_contributors": [
3
"This file has been converted from https://github.com/redhat-developer/vscode-java/blob/master/language-support/java/java.tmLanguage.json",
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/redhat-developer/vscode-java/commit/f09b712f5d6d6339e765f58c8dfab3f78a378183",
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*(new)",
1383
"captures": {
1384
"1": {
1385
"name": "punctuation.separator.period.java"
1386
},
1387
"2": {
1388
"name": "keyword.control.new.java"
1389
}
1390
}
1391
},
1392
{
1393
"match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)(?=\\s*\\.\\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*([a-zA-Z_$][\\w$]*)",
1405
"captures": {
1406
"1": {
1407
"name": "punctuation.separator.period.java"
1408
},
1409
"2": {
1410
"name": "variable.other.object.property.java"
1411
}
1412
}
1413
},
1414
{
1415
"match": "(\\.)\\s*([0-9][\\w$]*)",
1416
"captures": {
1417
"1": {
1418
"name": "punctuation.separator.period.java"
1419
},
1420
"2": {
1421
"name": "invalid.illegal.identifier.java"
1422
}
1423
}
1424
}
1425
]
1426
},
1427
"record": {
1428
"begin": "(?=\\w?[\\w\\s]*\\b(?:record)\\s+[\\w$]+)",
1429
"end": "}",
1430
"endCaptures": {
1431
"0": {
1432
"name": "punctuation.section.class.end.bracket.curly.java"
1433
}
1434
},
1435
"name": "meta.record.java",
1436
"patterns": [
1437
{
1438
"include": "#storage-modifiers"
1439
},
1440
{
1441
"include": "#generics"
1442
},
1443
{
1444
"include": "#comments"
1445
},
1446
{
1447
"begin": "(record)\\s+([\\w$]+)(<[\\w$]+>)?(\\()",
1448
"beginCaptures": {
1449
"1": {
1450
"name": "storage.modifier.java"
1451
},
1452
"2": {
1453
"name": "entity.name.type.record.java"
1454
},
1455
"3": {
1456
"patterns": [
1457
{
1458
"include": "#generics"
1459
}
1460
]
1461
},
1462
"4": {
1463
"name": "punctuation.definition.parameters.begin.bracket.round.java"
1464
}
1465
},
1466
"end": "\\)",
1467
"endCaptures": {
1468
"0": {
1469
"name": "punctuation.definition.parameters.end.bracket.round.java"
1470
}
1471
},
1472
"name": "meta.record.identifier.java",
1473
"patterns": [
1474
{
1475
"include": "#code"
1476
}
1477
]
1478
},
1479
{
1480
"begin": "(implements)\\s",
1481
"beginCaptures": {
1482
"1": {
1483
"name": "storage.modifier.implements.java"
1484
}
1485
},
1486
"end": "(?=\\s*\\{)",
1487
"name": "meta.definition.class.implemented.interfaces.java",
1488
"patterns": [
1489
{
1490
"include": "#object-types-inherited"
1491
},
1492
{
1493
"include": "#comments"
1494
}
1495
]
1496
},
1497
{
1498
"include": "#record-body"
1499
}
1500
]
1501
},
1502
"record-body": {
1503
"begin": "{",
1504
"beginCaptures": {
1505
"0": {
1506
"name": "punctuation.section.class.begin.bracket.curly.java"
1507
}
1508
},
1509
"end": "(?=})",
1510
"name": "meta.record.body.java",
1511
"patterns": [
1512
{
1513
"include": "#record-constructor"
1514
},
1515
{
1516
"include": "#class-body"
1517
}
1518
]
1519
},
1520
"record-constructor": {
1521
"begin": "(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))",
1522
"end": "(})|(?=;)",
1523
"endCaptures": {
1524
"1": {
1525
"name": "punctuation.section.method.end.bracket.curly.java"
1526
}
1527
},
1528
"name": "meta.method.java",
1529
"patterns": [
1530
{
1531
"include": "#storage-modifiers"
1532
},
1533
{
1534
"begin": "(\\w+)",
1535
"beginCaptures": {
1536
"1": {
1537
"name": "entity.name.function.java"
1538
}
1539
},
1540
"end": "(?=\\s*{)",
1541
"name": "meta.method.identifier.java",
1542
"patterns": [
1543
{
1544
"include": "#comments"
1545
}
1546
]
1547
},
1548
{
1549
"include": "#comments"
1550
},
1551
{
1552
"begin": "{",
1553
"beginCaptures": {
1554
"0": {
1555
"name": "punctuation.section.method.begin.bracket.curly.java"
1556
}
1557
},
1558
"end": "(?=})",
1559
"contentName": "meta.method.body.java",
1560
"patterns": [
1561
{
1562
"include": "#code"
1563
}
1564
]
1565
}
1566
]
1567
},
1568
"static-initializer": {
1569
"patterns": [
1570
{
1571
"include": "#anonymous-block-and-instance-initializer"
1572
},
1573
{
1574
"match": "static",
1575
"name": "storage.modifier.java"
1576
}
1577
]
1578
},
1579
"storage-modifiers": {
1580
"match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b",
1581
"name": "storage.modifier.java"
1582
},
1583
"strings": {
1584
"patterns": [
1585
{
1586
"begin": "\"\"\"",
1587
"beginCaptures": {
1588
"0": {
1589
"name": "punctuation.definition.string.begin.java"
1590
}
1591
},
1592
"end": "\"\"\"",
1593
"endCaptures": {
1594
"0": {
1595
"name": "punctuation.definition.string.end.java"
1596
}
1597
},
1598
"name": "string.quoted.triple.java",
1599
"patterns": [
1600
{
1601
"match": "(\\\\\"\"\")(?!\")|(\\\\.)",
1602
"name": "constant.character.escape.java"
1603
}
1604
]
1605
},
1606
{
1607
"begin": "\"",
1608
"beginCaptures": {
1609
"0": {
1610
"name": "punctuation.definition.string.begin.java"
1611
}
1612
},
1613
"end": "\"",
1614
"endCaptures": {
1615
"0": {
1616
"name": "punctuation.definition.string.end.java"
1617
}
1618
},
1619
"name": "string.quoted.double.java",
1620
"patterns": [
1621
{
1622
"match": "\\\\.",
1623
"name": "constant.character.escape.java"
1624
}
1625
]
1626
},
1627
{
1628
"begin": "'",
1629
"beginCaptures": {
1630
"0": {
1631
"name": "punctuation.definition.string.begin.java"
1632
}
1633
},
1634
"end": "'",
1635
"endCaptures": {
1636
"0": {
1637
"name": "punctuation.definition.string.end.java"
1638
}
1639
},
1640
"name": "string.quoted.single.java",
1641
"patterns": [
1642
{
1643
"match": "\\\\.",
1644
"name": "constant.character.escape.java"
1645
}
1646
]
1647
}
1648
]
1649
},
1650
"throws": {
1651
"begin": "throws",
1652
"beginCaptures": {
1653
"0": {
1654
"name": "storage.modifier.java"
1655
}
1656
},
1657
"end": "(?={|;)",
1658
"name": "meta.throwables.java",
1659
"patterns": [
1660
{
1661
"match": ",",
1662
"name": "punctuation.separator.delimiter.java"
1663
},
1664
{
1665
"match": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*",
1666
"name": "storage.type.java"
1667
},
1668
{
1669
"include": "#comments"
1670
}
1671
]
1672
},
1673
"try-catch-finally": {
1674
"patterns": [
1675
{
1676
"begin": "\\btry\\b",
1677
"beginCaptures": {
1678
"0": {
1679
"name": "keyword.control.try.java"
1680
}
1681
},
1682
"end": "}",
1683
"endCaptures": {
1684
"0": {
1685
"name": "punctuation.section.try.end.bracket.curly.java"
1686
}
1687
},
1688
"name": "meta.try.java",
1689
"patterns": [
1690
{
1691
"begin": "\\(",
1692
"beginCaptures": {
1693
"0": {
1694
"name": "punctuation.section.try.resources.begin.bracket.round.java"
1695
}
1696
},
1697
"end": "\\)",
1698
"endCaptures": {
1699
"0": {
1700
"name": "punctuation.section.try.resources.end.bracket.round.java"
1701
}
1702
},
1703
"name": "meta.try.resources.java",
1704
"patterns": [
1705
{
1706
"include": "#code"
1707
}
1708
]
1709
},
1710
{
1711
"begin": "{",
1712
"beginCaptures": {
1713
"0": {
1714
"name": "punctuation.section.try.begin.bracket.curly.java"
1715
}
1716
},
1717
"end": "(?=})",
1718
"contentName": "meta.try.body.java",
1719
"patterns": [
1720
{
1721
"include": "#code"
1722
}
1723
]
1724
}
1725
]
1726
},
1727
{
1728
"begin": "\\b(catch)\\b",
1729
"beginCaptures": {
1730
"1": {
1731
"name": "keyword.control.catch.java"
1732
}
1733
},
1734
"end": "}",
1735
"endCaptures": {
1736
"0": {
1737
"name": "punctuation.section.catch.end.bracket.curly.java"
1738
}
1739
},
1740
"name": "meta.catch.java",
1741
"patterns": [
1742
{
1743
"include": "#comments"
1744
},
1745
{
1746
"begin": "\\(",
1747
"beginCaptures": {
1748
"0": {
1749
"name": "punctuation.definition.parameters.begin.bracket.round.java"
1750
}
1751
},
1752
"end": "\\)",
1753
"endCaptures": {
1754
"0": {
1755
"name": "punctuation.definition.parameters.end.bracket.round.java"
1756
}
1757
},
1758
"contentName": "meta.catch.parameters.java",
1759
"patterns": [
1760
{
1761
"include": "#comments"
1762
},
1763
{
1764
"include": "#storage-modifiers"
1765
},
1766
{
1767
"begin": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*",
1768
"beginCaptures": {
1769
"0": {
1770
"name": "storage.type.java"
1771
}
1772
},
1773
"end": "(\\|)|(?=\\))",
1774
"endCaptures": {
1775
"1": {
1776
"name": "punctuation.catch.separator.java"
1777
}
1778
},
1779
"patterns": [
1780
{
1781
"include": "#comments"
1782
},
1783
{
1784
"match": "\\w+",
1785
"captures": {
1786
"0": {
1787
"name": "variable.parameter.java"
1788
}
1789
}
1790
}
1791
]
1792
}
1793
]
1794
},
1795
{
1796
"begin": "{",
1797
"beginCaptures": {
1798
"0": {
1799
"name": "punctuation.section.catch.begin.bracket.curly.java"
1800
}
1801
},
1802
"end": "(?=})",
1803
"contentName": "meta.catch.body.java",
1804
"patterns": [
1805
{
1806
"include": "#code"
1807
}
1808
]
1809
}
1810
]
1811
},
1812
{
1813
"begin": "\\bfinally\\b",
1814
"beginCaptures": {
1815
"0": {
1816
"name": "keyword.control.finally.java"
1817
}
1818
},
1819
"end": "}",
1820
"endCaptures": {
1821
"0": {
1822
"name": "punctuation.section.finally.end.bracket.curly.java"
1823
}
1824
},
1825
"name": "meta.finally.java",
1826
"patterns": [
1827
{
1828
"begin": "{",
1829
"beginCaptures": {
1830
"0": {
1831
"name": "punctuation.section.finally.begin.bracket.curly.java"
1832
}
1833
},
1834
"end": "(?=})",
1835
"contentName": "meta.finally.body.java",
1836
"patterns": [
1837
{
1838
"include": "#code"
1839
}
1840
]
1841
}
1842
]
1843
}
1844
]
1845
},
1846
"variables": {
1847
"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)",
1848
"end": "(?=\\=|:|;)",
1849
"name": "meta.definition.variable.java",
1850
"patterns": [
1851
{
1852
"match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))",
1853
"captures": {
1854
"1": {
1855
"name": "variable.other.definition.java"
1856
}
1857
}
1858
},
1859
{
1860
"include": "#all-types"
1861
},
1862
{
1863
"include": "#code"
1864
}
1865
]
1866
},
1867
"variables-local": {
1868
"begin": "(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))",
1869
"end": "(?=\\=|:|;)",
1870
"name": "meta.definition.variable.local.java",
1871
"patterns": [
1872
{
1873
"match": "\\bvar\\b",
1874
"name": "storage.type.local.java"
1875
},
1876
{
1877
"match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))",
1878
"captures": {
1879
"1": {
1880
"name": "variable.other.definition.java"
1881
}
1882
}
1883
},
1884
{
1885
"include": "#code"
1886
}
1887
]
1888
}
1889
}
1890
}
1891