tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,1378 @@
1
+ {
2
+ "displayName": "Groovy",
3
+ "name": "groovy",
4
+ "patterns": [
5
+ {
6
+ "captures": {
7
+ "1": {
8
+ "name": "punctuation.definition.comment.groovy"
9
+ }
10
+ },
11
+ "match": "^(#!).+$\\n",
12
+ "name": "comment.line.hashbang.groovy"
13
+ },
14
+ {
15
+ "captures": {
16
+ "1": {
17
+ "name": "keyword.other.package.groovy"
18
+ },
19
+ "2": {
20
+ "name": "storage.modifier.package.groovy"
21
+ },
22
+ "3": {
23
+ "name": "punctuation.terminator.groovy"
24
+ }
25
+ },
26
+ "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
27
+ "name": "meta.package.groovy"
28
+ },
29
+ {
30
+ "begin": "(import static)\\b\\s*",
31
+ "beginCaptures": {
32
+ "1": {
33
+ "name": "keyword.other.import.static.groovy"
34
+ }
35
+ },
36
+ "captures": {
37
+ "1": {
38
+ "name": "keyword.other.import.groovy"
39
+ },
40
+ "2": {
41
+ "name": "storage.modifier.import.groovy"
42
+ },
43
+ "3": {
44
+ "name": "punctuation.terminator.groovy"
45
+ }
46
+ },
47
+ "contentName": "storage.modifier.import.groovy",
48
+ "end": "\\s*(?:$|(?=%>)(;))",
49
+ "endCaptures": {
50
+ "1": {
51
+ "name": "punctuation.terminator.groovy"
52
+ }
53
+ },
54
+ "name": "meta.import.groovy",
55
+ "patterns": [
56
+ {
57
+ "match": "\\.",
58
+ "name": "punctuation.separator.groovy"
59
+ },
60
+ {
61
+ "match": "\\s",
62
+ "name": "invalid.illegal.character_not_allowed_here.groovy"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "begin": "(import)\\b\\s*",
68
+ "beginCaptures": {
69
+ "1": {
70
+ "name": "keyword.other.import.groovy"
71
+ }
72
+ },
73
+ "captures": {
74
+ "1": {
75
+ "name": "keyword.other.import.groovy"
76
+ },
77
+ "2": {
78
+ "name": "storage.modifier.import.groovy"
79
+ },
80
+ "3": {
81
+ "name": "punctuation.terminator.groovy"
82
+ }
83
+ },
84
+ "contentName": "storage.modifier.import.groovy",
85
+ "end": "\\s*(?:$|(?=%>)|(;))",
86
+ "endCaptures": {
87
+ "1": {
88
+ "name": "punctuation.terminator.groovy"
89
+ }
90
+ },
91
+ "name": "meta.import.groovy",
92
+ "patterns": [
93
+ {
94
+ "match": "\\.",
95
+ "name": "punctuation.separator.groovy"
96
+ },
97
+ {
98
+ "match": "\\s",
99
+ "name": "invalid.illegal.character_not_allowed_here.groovy"
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ "captures": {
105
+ "1": {
106
+ "name": "keyword.other.import.groovy"
107
+ },
108
+ "2": {
109
+ "name": "keyword.other.import.static.groovy"
110
+ },
111
+ "3": {
112
+ "name": "storage.modifier.import.groovy"
113
+ },
114
+ "4": {
115
+ "name": "punctuation.terminator.groovy"
116
+ }
117
+ },
118
+ "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
119
+ "name": "meta.import.groovy"
120
+ },
121
+ {
122
+ "include": "#groovy"
123
+ }
124
+ ],
125
+ "repository": {
126
+ "annotations": {
127
+ "patterns": [
128
+ {
129
+ "begin": "(?<!\\.)(@[^ (]+)(\\()",
130
+ "beginCaptures": {
131
+ "1": {
132
+ "name": "storage.type.annotation.groovy"
133
+ },
134
+ "2": {
135
+ "name": "punctuation.definition.annotation-arguments.begin.groovy"
136
+ }
137
+ },
138
+ "end": "(\\))",
139
+ "endCaptures": {
140
+ "1": {
141
+ "name": "punctuation.definition.annotation-arguments.end.groovy"
142
+ }
143
+ },
144
+ "name": "meta.declaration.annotation.groovy",
145
+ "patterns": [
146
+ {
147
+ "captures": {
148
+ "1": {
149
+ "name": "constant.other.key.groovy"
150
+ },
151
+ "2": {
152
+ "name": "keyword.operator.assignment.groovy"
153
+ }
154
+ },
155
+ "match": "(\\w*)\\s*(=)"
156
+ },
157
+ {
158
+ "include": "#values"
159
+ },
160
+ {
161
+ "match": ",",
162
+ "name": "punctuation.definition.seperator.groovy"
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "match": "(?<!\\.)@\\S+",
168
+ "name": "storage.type.annotation.groovy"
169
+ }
170
+ ]
171
+ },
172
+ "anonymous-classes-and-new": {
173
+ "begin": "\\bnew\\b",
174
+ "beginCaptures": {
175
+ "0": {
176
+ "name": "keyword.control.new.groovy"
177
+ }
178
+ },
179
+ "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=[;])|$",
180
+ "patterns": [
181
+ {
182
+ "begin": "(\\w+)\\s*(?=\\[)",
183
+ "beginCaptures": {
184
+ "1": {
185
+ "name": "storage.type.groovy"
186
+ }
187
+ },
188
+ "end": "}|(?=\\s*(?:,|;|\\)))|$",
189
+ "patterns": [
190
+ {
191
+ "begin": "\\[",
192
+ "end": "\\]",
193
+ "patterns": [
194
+ {
195
+ "include": "#groovy"
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ "begin": "{",
201
+ "end": "(?=})",
202
+ "patterns": [
203
+ {
204
+ "include": "#groovy"
205
+ }
206
+ ]
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "begin": "(?=\\w.*\\(?)",
212
+ "end": "(?<=\\))|$",
213
+ "patterns": [
214
+ {
215
+ "include": "#object-types"
216
+ },
217
+ {
218
+ "begin": "\\(",
219
+ "beginCaptures": {
220
+ "1": {
221
+ "name": "storage.type.groovy"
222
+ }
223
+ },
224
+ "end": "\\)",
225
+ "patterns": [
226
+ {
227
+ "include": "#groovy"
228
+ }
229
+ ]
230
+ }
231
+ ]
232
+ },
233
+ {
234
+ "begin": "{",
235
+ "end": "}",
236
+ "name": "meta.inner-class.groovy",
237
+ "patterns": [
238
+ {
239
+ "include": "#class-body"
240
+ }
241
+ ]
242
+ }
243
+ ]
244
+ },
245
+ "braces": {
246
+ "begin": "\\{",
247
+ "end": "\\}",
248
+ "patterns": [
249
+ {
250
+ "include": "#groovy-code"
251
+ }
252
+ ]
253
+ },
254
+ "class": {
255
+ "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)",
256
+ "end": "}",
257
+ "endCaptures": {
258
+ "0": {
259
+ "name": "punctuation.section.class.end.groovy"
260
+ }
261
+ },
262
+ "name": "meta.definition.class.groovy",
263
+ "patterns": [
264
+ {
265
+ "include": "#storage-modifiers"
266
+ },
267
+ {
268
+ "include": "#comments"
269
+ },
270
+ {
271
+ "captures": {
272
+ "1": {
273
+ "name": "storage.modifier.groovy"
274
+ },
275
+ "2": {
276
+ "name": "entity.name.type.class.groovy"
277
+ }
278
+ },
279
+ "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
280
+ "name": "meta.class.identifier.groovy"
281
+ },
282
+ {
283
+ "begin": "extends",
284
+ "beginCaptures": {
285
+ "0": {
286
+ "name": "storage.modifier.extends.groovy"
287
+ }
288
+ },
289
+ "end": "(?={|implements)",
290
+ "name": "meta.definition.class.inherited.classes.groovy",
291
+ "patterns": [
292
+ {
293
+ "include": "#object-types-inherited"
294
+ },
295
+ {
296
+ "include": "#comments"
297
+ }
298
+ ]
299
+ },
300
+ {
301
+ "begin": "(implements)\\s",
302
+ "beginCaptures": {
303
+ "1": {
304
+ "name": "storage.modifier.implements.groovy"
305
+ }
306
+ },
307
+ "end": "(?=\\s*extends|\\{)",
308
+ "name": "meta.definition.class.implemented.interfaces.groovy",
309
+ "patterns": [
310
+ {
311
+ "include": "#object-types-inherited"
312
+ },
313
+ {
314
+ "include": "#comments"
315
+ }
316
+ ]
317
+ },
318
+ {
319
+ "begin": "{",
320
+ "end": "(?=})",
321
+ "name": "meta.class.body.groovy",
322
+ "patterns": [
323
+ {
324
+ "include": "#class-body"
325
+ }
326
+ ]
327
+ }
328
+ ]
329
+ },
330
+ "class-body": {
331
+ "patterns": [
332
+ {
333
+ "include": "#enum-values"
334
+ },
335
+ {
336
+ "include": "#constructors"
337
+ },
338
+ {
339
+ "include": "#groovy"
340
+ }
341
+ ]
342
+ },
343
+ "closures": {
344
+ "begin": "\\{(?=.*?->)",
345
+ "end": "\\}",
346
+ "patterns": [
347
+ {
348
+ "begin": "(?<=\\{)(?=[^\\}]*?->)",
349
+ "end": "->",
350
+ "endCaptures": {
351
+ "0": {
352
+ "name": "keyword.operator.groovy"
353
+ }
354
+ },
355
+ "patterns": [
356
+ {
357
+ "begin": "(?!->)",
358
+ "end": "(?=->)",
359
+ "name": "meta.closure.parameters.groovy",
360
+ "patterns": [
361
+ {
362
+ "begin": "(?!,|->)",
363
+ "end": "(?=,|->)",
364
+ "name": "meta.closure.parameter.groovy",
365
+ "patterns": [
366
+ {
367
+ "begin": "=",
368
+ "beginCaptures": {
369
+ "0": {
370
+ "name": "keyword.operator.assignment.groovy"
371
+ }
372
+ },
373
+ "end": "(?=,|->)",
374
+ "name": "meta.parameter.default.groovy",
375
+ "patterns": [
376
+ {
377
+ "include": "#groovy-code"
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "include": "#parameters"
383
+ }
384
+ ]
385
+ }
386
+ ]
387
+ }
388
+ ]
389
+ },
390
+ {
391
+ "begin": "(?=[^}])",
392
+ "end": "(?=\\})",
393
+ "patterns": [
394
+ {
395
+ "include": "#groovy-code"
396
+ }
397
+ ]
398
+ }
399
+ ]
400
+ },
401
+ "comment-block": {
402
+ "begin": "/\\*",
403
+ "captures": {
404
+ "0": {
405
+ "name": "punctuation.definition.comment.groovy"
406
+ }
407
+ },
408
+ "end": "\\*/",
409
+ "name": "comment.block.groovy"
410
+ },
411
+ "comments": {
412
+ "patterns": [
413
+ {
414
+ "captures": {
415
+ "0": {
416
+ "name": "punctuation.definition.comment.groovy"
417
+ }
418
+ },
419
+ "match": "/\\*\\*/",
420
+ "name": "comment.block.empty.groovy"
421
+ },
422
+ {
423
+ "include": "text.html.javadoc"
424
+ },
425
+ {
426
+ "include": "#comment-block"
427
+ },
428
+ {
429
+ "captures": {
430
+ "1": {
431
+ "name": "punctuation.definition.comment.groovy"
432
+ }
433
+ },
434
+ "match": "(//).*$\\n?",
435
+ "name": "comment.line.double-slash.groovy"
436
+ }
437
+ ]
438
+ },
439
+ "constants": {
440
+ "patterns": [
441
+ {
442
+ "match": "\\b([A-Z][A-Z0-9_]+)\\b",
443
+ "name": "constant.other.groovy"
444
+ },
445
+ {
446
+ "match": "\\b(true|false|null)\\b",
447
+ "name": "constant.language.groovy"
448
+ }
449
+ ]
450
+ },
451
+ "constructors": {
452
+ "applyEndPatternLast": 1,
453
+ "begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",
454
+ "end": "}",
455
+ "patterns": [
456
+ {
457
+ "include": "#method-content"
458
+ }
459
+ ]
460
+ },
461
+ "enum-values": {
462
+ "patterns": [
463
+ {
464
+ "begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",
465
+ "beginCaptures": {
466
+ "1": {
467
+ "name": "constant.enum.name.groovy"
468
+ }
469
+ },
470
+ "end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))",
471
+ "patterns": [
472
+ {
473
+ "begin": "\\(",
474
+ "end": "\\)",
475
+ "name": "meta.enum.value.groovy",
476
+ "patterns": [
477
+ {
478
+ "match": ",",
479
+ "name": "punctuation.definition.seperator.parameter.groovy"
480
+ },
481
+ {
482
+ "include": "#groovy-code"
483
+ }
484
+ ]
485
+ }
486
+ ]
487
+ }
488
+ ]
489
+ },
490
+ "groovy": {
491
+ "patterns": [
492
+ {
493
+ "include": "#comments"
494
+ },
495
+ {
496
+ "include": "#class"
497
+ },
498
+ {
499
+ "include": "#variables"
500
+ },
501
+ {
502
+ "include": "#methods"
503
+ },
504
+ {
505
+ "include": "#annotations"
506
+ },
507
+ {
508
+ "include": "#groovy-code"
509
+ }
510
+ ]
511
+ },
512
+ "groovy-code": {
513
+ "patterns": [
514
+ {
515
+ "include": "#groovy-code-minus-map-keys"
516
+ },
517
+ {
518
+ "include": "#map-keys"
519
+ }
520
+ ]
521
+ },
522
+ "groovy-code-minus-map-keys": {
523
+ "comment": "In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that",
524
+ "patterns": [
525
+ {
526
+ "include": "#comments"
527
+ },
528
+ {
529
+ "include": "#annotations"
530
+ },
531
+ {
532
+ "include": "#support-functions"
533
+ },
534
+ {
535
+ "include": "#keyword-language"
536
+ },
537
+ {
538
+ "include": "#values"
539
+ },
540
+ {
541
+ "include": "#anonymous-classes-and-new"
542
+ },
543
+ {
544
+ "include": "#keyword-operator"
545
+ },
546
+ {
547
+ "include": "#types"
548
+ },
549
+ {
550
+ "include": "#storage-modifiers"
551
+ },
552
+ {
553
+ "include": "#parens"
554
+ },
555
+ {
556
+ "include": "#closures"
557
+ },
558
+ {
559
+ "include": "#braces"
560
+ }
561
+ ]
562
+ },
563
+ "keyword": {
564
+ "patterns": [
565
+ {
566
+ "include": "#keyword-operator"
567
+ },
568
+ {
569
+ "include": "#keyword-language"
570
+ }
571
+ ]
572
+ },
573
+ "keyword-language": {
574
+ "patterns": [
575
+ {
576
+ "match": "\\b(try|catch|finally|throw)\\b",
577
+ "name": "keyword.control.exception.groovy"
578
+ },
579
+ {
580
+ "match": "\\b((?<!\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\b",
581
+ "name": "keyword.control.groovy"
582
+ },
583
+ {
584
+ "begin": "\\bcase\\b",
585
+ "beginCaptures": {
586
+ "0": {
587
+ "name": "keyword.control.groovy"
588
+ }
589
+ },
590
+ "end": ":",
591
+ "endCaptures": {
592
+ "0": {
593
+ "name": "punctuation.definition.case-terminator.groovy"
594
+ }
595
+ },
596
+ "name": "meta.case.groovy",
597
+ "patterns": [
598
+ {
599
+ "include": "#groovy-code-minus-map-keys"
600
+ }
601
+ ]
602
+ },
603
+ {
604
+ "begin": "\\b(assert)\\s",
605
+ "beginCaptures": {
606
+ "1": {
607
+ "name": "keyword.control.assert.groovy"
608
+ }
609
+ },
610
+ "end": "$|;|}",
611
+ "name": "meta.declaration.assertion.groovy",
612
+ "patterns": [
613
+ {
614
+ "match": ":",
615
+ "name": "keyword.operator.assert.expression-seperator.groovy"
616
+ },
617
+ {
618
+ "include": "#groovy-code-minus-map-keys"
619
+ }
620
+ ]
621
+ },
622
+ {
623
+ "match": "\\b(throws)\\b",
624
+ "name": "keyword.other.throws.groovy"
625
+ }
626
+ ]
627
+ },
628
+ "keyword-operator": {
629
+ "patterns": [
630
+ {
631
+ "match": "\\b(as)\\b",
632
+ "name": "keyword.operator.as.groovy"
633
+ },
634
+ {
635
+ "match": "\\b(in)\\b",
636
+ "name": "keyword.operator.in.groovy"
637
+ },
638
+ {
639
+ "match": "\\?\\:",
640
+ "name": "keyword.operator.elvis.groovy"
641
+ },
642
+ {
643
+ "match": "\\*\\:",
644
+ "name": "keyword.operator.spreadmap.groovy"
645
+ },
646
+ {
647
+ "match": "\\.\\.",
648
+ "name": "keyword.operator.range.groovy"
649
+ },
650
+ {
651
+ "match": "\\->",
652
+ "name": "keyword.operator.arrow.groovy"
653
+ },
654
+ {
655
+ "match": "<<",
656
+ "name": "keyword.operator.leftshift.groovy"
657
+ },
658
+ {
659
+ "match": "(?<=\\S)\\.(?=\\S)",
660
+ "name": "keyword.operator.navigation.groovy"
661
+ },
662
+ {
663
+ "match": "(?<=\\S)\\?\\.(?=\\S)",
664
+ "name": "keyword.operator.safe-navigation.groovy"
665
+ },
666
+ {
667
+ "begin": "\\?",
668
+ "beginCaptures": {
669
+ "0": {
670
+ "name": "keyword.operator.ternary.groovy"
671
+ }
672
+ },
673
+ "end": "(?=$|\\)|}|])",
674
+ "name": "meta.evaluation.ternary.groovy",
675
+ "patterns": [
676
+ {
677
+ "match": ":",
678
+ "name": "keyword.operator.ternary.expression-seperator.groovy"
679
+ },
680
+ {
681
+ "include": "#groovy-code-minus-map-keys"
682
+ }
683
+ ]
684
+ },
685
+ {
686
+ "match": "==~",
687
+ "name": "keyword.operator.match.groovy"
688
+ },
689
+ {
690
+ "match": "=~",
691
+ "name": "keyword.operator.find.groovy"
692
+ },
693
+ {
694
+ "match": "\\b(instanceof)\\b",
695
+ "name": "keyword.operator.instanceof.groovy"
696
+ },
697
+ {
698
+ "match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)",
699
+ "name": "keyword.operator.comparison.groovy"
700
+ },
701
+ {
702
+ "match": "=",
703
+ "name": "keyword.operator.assignment.groovy"
704
+ },
705
+ {
706
+ "match": "(\\-\\-|\\+\\+)",
707
+ "name": "keyword.operator.increment-decrement.groovy"
708
+ },
709
+ {
710
+ "match": "(\\-|\\+|\\*|\\/|%)",
711
+ "name": "keyword.operator.arithmetic.groovy"
712
+ },
713
+ {
714
+ "match": "(!|&&|\\|\\|)",
715
+ "name": "keyword.operator.logical.groovy"
716
+ }
717
+ ]
718
+ },
719
+ "language-variables": {
720
+ "patterns": [
721
+ {
722
+ "match": "\\b(this|super)\\b",
723
+ "name": "variable.language.groovy"
724
+ }
725
+ ]
726
+ },
727
+ "map-keys": {
728
+ "patterns": [
729
+ {
730
+ "captures": {
731
+ "1": {
732
+ "name": "constant.other.key.groovy"
733
+ },
734
+ "2": {
735
+ "name": "punctuation.definition.seperator.key-value.groovy"
736
+ }
737
+ },
738
+ "match": "(\\w+)\\s*(:)"
739
+ }
740
+ ]
741
+ },
742
+ "method-call": {
743
+ "begin": "([\\w$]+)(\\()",
744
+ "beginCaptures": {
745
+ "1": {
746
+ "name": "meta.method.groovy"
747
+ },
748
+ "2": {
749
+ "name": "punctuation.definition.method-parameters.begin.groovy"
750
+ }
751
+ },
752
+ "end": "\\)",
753
+ "endCaptures": {
754
+ "0": {
755
+ "name": "punctuation.definition.method-parameters.end.groovy"
756
+ }
757
+ },
758
+ "name": "meta.method-call.groovy",
759
+ "patterns": [
760
+ {
761
+ "match": ",",
762
+ "name": "punctuation.definition.seperator.parameter.groovy"
763
+ },
764
+ {
765
+ "include": "#groovy-code"
766
+ }
767
+ ]
768
+ },
769
+ "method-content": {
770
+ "patterns": [
771
+ {
772
+ "match": "\\s"
773
+ },
774
+ {
775
+ "include": "#annotations"
776
+ },
777
+ {
778
+ "begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()",
779
+ "end": "(?=[\\w$]+\\s*\\()",
780
+ "name": "meta.method.return-type.java",
781
+ "patterns": [
782
+ {
783
+ "include": "#storage-modifiers"
784
+ },
785
+ {
786
+ "include": "#types"
787
+ }
788
+ ]
789
+ },
790
+ {
791
+ "begin": "([\\w$]+)\\s*\\(",
792
+ "beginCaptures": {
793
+ "1": {
794
+ "name": "entity.name.function.java"
795
+ }
796
+ },
797
+ "end": "\\)",
798
+ "name": "meta.definition.method.signature.java",
799
+ "patterns": [
800
+ {
801
+ "begin": "(?=[^)])",
802
+ "end": "(?=\\))",
803
+ "name": "meta.method.parameters.groovy",
804
+ "patterns": [
805
+ {
806
+ "begin": "(?=[^,)])",
807
+ "end": "(?=,|\\))",
808
+ "name": "meta.method.parameter.groovy",
809
+ "patterns": [
810
+ {
811
+ "match": ",",
812
+ "name": "punctuation.definition.separator.groovy"
813
+ },
814
+ {
815
+ "begin": "=",
816
+ "beginCaptures": {
817
+ "0": {
818
+ "name": "keyword.operator.assignment.groovy"
819
+ }
820
+ },
821
+ "end": "(?=,|\\))",
822
+ "name": "meta.parameter.default.groovy",
823
+ "patterns": [
824
+ {
825
+ "include": "#groovy-code"
826
+ }
827
+ ]
828
+ },
829
+ {
830
+ "include": "#parameters"
831
+ }
832
+ ]
833
+ }
834
+ ]
835
+ }
836
+ ]
837
+ },
838
+ {
839
+ "begin": "(?=<)",
840
+ "end": "(?=\\s)",
841
+ "name": "meta.method.paramerised-type.groovy",
842
+ "patterns": [
843
+ {
844
+ "begin": "<",
845
+ "end": ">",
846
+ "name": "storage.type.parameters.groovy",
847
+ "patterns": [
848
+ {
849
+ "include": "#types"
850
+ },
851
+ {
852
+ "match": ",",
853
+ "name": "punctuation.definition.seperator.groovy"
854
+ }
855
+ ]
856
+ }
857
+ ]
858
+ },
859
+ {
860
+ "begin": "throws",
861
+ "beginCaptures": {
862
+ "0": {
863
+ "name": "storage.modifier.groovy"
864
+ }
865
+ },
866
+ "end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))",
867
+ "name": "meta.throwables.groovy",
868
+ "patterns": [
869
+ {
870
+ "include": "#object-types"
871
+ }
872
+ ]
873
+ },
874
+ {
875
+ "begin": "{",
876
+ "end": "(?=})",
877
+ "name": "meta.method.body.java",
878
+ "patterns": [
879
+ {
880
+ "include": "#groovy-code"
881
+ }
882
+ ]
883
+ }
884
+ ]
885
+ },
886
+ "methods": {
887
+ "applyEndPatternLast": 1,
888
+ "begin": "(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))",
889
+ "end": "}|(?=[^{])",
890
+ "name": "meta.definition.method.groovy",
891
+ "patterns": [
892
+ {
893
+ "include": "#method-content"
894
+ }
895
+ ]
896
+ },
897
+ "nest_curly": {
898
+ "begin": "\\{",
899
+ "captures": {
900
+ "0": {
901
+ "name": "punctuation.section.scope.groovy"
902
+ }
903
+ },
904
+ "end": "\\}",
905
+ "patterns": [
906
+ {
907
+ "include": "#nest_curly"
908
+ }
909
+ ]
910
+ },
911
+ "numbers": {
912
+ "patterns": [
913
+ {
914
+ "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",
915
+ "name": "constant.numeric.groovy"
916
+ }
917
+ ]
918
+ },
919
+ "object-types": {
920
+ "patterns": [
921
+ {
922
+ "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<",
923
+ "end": ">|[^\\w\\s,\\?<\\[\\]]",
924
+ "name": "storage.type.generic.groovy",
925
+ "patterns": [
926
+ {
927
+ "include": "#object-types"
928
+ },
929
+ {
930
+ "begin": "<",
931
+ "comment": "This is just to support <>'s with no actual type prefix",
932
+ "end": ">|[^\\w\\s,\\[\\]<]",
933
+ "name": "storage.type.generic.groovy"
934
+ }
935
+ ]
936
+ },
937
+ {
938
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)",
939
+ "end": "(?=[^\\]\\s])",
940
+ "name": "storage.type.object.array.groovy",
941
+ "patterns": [
942
+ {
943
+ "begin": "\\[",
944
+ "end": "\\]",
945
+ "patterns": [
946
+ {
947
+ "include": "#groovy"
948
+ }
949
+ ]
950
+ }
951
+ ]
952
+ },
953
+ {
954
+ "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b",
955
+ "name": "storage.type.groovy"
956
+ }
957
+ ]
958
+ },
959
+ "object-types-inherited": {
960
+ "patterns": [
961
+ {
962
+ "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<",
963
+ "end": ">|[^\\w\\s,\\?<\\[\\]]",
964
+ "name": "entity.other.inherited-class.groovy",
965
+ "patterns": [
966
+ {
967
+ "include": "#object-types-inherited"
968
+ },
969
+ {
970
+ "begin": "<",
971
+ "comment": "This is just to support <>'s with no actual type prefix",
972
+ "end": ">|[^\\w\\s,\\[\\]<]",
973
+ "name": "storage.type.generic.groovy"
974
+ }
975
+ ]
976
+ },
977
+ {
978
+ "captures": {
979
+ "1": {
980
+ "name": "keyword.operator.dereference.groovy"
981
+ }
982
+ },
983
+ "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",
984
+ "name": "entity.other.inherited-class.groovy"
985
+ }
986
+ ]
987
+ },
988
+ "parameters": {
989
+ "patterns": [
990
+ {
991
+ "include": "#annotations"
992
+ },
993
+ {
994
+ "include": "#storage-modifiers"
995
+ },
996
+ {
997
+ "include": "#types"
998
+ },
999
+ {
1000
+ "match": "\\w+",
1001
+ "name": "variable.parameter.method.groovy"
1002
+ }
1003
+ ]
1004
+ },
1005
+ "parens": {
1006
+ "begin": "\\(",
1007
+ "end": "\\)",
1008
+ "patterns": [
1009
+ {
1010
+ "include": "#groovy-code"
1011
+ }
1012
+ ]
1013
+ },
1014
+ "primitive-arrays": {
1015
+ "patterns": [
1016
+ {
1017
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",
1018
+ "name": "storage.type.primitive.array.groovy"
1019
+ }
1020
+ ]
1021
+ },
1022
+ "primitive-types": {
1023
+ "patterns": [
1024
+ {
1025
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",
1026
+ "name": "storage.type.primitive.groovy"
1027
+ }
1028
+ ]
1029
+ },
1030
+ "regexp": {
1031
+ "patterns": [
1032
+ {
1033
+ "begin": "/(?=[^/]+/([^>]|$))",
1034
+ "beginCaptures": {
1035
+ "0": {
1036
+ "name": "punctuation.definition.string.regexp.begin.groovy"
1037
+ }
1038
+ },
1039
+ "end": "/",
1040
+ "endCaptures": {
1041
+ "0": {
1042
+ "name": "punctuation.definition.string.regexp.end.groovy"
1043
+ }
1044
+ },
1045
+ "name": "string.regexp.groovy",
1046
+ "patterns": [
1047
+ {
1048
+ "match": "\\\\.",
1049
+ "name": "constant.character.escape.groovy"
1050
+ }
1051
+ ]
1052
+ },
1053
+ {
1054
+ "begin": "~\"",
1055
+ "beginCaptures": {
1056
+ "0": {
1057
+ "name": "punctuation.definition.string.regexp.begin.groovy"
1058
+ }
1059
+ },
1060
+ "end": "\"",
1061
+ "endCaptures": {
1062
+ "0": {
1063
+ "name": "punctuation.definition.string.regexp.end.groovy"
1064
+ }
1065
+ },
1066
+ "name": "string.regexp.compiled.groovy",
1067
+ "patterns": [
1068
+ {
1069
+ "match": "\\\\.",
1070
+ "name": "constant.character.escape.groovy"
1071
+ }
1072
+ ]
1073
+ }
1074
+ ]
1075
+ },
1076
+ "storage-modifiers": {
1077
+ "patterns": [
1078
+ {
1079
+ "match": "\\b(private|protected|public)\\b",
1080
+ "name": "storage.modifier.access-control.groovy"
1081
+ },
1082
+ {
1083
+ "match": "\\b(static)\\b",
1084
+ "name": "storage.modifier.static.groovy"
1085
+ },
1086
+ {
1087
+ "match": "\\b(final)\\b",
1088
+ "name": "storage.modifier.final.groovy"
1089
+ },
1090
+ {
1091
+ "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b",
1092
+ "name": "storage.modifier.other.groovy"
1093
+ }
1094
+ ]
1095
+ },
1096
+ "string-quoted-double": {
1097
+ "begin": "\"",
1098
+ "beginCaptures": {
1099
+ "0": {
1100
+ "name": "punctuation.definition.string.begin.groovy"
1101
+ }
1102
+ },
1103
+ "end": "\"",
1104
+ "endCaptures": {
1105
+ "0": {
1106
+ "name": "punctuation.definition.string.end.groovy"
1107
+ }
1108
+ },
1109
+ "name": "string.quoted.double.groovy",
1110
+ "patterns": [
1111
+ {
1112
+ "include": "#string-quoted-double-contents"
1113
+ }
1114
+ ]
1115
+ },
1116
+ "string-quoted-double-contents": {
1117
+ "patterns": [
1118
+ {
1119
+ "match": "\\\\.",
1120
+ "name": "constant.character.escape.groovy"
1121
+ },
1122
+ {
1123
+ "applyEndPatternLast": 1,
1124
+ "begin": "\\$\\w",
1125
+ "end": "(?=\\W)",
1126
+ "name": "variable.other.interpolated.groovy",
1127
+ "patterns": [
1128
+ {
1129
+ "match": "\\w",
1130
+ "name": "variable.other.interpolated.groovy"
1131
+ },
1132
+ {
1133
+ "match": "\\.",
1134
+ "name": "keyword.other.dereference.groovy"
1135
+ }
1136
+ ]
1137
+ },
1138
+ {
1139
+ "begin": "\\$\\{",
1140
+ "captures": {
1141
+ "0": {
1142
+ "name": "punctuation.section.embedded.groovy"
1143
+ }
1144
+ },
1145
+ "end": "\\}",
1146
+ "name": "source.groovy.embedded.source",
1147
+ "patterns": [
1148
+ {
1149
+ "include": "#nest_curly"
1150
+ }
1151
+ ]
1152
+ }
1153
+ ]
1154
+ },
1155
+ "string-quoted-double-multiline": {
1156
+ "begin": "\"\"\"",
1157
+ "beginCaptures": {
1158
+ "0": {
1159
+ "name": "punctuation.definition.string.begin.groovy"
1160
+ }
1161
+ },
1162
+ "end": "\"\"\"",
1163
+ "endCaptures": {
1164
+ "0": {
1165
+ "name": "punctuation.definition.string.end.groovy"
1166
+ }
1167
+ },
1168
+ "name": "string.quoted.double.multiline.groovy",
1169
+ "patterns": [
1170
+ {
1171
+ "include": "#string-quoted-double-contents"
1172
+ }
1173
+ ]
1174
+ },
1175
+ "string-quoted-single": {
1176
+ "begin": "'",
1177
+ "beginCaptures": {
1178
+ "0": {
1179
+ "name": "punctuation.definition.string.begin.groovy"
1180
+ }
1181
+ },
1182
+ "end": "'",
1183
+ "endCaptures": {
1184
+ "0": {
1185
+ "name": "punctuation.definition.string.end.groovy"
1186
+ }
1187
+ },
1188
+ "name": "string.quoted.single.groovy",
1189
+ "patterns": [
1190
+ {
1191
+ "include": "#string-quoted-single-contents"
1192
+ }
1193
+ ]
1194
+ },
1195
+ "string-quoted-single-contents": {
1196
+ "patterns": [
1197
+ {
1198
+ "match": "\\\\.",
1199
+ "name": "constant.character.escape.groovy"
1200
+ }
1201
+ ]
1202
+ },
1203
+ "string-quoted-single-multiline": {
1204
+ "begin": "'''",
1205
+ "beginCaptures": {
1206
+ "0": {
1207
+ "name": "punctuation.definition.string.begin.groovy"
1208
+ }
1209
+ },
1210
+ "end": "'''",
1211
+ "endCaptures": {
1212
+ "0": {
1213
+ "name": "punctuation.definition.string.end.groovy"
1214
+ }
1215
+ },
1216
+ "name": "string.quoted.single.multiline.groovy",
1217
+ "patterns": [
1218
+ {
1219
+ "include": "#string-quoted-single-contents"
1220
+ }
1221
+ ]
1222
+ },
1223
+ "strings": {
1224
+ "patterns": [
1225
+ {
1226
+ "include": "#string-quoted-double-multiline"
1227
+ },
1228
+ {
1229
+ "include": "#string-quoted-single-multiline"
1230
+ },
1231
+ {
1232
+ "include": "#string-quoted-double"
1233
+ },
1234
+ {
1235
+ "include": "#string-quoted-single"
1236
+ },
1237
+ {
1238
+ "include": "#regexp"
1239
+ }
1240
+ ]
1241
+ },
1242
+ "structures": {
1243
+ "begin": "\\[",
1244
+ "beginCaptures": {
1245
+ "0": {
1246
+ "name": "punctuation.definition.structure.begin.groovy"
1247
+ }
1248
+ },
1249
+ "end": "\\]",
1250
+ "endCaptures": {
1251
+ "0": {
1252
+ "name": "punctuation.definition.structure.end.groovy"
1253
+ }
1254
+ },
1255
+ "name": "meta.structure.groovy",
1256
+ "patterns": [
1257
+ {
1258
+ "include": "#groovy-code"
1259
+ },
1260
+ {
1261
+ "match": ",",
1262
+ "name": "punctuation.definition.separator.groovy"
1263
+ }
1264
+ ]
1265
+ },
1266
+ "support-functions": {
1267
+ "patterns": [
1268
+ {
1269
+ "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b",
1270
+ "name": "support.function.print.groovy"
1271
+ },
1272
+ {
1273
+ "match": "(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b",
1274
+ "name": "support.function.testing.groovy"
1275
+ }
1276
+ ]
1277
+ },
1278
+ "types": {
1279
+ "patterns": [
1280
+ {
1281
+ "match": "\\b(def)\\b",
1282
+ "name": "storage.type.def.groovy"
1283
+ },
1284
+ {
1285
+ "include": "#primitive-types"
1286
+ },
1287
+ {
1288
+ "include": "#primitive-arrays"
1289
+ },
1290
+ {
1291
+ "include": "#object-types"
1292
+ }
1293
+ ]
1294
+ },
1295
+ "values": {
1296
+ "patterns": [
1297
+ {
1298
+ "include": "#language-variables"
1299
+ },
1300
+ {
1301
+ "include": "#strings"
1302
+ },
1303
+ {
1304
+ "include": "#numbers"
1305
+ },
1306
+ {
1307
+ "include": "#constants"
1308
+ },
1309
+ {
1310
+ "include": "#types"
1311
+ },
1312
+ {
1313
+ "include": "#structures"
1314
+ },
1315
+ {
1316
+ "include": "#method-call"
1317
+ }
1318
+ ]
1319
+ },
1320
+ "variables": {
1321
+ "applyEndPatternLast": 1,
1322
+ "patterns": [
1323
+ {
1324
+ "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))",
1325
+ "end": ";|$",
1326
+ "name": "meta.definition.variable.groovy",
1327
+ "patterns": [
1328
+ {
1329
+ "match": "\\s"
1330
+ },
1331
+ {
1332
+ "captures": {
1333
+ "1": {
1334
+ "name": "constant.variable.groovy"
1335
+ }
1336
+ },
1337
+ "match": "([A-Z_0-9]+)\\s+(?=\\=)"
1338
+ },
1339
+ {
1340
+ "captures": {
1341
+ "1": {
1342
+ "name": "meta.definition.variable.name.groovy"
1343
+ }
1344
+ },
1345
+ "match": "(\\w[^\\s,]*)\\s+(?=\\=)"
1346
+ },
1347
+ {
1348
+ "begin": "=",
1349
+ "beginCaptures": {
1350
+ "0": {
1351
+ "name": "keyword.operator.assignment.groovy"
1352
+ }
1353
+ },
1354
+ "end": "$",
1355
+ "patterns": [
1356
+ {
1357
+ "include": "#groovy-code"
1358
+ }
1359
+ ]
1360
+ },
1361
+ {
1362
+ "captures": {
1363
+ "1": {
1364
+ "name": "meta.definition.variable.name.groovy"
1365
+ }
1366
+ },
1367
+ "match": "(\\w[^\\s=]*)(?=\\s*($|;))"
1368
+ },
1369
+ {
1370
+ "include": "#groovy-code"
1371
+ }
1372
+ ]
1373
+ }
1374
+ ]
1375
+ }
1376
+ },
1377
+ "scopeName": "source.groovy"
1378
+ }