summaryrefslogtreecommitdiff
path: root/lib/java.hover.tmLanguage.json
blob: c6682698ca9976528656d5e5efcac899babcaf5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
{
	"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
	"name": "Java",
	"scopeName": "source.java.hover",
	"patterns": [
		{
			"include": "#keywords"
		},
		{
			"include": "#comments"
		},
		{
			"include": "#annotation"
		},
		{
			"match": "\\b(\\w+\\.)*[A-Z]\\w*\\b",
			"captures": {
				"0": {
					"patterns": [
						{
							"match": "\\b\\w+\\b",
							"name": "storage.type.java"
						},
						{
							"match": "\\.",
							"name": "keyword.other.dot"
						}
					]
				}
			}
		},
		{
			"match": "\\b(byte|short|int|long|char|float|double|boolean|void)\\b",
			"name": "storage.type.java"
		},
		{
			"match": "\\b([a-z]\\w*)\\b",
			"name": "variable.java"
		}
	],
	"repository": {
		"annotation": {
			"patterns": [
				{
					"begin": "(@[^ (]+)(\\()",
					"beginCaptures": {
						"1": {
							"name": "punctuation.definition.tag"
						},
						"2": {
							"name": "punctuation.definition.tag.left"
						}
					},
					"end": "\\)",
					"endCaptures": {
						"0": {
							"name": "punctuation.definition.tag.right"
						}
					},
					"name": "meta.annotation.java",
					"patterns": [
						{
							"captures": {
								"1": {
									"name": "punctuation.definition.tag.key"
								},
								"2": {
									"name": "punctuation.definition.tag.assign"
								}
							},
							"match": "(\\w*) *(=)"
						},
						{
							"include": "#code"
						}
					]
				},
				{
					"match": "@\\w+",
					"name": "punctuation.definition.tag"
				}
			]
		},
		"keywords":  {
			"patterns": [
				{
					"match": "\\b(var|class|package|import)\\b",
					"name": "keyword.other"
				},
				{
					"match": "\\b(try|finally|throw|return|break|continue|do|for|while|switch|case|if|else|goto)\\b",
					"name": "keyword.control"
				},
				{
					"match": "\\b(new|instanceof)\\b",
					"name": "keyword.control"
				},
				{
					"match": "\\.(class)\\b",
					"captures": {
						"1": {
							"name": "keyword.control"
						}
					}
				},
				{
					"match": "\\b(default):",
					"captures": {
						"1": {
							"name": "keyword.control.default"
						}
					}
				},
				{
					"match": "\\b(private|public|protected|default(?!=:)|static|final|const|extends|implements)\\b",
					"name": "storage.modifier.java"
				},
				{
					"match": "\\b(this|super)\\b",
					"name": "variable.language.java"
				},
				{
					"match": "[\\?<>\\[\\]]",
					"name": "keyword.other"
				}
			]
		},
		"comments": {
			"patterns": [
				{
					"begin": "/\\*",
					"captures": {
						"0": {
							"name": "punctuation.definition.comment"
						}
					},
					"end": "\\*/",
					"name": "comment.block"
				},
				{
					"begin": "(//) *(TODO)",
					"end": "$",
					"contentName": "punctuation.definition.tag",
					"beginCaptures": {
						"1": {
							"name": "punctuation.definition.tag"
						},
						"2": {
							"name": "comment.block",
							"patterns": [
								{
									"match": "TODO",
									"name": "markup.italic"
								}
							]
						}
					}
				},
				{
					"begin": "//",
					"end": "$",
					"name": "punctuation.definition.tag"
				}
			]
		},
		"constants": {
			"patterns": [
				{
					"match": "\\b(null|true|false)\\b",
					"name": "constant.numeric"
				},
				{
					"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(?!\\$)",
					"name": "constant.numeric.hex"
				},
				{
					"match": "\\b(?<!\\$)0(b|B)[01]([01_]*[01])?[Ll]?\\b(?!\\$)",
					"name": "constant.numeric.binary"
				},
				{
					"match": "\\b(?<!\\$)0[0-7]([0-7_]*[0-7])?[Ll]?\\b(?!\\$)",
					"name": "constant.numeric.octal"
				},
				{
					"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(?!\\$)",
					"name": "constant.numeric.decimal"
				},
				{
					"begin": "\"",
					"beginCaptures": {
						"0": {
							"name": "punctuation.definition.string.begin"
						}
					},
					"end": "\"",
					"endCaptures": {
						"0": {
							"name": "punctuation.definition.string.end"
						}
					},
					"name": "string.quoted.double.java",
					"patterns": [
						{
							"match": "\\\\.",
							"name": "constant.character.escape"
						}
					]
				},
				{
					"begin": "'",
					"beginCaptures": {
						"0": {
							"name": "punctuation.definition.string.begin"
						}
					},
					"end": "'",
					"endCaptures": {
						"0": {
							"name": "punctuation.definition.string.end"
						}
					},
					"name": "string.quoted.single.java",
					"patterns": [
						{
							"match": "\\\\.",
							"name": "constant.character.escape"
						}
					]
				}
			]
		}
	}
}