Skip to content

Commit ad9e43f

Browse files
committed
Deal with anonymous classes
1 parent af68bb5 commit ad9e43f

File tree

1 file changed

+135
-22
lines changed

1 file changed

+135
-22
lines changed

lib/java.tmLanguage.json

Lines changed: 135 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@
3636
"include": "#comments"
3737
},
3838
{
39-
"include": "#types"
39+
"match": "\\b([a-z]\\w*\\.)*([A-Z]\\w*)\\b",
40+
"captures": {
41+
"2": {
42+
"name": "entity.name.type"
43+
}
44+
}
4045
},
4146
{
4247
"begin": "{",
@@ -53,7 +58,7 @@
5358
"include": "#method-declaration"
5459
},
5560
{
56-
"include": "#type-parameters"
61+
"include": "#type-parameters-declaration"
5762
},
5863
{
5964
"include": "#block"
@@ -84,13 +89,7 @@
8489
"name": "meta.field-initializer",
8590
"patterns": [
8691
{
87-
"include": "#keywords"
88-
},
89-
{
90-
"include": "#comments"
91-
},
92-
{
93-
"include": "#constants"
92+
"include": "#expressions"
9493
}
9594
]
9695
}
@@ -124,9 +123,9 @@
124123
}
125124
]
126125
},
127-
"type-parameters": {
126+
"type-parameters-declaration": {
128127
"match": "<[^<>]+>",
129-
"name": "meta.type-parameters",
128+
"name": "meta.type-parameters-declaration",
130129
"captures": {
131130
"0": {
132131
"patterns": [
@@ -153,16 +152,10 @@
153152
"include": "#block"
154153
},
155154
{
156-
"include": "#keywords"
157-
},
158-
{
159-
"include": "#comments"
160-
},
161-
{
162-
"include": "#constants"
155+
"include": "#types"
163156
},
164157
{
165-
"include": "#types"
158+
"include": "#expressions"
166159
}
167160
]
168161
},
@@ -214,6 +207,37 @@
214207
}
215208
]
216209
},
210+
"expressions": {
211+
"patterns": [
212+
{
213+
"include": "#keywords"
214+
},
215+
{
216+
"include": "#comments"
217+
},
218+
{
219+
"include": "#constants"
220+
},
221+
{
222+
"include": "#type-arguments"
223+
},
224+
{
225+
"include": "#parens"
226+
},
227+
{
228+
"begin": "\\(",
229+
"end": "\\)",
230+
"patterns": [
231+
{
232+
"include": "#expressions"
233+
}
234+
]
235+
},
236+
{
237+
"include": "#new"
238+
}
239+
]
240+
},
217241
"keywords": {
218242
"patterns": [
219243
{
@@ -233,7 +257,7 @@
233257
"name": "keyword.control"
234258
},
235259
{
236-
"match": "\\b(new|instanceof)\\b",
260+
"match": "\\b(instanceof)\\b",
237261
"name": "keyword.control"
238262
},
239263
{
@@ -359,7 +383,7 @@
359383
"name": "entity.name.type"
360384
},
361385
"2": {
362-
"name": "meta.type-parameters",
386+
"name": "meta.type-parameters-declaration",
363387
"patterns": [
364388
{
365389
"include": "#keywords"
@@ -369,7 +393,96 @@
369393
},
370394
{
371395
"match": "\\b([a-z]\\w*\\.)*([A-Z]\\w*)\\b",
372-
"name": "entity.name.type"
396+
"captures": {
397+
"2": {
398+
"name": "entity.name.type"
399+
}
400+
}
401+
}
402+
]
403+
}
404+
}
405+
}
406+
]
407+
},
408+
"new": {
409+
"begin": "\\b(new)\\b",
410+
"end": "(?=;|\\)|\\.|,|:|}|=)",
411+
"name": "meta.new",
412+
"captures": {
413+
"1": {
414+
"name": "keyword.control"
415+
}
416+
},
417+
"patterns": [
418+
{
419+
"include": "#expressions"
420+
},
421+
{
422+
"match": "\\b([a-z]\\w*\\.)*([A-Z]\\w*)\\b",
423+
"captures": {
424+
"2": {
425+
"name": "entity.name.type"
426+
}
427+
}
428+
},
429+
{
430+
"begin": "{",
431+
"end": "}",
432+
"name": "meta.anonymous-class",
433+
"patterns": [
434+
{
435+
"include": "#class-declaration"
436+
},
437+
{
438+
"include": "#field-initializer"
439+
},
440+
{
441+
"include": "#method-declaration"
442+
},
443+
{
444+
"include": "#type-parameters-declaration"
445+
},
446+
{
447+
"include": "#block"
448+
},
449+
{
450+
"include": "#annotations"
451+
},
452+
{
453+
"include": "#keywords"
454+
},
455+
{
456+
"include": "#comments"
457+
},
458+
{
459+
"include": "#types"
460+
}
461+
]
462+
}
463+
]
464+
},
465+
"type-arguments": {
466+
"patterns": [
467+
{
468+
"match": "\\.(?<GROUP><([^<>]|\\g<GROUP>)*>)",
469+
"name": "meta.type-arguments",
470+
"captures": {
471+
"1": {
472+
"patterns": [
473+
{
474+
"include": "#keywords"
475+
},
476+
{
477+
"include": "#comments"
478+
},
479+
{
480+
"match": "\\b([a-z]\\w*\\.)*([A-Z]\\w*)\\b",
481+
"captures": {
482+
"2": {
483+
"name": "entity.name.type"
484+
}
485+
}
373486
}
374487
]
375488
}

0 commit comments

Comments
 (0)