github-linguist 5.3.3 → 6.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 (460) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +5 -2
  3. data/ext/linguist/linguist.c +18 -7
  4. data/grammars/annotation.liquidhaskell.haskell.json +969 -862
  5. data/grammars/config.xcompose.json +22 -25
  6. data/grammars/file.lasso.json +296 -309
  7. data/grammars/hint.haskell.json +867 -766
  8. data/grammars/hint.message.haskell.json +867 -766
  9. data/grammars/hint.type.haskell.json +867 -766
  10. data/grammars/objdump.x86asm.json +20 -24
  11. data/grammars/source.Kotlin.json +220 -225
  12. data/grammars/source.LS.json +36 -55
  13. data/grammars/source.MCPOST.json +24 -38
  14. data/grammars/source.MOD.json +26 -41
  15. data/grammars/source.SASLog.json +9 -16
  16. data/grammars/source.abap.json +48 -56
  17. data/grammars/source.abl.json +8 -14
  18. data/grammars/source.abnf.json +88 -98
  19. data/grammars/source.actionscript.3.json +398 -429
  20. data/grammars/source.acucobol.json +5 -8
  21. data/grammars/source.ada.json +46 -53
  22. data/grammars/source.afm.json +548 -554
  23. data/grammars/source.agc.json +34 -37
  24. data/grammars/source.agda.json +79 -91
  25. data/grammars/source.ahk.json +62 -66
  26. data/grammars/source.alloy.json +16 -20
  27. data/grammars/source.ampl.json +41 -47
  28. data/grammars/source.angelscript.json +71 -80
  29. data/grammars/source.antlr.json +131 -136
  30. data/grammars/source.apache-config.json +93 -99
  31. data/grammars/source.apache-config.mod_perl.json +19 -24
  32. data/grammars/source.apl.json +1038 -1029
  33. data/grammars/source.applescript.json +501 -523
  34. data/grammars/source.apt.json +9 -16
  35. data/grammars/source.asn.json +27 -31
  36. data/grammars/source.asp.json +61 -67
  37. data/grammars/source.aspectj.json +385 -391
  38. data/grammars/source.assembly.json +49 -55
  39. data/grammars/source.ats.json +45 -121
  40. data/grammars/source.autoit.json +64 -69
  41. data/grammars/source.awk.json +172 -176
  42. data/grammars/source.ballerina.json +48 -395
  43. data/grammars/source.batchfile.json +269 -269
  44. data/grammars/source.befunge.json +17 -21
  45. data/grammars/source.bf.json +5 -11
  46. data/grammars/source.bison.json +10 -14
  47. data/grammars/source.blitzmax.json +300 -305
  48. data/grammars/source.boo.json +189 -193
  49. data/grammars/source.brightauthorproject.json +8 -13
  50. data/grammars/source.brightscript.json +37 -47
  51. data/grammars/source.bro.json +134 -140
  52. data/grammars/source.bsl.json +152 -193
  53. data/grammars/source.bsv.json +96 -102
  54. data/grammars/source.c++.json +176 -193
  55. data/grammars/source.c++.qt.json +13 -21
  56. data/grammars/source.c.ec.json +15 -21
  57. data/grammars/source.c.json +237 -251
  58. data/grammars/source.c.platform.json +153 -159
  59. data/grammars/source.c2hs.json +3 -6
  60. data/grammars/source.cabal.json +17 -20
  61. data/grammars/source.cache.cmake.json +18 -23
  62. data/grammars/source.cake.json +4 -7
  63. data/grammars/source.camlp4.ocaml.json +24 -27
  64. data/grammars/source.capnp.json +33 -38
  65. data/grammars/source.ceylon.json +44 -50
  66. data/grammars/source.cfscript.cfc.json +78 -86
  67. data/grammars/source.cfscript.json +513 -520
  68. data/grammars/source.changelogs.rpm-spec.json +8 -16
  69. data/grammars/source.chapel.json +109 -87
  70. data/grammars/source.cirru.json +25 -30
  71. data/grammars/source.clarion.json +41 -54
  72. data/grammars/source.clean.json +90 -95
  73. data/grammars/source.click.json +25 -28
  74. data/grammars/source.clips.json +10 -23
  75. data/grammars/source.clojure.json +151 -168
  76. data/grammars/source.cm.json +14 -19
  77. data/grammars/source.cmake.json +53 -61
  78. data/grammars/source.cobol.json +165 -180
  79. data/grammars/source.coffee.json +454 -462
  80. data/grammars/source.cool.json +36 -43
  81. data/grammars/source.coq.json +17 -21
  82. data/grammars/source.crystal.json +889 -983
  83. data/grammars/source.cs.json +739 -740
  84. data/grammars/source.csound-document.json +69 -73
  85. data/grammars/source.csound-score.json +52 -55
  86. data/grammars/source.csound.json +167 -171
  87. data/grammars/source.css.json +683 -688
  88. data/grammars/source.css.less.json +211 -511
  89. data/grammars/source.css.mss.json +94 -101
  90. data/grammars/source.css.postcss.sugarss.json +260 -0
  91. data/grammars/source.csx.json +4 -7
  92. data/grammars/source.cuda-c++.json +47 -81
  93. data/grammars/source.cwl.json +103 -0
  94. data/grammars/source.cython.json +536 -582
  95. data/grammars/source.d.json +243 -252
  96. data/grammars/source.dart.json +161 -166
  97. data/grammars/source.data-weave.json +901 -905
  98. data/grammars/source.desktop.json +29 -33
  99. data/grammars/source.diff.json +43 -52
  100. data/grammars/source.disasm.json +15 -16
  101. data/grammars/source.ditroff.desc.json +73 -84
  102. data/grammars/source.ditroff.json +60 -61
  103. data/grammars/source.dm.json +202 -213
  104. data/grammars/source.dmf.json +44 -47
  105. data/grammars/source.dockerfile.json +29 -34
  106. data/grammars/source.dot.json +46 -55
  107. data/grammars/source.dylan.json +63 -68
  108. data/grammars/source.ebnf.json +55 -62
  109. data/grammars/source.eiffel.json +57 -62
  110. data/grammars/source.elixir.json +321 -366
  111. data/grammars/source.emacs.lisp.json +458 -249
  112. data/grammars/source.erazor.json +49 -57
  113. data/grammars/source.erlang.json +508 -515
  114. data/grammars/source.essl.json +17 -30
  115. data/grammars/source.factor.json +85 -91
  116. data/grammars/source.fan.json +92 -96
  117. data/grammars/source.fancy.json +93 -118
  118. data/grammars/source.fish.json +74 -98
  119. data/grammars/source.fontforge.json +142 -146
  120. data/grammars/source.forth.json +42 -57
  121. data/grammars/source.fortran.json +193 -231
  122. data/grammars/source.fortran.modern.json +77 -103
  123. data/grammars/source.fsharp.fsi.json +1 -6
  124. data/grammars/source.fsharp.fsl.json +1 -6
  125. data/grammars/source.fsharp.fsx.json +1 -6
  126. data/grammars/source.fsharp.json +148 -153
  127. data/grammars/source.gap.json +60 -70
  128. data/grammars/source.gcode.json +9 -16
  129. data/grammars/source.gdb.json +63 -79
  130. data/grammars/source.gdb.session.json +27 -28
  131. data/grammars/source.gdbregs.json +7 -8
  132. data/grammars/source.gdscript.json +92 -96
  133. data/grammars/source.gerber.json +38 -56
  134. data/grammars/source.gfm.json +447 -462
  135. data/grammars/source.glsl.json +58 -83
  136. data/grammars/source.gn.json +188 -193
  137. data/grammars/source.gnuplot.json +104 -120
  138. data/grammars/source.go.json +169 -181
  139. data/grammars/source.golo.json +82 -87
  140. data/grammars/source.gosu.2.json +58 -68
  141. data/grammars/source.grace.json +266 -270
  142. data/grammars/source.graphql.json +586 -596
  143. data/grammars/source.groovy.gradle.json +18 -22
  144. data/grammars/source.groovy.json +422 -433
  145. data/grammars/source.harbour.json +129 -173
  146. data/grammars/source.haskell.json +871 -772
  147. data/grammars/source.haxe.2.json +402 -413
  148. data/grammars/source.hlsl.json +6 -16
  149. data/grammars/source.hsc2hs.json +1 -4
  150. data/grammars/source.hsig.json +871 -770
  151. data/grammars/source.hss.1.json +122 -144
  152. data/grammars/source.httpspec.json +119 -123
  153. data/grammars/source.hxml.json +8 -15
  154. data/grammars/source.ideal.json +125 -125
  155. data/grammars/source.idl-dlm.json +25 -32
  156. data/grammars/source.idl.json +59 -80
  157. data/grammars/source.idris.json +171 -185
  158. data/grammars/source.inform7.json +117 -121
  159. data/grammars/source.ini.json +37 -43
  160. data/grammars/source.io.json +65 -73
  161. data/grammars/source.ioke.json +72 -78
  162. data/grammars/source.isabelle.root.json +26 -30
  163. data/grammars/source.isabelle.theory.json +46 -50
  164. data/grammars/source.j.json +18 -21
  165. data/grammars/source.jasmin.json +45 -50
  166. data/grammars/source.java-properties.json +31 -41
  167. data/grammars/source.java.json +333 -342
  168. data/grammars/source.jcl.json +15 -18
  169. data/grammars/source.jflex.json +166 -172
  170. data/grammars/source.jison.json +331 -334
  171. data/grammars/source.jisonlex-injection.json +1 -2
  172. data/grammars/source.jisonlex.json +148 -151
  173. data/grammars/source.jolie.json +37 -43
  174. data/grammars/source.jq.json +80 -87
  175. data/grammars/source.js.json +798 -818
  176. data/grammars/source.js.jsx.json +2115 -2225
  177. data/grammars/source.js.objj.json +167 -172
  178. data/grammars/source.js.regexp.json +50 -50
  179. data/grammars/source.js.regexp.replacement.json +7 -7
  180. data/grammars/source.jsdoc.json +94 -94
  181. data/grammars/source.json.json +61 -71
  182. data/grammars/source.julia.console.json +5 -6
  183. data/grammars/source.julia.json +237 -234
  184. data/grammars/source.lean.json +55 -67
  185. data/grammars/source.lid.json +6 -10
  186. data/grammars/source.lilypond.json +181 -195
  187. data/grammars/source.lisp.json +40 -50
  188. data/grammars/source.litcoffee.json +169 -183
  189. data/grammars/source.livescript.json +207 -220
  190. data/grammars/source.llvm.json +28 -38
  191. data/grammars/source.logos.json +7 -14
  192. data/grammars/source.logtalk.json +136 -141
  193. data/grammars/source.loomscript.json +77 -83
  194. data/grammars/source.lsl.json +90 -106
  195. data/grammars/source.lua.json +100 -109
  196. data/grammars/source.makefile.json +181 -188
  197. data/grammars/source.makegen.json +3 -7
  198. data/grammars/source.mask.json +260 -265
  199. data/grammars/source.mata.json +38 -46
  200. data/grammars/source.mathematica.json +155 -167
  201. data/grammars/source.matlab.json +407 -684
  202. data/grammars/source.maxscript.json +293 -281
  203. data/grammars/source.mercury.json +179 -184
  204. data/grammars/source.meson.json +52 -58
  205. data/grammars/source.meta-info.json +64 -74
  206. data/grammars/source.ml.json +107 -113
  207. data/grammars/source.modelica.json +51 -59
  208. data/grammars/source.modula2.json +33 -42
  209. data/grammars/source.monkey.json +234 -241
  210. data/grammars/source.moonscript.json +51 -56
  211. data/grammars/source.mql5.json +74 -101
  212. data/grammars/source.mupad.json +30 -72
  213. data/grammars/source.ncl.json +1 -14
  214. data/grammars/source.ne.json +39 -42
  215. data/grammars/source.nemerle.json +58 -63
  216. data/grammars/source.nesc.json +9 -15
  217. data/grammars/source.netlinx.erb.json +13 -25
  218. data/grammars/source.netlinx.json +231 -292
  219. data/grammars/source.nextflow-groovy.json +1360 -0
  220. data/grammars/source.nextflow.json +74 -0
  221. data/grammars/source.nginx.json +274 -287
  222. data/grammars/source.nim.json +442 -483
  223. data/grammars/source.nim_filter.json +6 -26
  224. data/grammars/source.nimcfg.json +38 -51
  225. data/grammars/source.ninja.json +64 -70
  226. data/grammars/source.nit.json +60 -64
  227. data/grammars/source.nix.json +269 -273
  228. data/grammars/source.nmml.json +31 -37
  229. data/grammars/source.nsis.json +66 -72
  230. data/grammars/source.nu.json +129 -139
  231. data/grammars/source.nut.json +129 -133
  232. data/grammars/source.objc++.json +3 -10
  233. data/grammars/source.objc.json +303 -314
  234. data/grammars/source.objc.platform.json +145 -151
  235. data/grammars/source.ocaml.json +506 -514
  236. data/grammars/source.ocamllex.json +108 -115
  237. data/grammars/source.ocamlyacc.json +116 -123
  238. data/grammars/source.ooc.json +148 -155
  239. data/grammars/source.opa.json +39 -49
  240. data/grammars/source.opal.json +84 -89
  241. data/grammars/source.opalsysdefs.json +9 -13
  242. data/grammars/source.opencobol.json +22 -25
  243. data/grammars/source.opentype.json +148 -152
  244. data/grammars/source.ox.json +36 -44
  245. data/grammars/source.oz.json +31 -38
  246. data/grammars/source.p4.json +49 -59
  247. data/grammars/source.pan.json +273 -278
  248. data/grammars/source.papyrus.skyrim.json +705 -781
  249. data/grammars/source.parrot.pir.json +59 -65
  250. data/grammars/source.pascal.json +54 -61
  251. data/grammars/source.pawn.json +835 -849
  252. data/grammars/source.pcb.board.json +153 -158
  253. data/grammars/source.pcb.schematic.json +134 -138
  254. data/grammars/source.pcb.sexp.json +64 -74
  255. data/grammars/source.pep8.json +28 -32
  256. data/grammars/source.perl.6.json +83 -92
  257. data/grammars/source.perl.json +711 -737
  258. data/grammars/source.perl6fe.json +1204 -1218
  259. data/grammars/source.php.zephir.json +80 -89
  260. data/grammars/source.pic.json +137 -142
  261. data/grammars/source.pig_latin.json +76 -80
  262. data/grammars/source.pike.json +23 -36
  263. data/grammars/source.po.json +74 -84
  264. data/grammars/source.pogoscript.json +23 -29
  265. data/grammars/source.pony.json +98 -108
  266. data/grammars/source.postcss.json +370 -0
  267. data/grammars/source.postscript.json +88 -97
  268. data/grammars/source.pov-ray sdl.json +36 -42
  269. data/grammars/source.powershell.json +175 -197
  270. data/grammars/source.processing.json +236 -249
  271. data/grammars/source.prolog.eclipse.json +33 -38
  272. data/grammars/source.prolog.json +66 -72
  273. data/grammars/source.protobuf.json +88 -94
  274. data/grammars/source.puppet.json +144 -151
  275. data/grammars/source.purescript.json +268 -289
  276. data/grammars/source.pyjade.json +256 -281
  277. data/grammars/source.python.django.json +13 -18
  278. data/grammars/source.python.json +3319 -3367
  279. data/grammars/source.python.salt.json +3 -7
  280. data/grammars/source.qmake.json +83 -90
  281. data/grammars/source.qml.json +57 -78
  282. data/grammars/source.quoting.perl6fe.json +666 -669
  283. data/grammars/source.r.json +75 -84
  284. data/grammars/source.racket.json +17 -38
  285. data/grammars/source.rascal.json +77 -80
  286. data/grammars/source.reason.hover.type.json +1 -1
  287. data/grammars/source.reason.json +1025 -1080
  288. data/grammars/source.rebol.json +167 -177
  289. data/grammars/source.red.json +169 -177
  290. data/grammars/source.regexp.babel.json +74 -77
  291. data/grammars/source.regexp.extended.json +4 -5
  292. data/grammars/source.regexp.json +260 -264
  293. data/grammars/source.regexp.perl6fe.json +108 -111
  294. data/grammars/source.regexp.python.json +210 -215
  295. data/grammars/source.regexp.spin.json +63 -72
  296. data/grammars/source.renpy.json +617 -687
  297. data/grammars/source.rexx.json +25 -32
  298. data/grammars/source.ring.json +84 -114
  299. data/grammars/source.rpm-spec.json +392 -401
  300. data/grammars/source.ruby.gemfile.json +9 -12
  301. data/grammars/source.ruby.json +862 -952
  302. data/grammars/source.ruby.rspec.cucumber.steps.json +90 -103
  303. data/grammars/source.rust.json +223 -281
  304. data/grammars/source.sas.json +88 -105
  305. data/grammars/source.sass.json +100 -108
  306. data/grammars/source.sbt.json +16 -23
  307. data/grammars/source.scad.json +60 -67
  308. data/grammars/source.scala.json +215 -228
  309. data/grammars/source.scaml.json +120 -135
  310. data/grammars/source.scheme.json +119 -136
  311. data/grammars/source.scilab.json +40 -47
  312. data/grammars/source.scss.json +369 -403
  313. data/grammars/source.sdbl.json +14 -25
  314. data/grammars/source.shaderlab.json +24 -27
  315. data/grammars/source.shell.json +409 -440
  316. data/grammars/source.shen.json +75 -94
  317. data/grammars/source.smali.json +232 -293
  318. data/grammars/source.smalltalk.json +60 -75
  319. data/grammars/source.smt.json +67 -82
  320. data/grammars/source.solidity.json +35 -54
  321. data/grammars/source.sp.json +40 -45
  322. data/grammars/source.sparql.json +3 -8
  323. data/grammars/source.spin.json +277 -297
  324. data/grammars/source.sqf.json +34 -44
  325. data/grammars/source.sql.json +142 -156
  326. data/grammars/source.stan.json +201 -160
  327. data/grammars/source.stata.json +57 -68
  328. data/grammars/source.strings.json +26 -30
  329. data/grammars/source.stylus.json +558 -565
  330. data/grammars/source.supercollider.json +33 -40
  331. data/grammars/source.swift.json +999 -1077
  332. data/grammars/source.systemverilog.json +351 -365
  333. data/grammars/source.tcl.json +77 -94
  334. data/grammars/source.tea.json +61 -67
  335. data/grammars/source.terra.json +25 -32
  336. data/grammars/source.terraform.json +68 -88
  337. data/grammars/source.thrift.json +300 -306
  338. data/grammars/source.tl.json +112 -117
  339. data/grammars/source.tla.json +65 -69
  340. data/grammars/source.toc.json +21 -25
  341. data/grammars/source.toml.json +117 -122
  342. data/grammars/source.ts.json +2838 -2774
  343. data/grammars/source.tsx.json +180 -184
  344. data/grammars/source.turing.json +970 -974
  345. data/grammars/source.turtle.json +124 -140
  346. data/grammars/source.txl.json +23 -37
  347. data/grammars/source.ucfconstraints.json +16 -21
  348. data/grammars/source.ur.json +15 -27
  349. data/grammars/source.vala.json +221 -235
  350. data/grammars/source.varnish.vcl.json +117 -129
  351. data/grammars/source.vbnet.json +69 -106
  352. data/grammars/source.verilog.json +101 -107
  353. data/grammars/source.vhdl.json +437 -445
  354. data/grammars/source.viml.json +540 -550
  355. data/grammars/source.wavefront.mtl.json +274 -277
  356. data/grammars/source.wavefront.obj.json +781 -784
  357. data/grammars/source.wdl.json +66 -46
  358. data/grammars/source.webassembly.json +97 -102
  359. data/grammars/source.webidl.json +311 -326
  360. data/grammars/source.x10.json +28 -32
  361. data/grammars/source.x86asm.json +21 -26
  362. data/grammars/source.xc.json +164 -172
  363. data/grammars/source.xq.json +81 -92
  364. data/grammars/source.xtend.json +199 -208
  365. data/grammars/source.yaml-ext.json +118 -124
  366. data/grammars/source.yaml.json +155 -174
  367. data/grammars/source.yaml.salt.json +113 -116
  368. data/grammars/source.yang.json +10 -13
  369. data/grammars/source.yara.json +98 -0
  370. data/grammars/text.bibtex.json +95 -100
  371. data/grammars/text.cfml.basic.json +403 -404
  372. data/grammars/text.elixir.json +18 -23
  373. data/grammars/text.error-list.json +15 -16
  374. data/grammars/text.find-refs.json +487 -488
  375. data/grammars/text.gherkin.feature.json +45 -53
  376. data/grammars/text.haml.json +176 -189
  377. data/grammars/text.hamlc.json +82 -88
  378. data/grammars/text.html.abl.json +16 -21
  379. data/grammars/text.html.asciidoc.json +139 -153
  380. data/grammars/text.html.asdoc.json +145 -155
  381. data/grammars/text.html.asp.json +23 -28
  382. data/grammars/text.html.basic.json +323 -338
  383. data/grammars/text.html.cfm.json +316 -325
  384. data/grammars/text.html.creole.json +177 -189
  385. data/grammars/text.html.django.json +27 -33
  386. data/grammars/text.html.ecr.json +21 -25
  387. data/grammars/text.html.elixir.json +3 -9
  388. data/grammars/text.html.erb.json +81 -85
  389. data/grammars/text.html.erlang.yaws.json +24 -29
  390. data/grammars/text.html.factor.json +5 -11
  391. data/grammars/text.html.ftl.json +16 -25
  392. data/grammars/text.html.handlebars.json +579 -598
  393. data/grammars/text.html.javadoc.json +426 -0
  394. data/grammars/text.html.js.json +11 -17
  395. data/grammars/text.html.jsp.json +377 -384
  396. data/grammars/text.html.liquid.json +8 -18
  397. data/grammars/text.html.mako.json +257 -275
  398. data/grammars/text.html.markdown.source.gfm.apib.json +419 -427
  399. data/grammars/text.html.markdown.source.gfm.mson.json +405 -414
  400. data/grammars/text.html.mediawiki.json +318 -344
  401. data/grammars/text.html.php.blade.json +2134 -2140
  402. data/grammars/text.html.php.json +980 -1013
  403. data/grammars/text.html.slash.json +101 -107
  404. data/grammars/text.html.smarty.json +75 -83
  405. data/grammars/text.html.soy.json +250 -253
  406. data/grammars/text.html.ssp.json +18 -24
  407. data/grammars/text.html.tcl.json +17 -24
  408. data/grammars/text.html.twig.json +712 -718
  409. data/grammars/text.idl-idldoc.json +5 -9
  410. data/grammars/text.jade.json +213 -235
  411. data/grammars/text.junit-test-report.json +25 -28
  412. data/grammars/text.log.latex.json +44 -46
  413. data/grammars/text.marko.json +370 -401
  414. data/grammars/text.python.console.json +3 -7
  415. data/grammars/text.python.traceback.json +2 -5
  416. data/grammars/text.rdoc.json +15 -19
  417. data/grammars/text.restructuredtext.clean.json +8 -11
  418. data/grammars/text.restructuredtext.json +886 -873
  419. data/grammars/text.robot.json +26 -36
  420. data/grammars/text.roff.json +2852 -2915
  421. data/grammars/text.runoff.json +56 -69
  422. data/grammars/text.sfd.json +151 -155
  423. data/grammars/text.shell-session.json +5 -8
  424. data/grammars/text.slim.json +184 -210
  425. data/grammars/text.srt.json +54 -57
  426. data/grammars/text.tex.json +98 -105
  427. data/grammars/text.tex.latex.beamer.json +14 -20
  428. data/grammars/text.tex.latex.haskell.json +883 -782
  429. data/grammars/text.tex.latex.json +281 -291
  430. data/grammars/text.tex.latex.memoir.json +39 -46
  431. data/grammars/text.tex.latex.rd.json +32 -38
  432. data/grammars/text.xml.ant.json +62 -69
  433. data/grammars/text.xml.flex-config.json +1009 -1013
  434. data/grammars/text.xml.genshi.json +10 -16
  435. data/grammars/text.xml.json +117 -130
  436. data/grammars/text.xml.pom.json +235 -240
  437. data/grammars/text.xml.xsl.json +31 -37
  438. data/grammars/text.zone_file.json +24 -29
  439. data/lib/linguist/blob.rb +10 -1
  440. data/lib/linguist/blob_helper.rb +4 -1
  441. data/lib/linguist/file_blob.rb +5 -0
  442. data/lib/linguist/generated.rb +16 -0
  443. data/lib/linguist/heuristics.rb +23 -11
  444. data/lib/linguist/language.rb +3 -6
  445. data/lib/linguist/languages.json +1 -1
  446. data/lib/linguist/languages.yml +74 -12
  447. data/lib/linguist/lazy_blob.rb +15 -1
  448. data/lib/linguist/linguist.bundle +0 -0
  449. data/lib/linguist/samples.json +1666 -3381
  450. data/lib/linguist/shebang.rb +2 -0
  451. data/lib/linguist/strategy/modeline.rb +2 -0
  452. data/lib/linguist/vendor.yml +5 -6
  453. data/lib/linguist/version.rb +1 -1
  454. metadata +12 -11
  455. data/grammars/source.elm.json +0 -381
  456. data/grammars/source.nant-build.json +0 -86
  457. data/grammars/source.octave.json +0 -451
  458. data/grammars/text.html.mediawiki.elm-build-output.json +0 -111
  459. data/grammars/text.html.mediawiki.elm-documentation.json +0 -22
  460. data/grammars/text.html.vue.json +0 -936
@@ -1,8 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "gradle"
4
- ],
5
2
  "name": "Gradle Build Script",
3
+ "scopeName": "source.groovy.gradle",
6
4
  "patterns": [
7
5
  {
8
6
  "include": "#gradle"
@@ -12,19 +10,19 @@
12
10
  "blocks": {
13
11
  "patterns": [
14
12
  {
15
- "begin": "(?!<project\\.)(\\w+)\\s*{",
16
- "beginCaptures": {
17
- "1": {
18
- "name": "entity.name.block.groovy.gradle"
19
- }
20
- },
21
- "end": "}",
22
13
  "name": "meta.definition.block.groovy.gradle",
14
+ "begin": "(?!\u003cproject\\.)(\\w+)\\s*{",
15
+ "end": "}",
23
16
  "patterns": [
24
17
  {
25
18
  "include": "#gradle-groovy"
26
19
  }
27
- ]
20
+ ],
21
+ "beginCaptures": {
22
+ "1": {
23
+ "name": "entity.name.block.groovy.gradle"
24
+ }
25
+ }
28
26
  }
29
27
  ]
30
28
  },
@@ -51,23 +49,21 @@
51
49
  "tasks": {
52
50
  "patterns": [
53
51
  {
52
+ "name": "meta.definition.task.groovy.gradle",
54
53
  "begin": "task\\s+(\\w+)\\s*(?=[\\({])",
55
- "beginCaptures": {
56
- "1": {
57
- "name": "entity.name.task.groovy.gradle"
58
- }
59
- },
60
54
  "end": "^",
61
- "name": "meta.definition.task.groovy.gradle",
62
55
  "patterns": [
63
56
  {
64
57
  "include": "#gradle-groovy"
65
58
  }
66
- ]
59
+ ],
60
+ "beginCaptures": {
61
+ "1": {
62
+ "name": "entity.name.task.groovy.gradle"
63
+ }
64
+ }
67
65
  }
68
66
  ]
69
67
  }
70
- },
71
- "scopeName": "source.groovy.gradle",
72
- "uuid": "D7E70EBB-ED68-4F09-A5AF-9126624AE319"
73
- }
68
+ }
69
+ }
@@ -1,23 +1,19 @@
1
1
  {
2
- "fileTypes": [
3
- "groovy",
4
- "gvy"
5
- ],
6
- "foldingStartMarker": "(\\{\\s*$|^\\s*// \\{\\{\\{)",
7
- "foldingStopMarker": "^\\s*(\\}|// \\}\\}\\}$)",
8
- "keyEquivalent": "^~G",
9
2
  "name": "Groovy",
3
+ "scopeName": "source.groovy",
10
4
  "patterns": [
11
5
  {
6
+ "name": "comment.line.hashbang.groovy",
7
+ "match": "^(#!).+$\\n",
12
8
  "captures": {
13
9
  "1": {
14
10
  "name": "punctuation.definition.comment.groovy"
15
11
  }
16
- },
17
- "match": "^(#!).+$\\n",
18
- "name": "comment.line.hashbang.groovy"
12
+ }
19
13
  },
20
14
  {
15
+ "name": "meta.package.groovy",
16
+ "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
21
17
  "captures": {
22
18
  "1": {
23
19
  "name": "keyword.other.package.groovy"
@@ -28,17 +24,23 @@
28
24
  "3": {
29
25
  "name": "punctuation.terminator.groovy"
30
26
  }
31
- },
32
- "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
33
- "name": "meta.package.groovy"
27
+ }
34
28
  },
35
29
  {
30
+ "name": "meta.import.groovy",
31
+ "contentName": "storage.modifier.import.groovy",
36
32
  "begin": "(import static)\\b\\s*",
37
- "beginCaptures": {
38
- "1": {
39
- "name": "keyword.other.import.static.groovy"
33
+ "end": "\\s*(?:$|(?=%\u003e)(;))",
34
+ "patterns": [
35
+ {
36
+ "name": "punctuation.separator.groovy",
37
+ "match": "\\."
38
+ },
39
+ {
40
+ "name": "invalid.illegal.character_not_allowed_here.groovy",
41
+ "match": "\\s"
40
42
  }
41
- },
43
+ ],
42
44
  "captures": {
43
45
  "1": {
44
46
  "name": "keyword.other.import.groovy"
@@ -50,32 +52,32 @@
50
52
  "name": "punctuation.terminator.groovy"
51
53
  }
52
54
  },
53
- "contentName": "storage.modifier.import.groovy",
54
- "end": "\\s*(?:$|(?=%>)(;))",
55
+ "beginCaptures": {
56
+ "1": {
57
+ "name": "keyword.other.import.static.groovy"
58
+ }
59
+ },
55
60
  "endCaptures": {
56
61
  "1": {
57
62
  "name": "punctuation.terminator.groovy"
58
63
  }
59
- },
64
+ }
65
+ },
66
+ {
60
67
  "name": "meta.import.groovy",
68
+ "contentName": "storage.modifier.import.groovy",
69
+ "begin": "(import)\\b\\s*",
70
+ "end": "\\s*(?:$|(?=%\u003e)|(;))",
61
71
  "patterns": [
62
72
  {
63
- "match": "\\.",
64
- "name": "punctuation.separator.groovy"
73
+ "name": "punctuation.separator.groovy",
74
+ "match": "\\."
65
75
  },
66
76
  {
67
- "match": "\\s",
68
- "name": "invalid.illegal.character_not_allowed_here.groovy"
69
- }
70
- ]
71
- },
72
- {
73
- "begin": "(import)\\b\\s*",
74
- "beginCaptures": {
75
- "1": {
76
- "name": "keyword.other.import.groovy"
77
+ "name": "invalid.illegal.character_not_allowed_here.groovy",
78
+ "match": "\\s"
77
79
  }
78
- },
80
+ ],
79
81
  "captures": {
80
82
  "1": {
81
83
  "name": "keyword.other.import.groovy"
@@ -87,26 +89,20 @@
87
89
  "name": "punctuation.terminator.groovy"
88
90
  }
89
91
  },
90
- "contentName": "storage.modifier.import.groovy",
91
- "end": "\\s*(?:$|(?=%>)|(;))",
92
- "endCaptures": {
92
+ "beginCaptures": {
93
93
  "1": {
94
- "name": "punctuation.terminator.groovy"
94
+ "name": "keyword.other.import.groovy"
95
95
  }
96
96
  },
97
- "name": "meta.import.groovy",
98
- "patterns": [
99
- {
100
- "match": "\\.",
101
- "name": "punctuation.separator.groovy"
102
- },
103
- {
104
- "match": "\\s",
105
- "name": "invalid.illegal.character_not_allowed_here.groovy"
97
+ "endCaptures": {
98
+ "1": {
99
+ "name": "punctuation.terminator.groovy"
106
100
  }
107
- ]
101
+ }
108
102
  },
109
103
  {
104
+ "name": "meta.import.groovy",
105
+ "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
110
106
  "captures": {
111
107
  "1": {
112
108
  "name": "keyword.other.import.groovy"
@@ -120,9 +116,7 @@
120
116
  "4": {
121
117
  "name": "punctuation.terminator.groovy"
122
118
  }
123
- },
124
- "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
125
- "name": "meta.import.groovy"
119
+ }
126
120
  },
127
121
  {
128
122
  "include": "#groovy"
@@ -132,24 +126,12 @@
132
126
  "annotations": {
133
127
  "patterns": [
134
128
  {
135
- "begin": "(?<!\\.)(@[^ (]+)(\\()",
136
- "beginCaptures": {
137
- "1": {
138
- "name": "storage.type.annotation.groovy"
139
- },
140
- "2": {
141
- "name": "punctuation.definition.annotation-arguments.begin.groovy"
142
- }
143
- },
144
- "end": "(\\))",
145
- "endCaptures": {
146
- "1": {
147
- "name": "punctuation.definition.annotation-arguments.end.groovy"
148
- }
149
- },
150
129
  "name": "meta.declaration.annotation.groovy",
130
+ "begin": "(?\u003c!\\.)(@[^ (]+)(\\()",
131
+ "end": "(\\))",
151
132
  "patterns": [
152
133
  {
134
+ "match": "(\\w*)\\s*(=)",
153
135
  "captures": {
154
136
  "1": {
155
137
  "name": "constant.other.key.groovy"
@@ -157,40 +139,42 @@
157
139
  "2": {
158
140
  "name": "keyword.operator.assignment.groovy"
159
141
  }
160
- },
161
- "match": "(\\w*)\\s*(=)"
142
+ }
162
143
  },
163
144
  {
164
145
  "include": "#values"
165
146
  },
166
147
  {
167
- "match": ",",
168
- "name": "punctuation.definition.seperator.groovy"
148
+ "name": "punctuation.definition.seperator.groovy",
149
+ "match": ","
169
150
  }
170
- ]
151
+ ],
152
+ "beginCaptures": {
153
+ "1": {
154
+ "name": "storage.type.annotation.groovy"
155
+ },
156
+ "2": {
157
+ "name": "punctuation.definition.annotation-arguments.begin.groovy"
158
+ }
159
+ },
160
+ "endCaptures": {
161
+ "1": {
162
+ "name": "punctuation.definition.annotation-arguments.end.groovy"
163
+ }
164
+ }
171
165
  },
172
166
  {
173
- "match": "(?<!\\.)@\\S+",
174
- "name": "storage.type.annotation.groovy"
167
+ "name": "storage.type.annotation.groovy",
168
+ "match": "(?\u003c!\\.)@\\S+"
175
169
  }
176
170
  ]
177
171
  },
178
172
  "anonymous-classes-and-new": {
179
173
  "begin": "\\bnew\\b",
180
- "beginCaptures": {
181
- "0": {
182
- "name": "keyword.control.new.groovy"
183
- }
184
- },
185
- "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=[;])|$",
174
+ "end": "(?\u003c=\\)|\\])(?!\\s*{)|(?\u003c=})|(?=[;])|$",
186
175
  "patterns": [
187
176
  {
188
177
  "begin": "(\\w+)\\s*(?=\\[)",
189
- "beginCaptures": {
190
- "1": {
191
- "name": "storage.type.groovy"
192
- }
193
- },
194
178
  "end": "}|(?=\\s*(?:,|;|\\)))|$",
195
179
  "patterns": [
196
180
  {
@@ -211,42 +195,52 @@
211
195
  }
212
196
  ]
213
197
  }
214
- ]
198
+ ],
199
+ "beginCaptures": {
200
+ "1": {
201
+ "name": "storage.type.groovy"
202
+ }
203
+ }
215
204
  },
216
205
  {
217
206
  "begin": "(?=\\w.*\\(?)",
218
- "end": "(?<=\\))|$",
207
+ "end": "(?\u003c=\\))|$",
219
208
  "patterns": [
220
209
  {
221
210
  "include": "#object-types"
222
211
  },
223
212
  {
224
213
  "begin": "\\(",
225
- "beginCaptures": {
226
- "1": {
227
- "name": "storage.type.groovy"
228
- }
229
- },
230
214
  "end": "\\)",
231
215
  "patterns": [
232
216
  {
233
217
  "include": "#groovy"
234
218
  }
235
- ]
219
+ ],
220
+ "beginCaptures": {
221
+ "1": {
222
+ "name": "storage.type.groovy"
223
+ }
224
+ }
236
225
  }
237
226
  ]
238
227
  },
239
228
  {
229
+ "name": "meta.inner-class.groovy",
240
230
  "begin": "{",
241
231
  "end": "}",
242
- "name": "meta.inner-class.groovy",
243
232
  "patterns": [
244
233
  {
245
234
  "include": "#class-body"
246
235
  }
247
236
  ]
248
237
  }
249
- ]
238
+ ],
239
+ "beginCaptures": {
240
+ "0": {
241
+ "name": "keyword.control.new.groovy"
242
+ }
243
+ }
250
244
  },
251
245
  "braces": {
252
246
  "begin": "\\{",
@@ -258,14 +252,9 @@
258
252
  ]
259
253
  },
260
254
  "class": {
255
+ "name": "meta.definition.class.groovy",
261
256
  "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)",
262
257
  "end": "}",
263
- "endCaptures": {
264
- "0": {
265
- "name": "punctuation.section.class.end.groovy"
266
- }
267
- },
268
- "name": "meta.definition.class.groovy",
269
258
  "patterns": [
270
259
  {
271
260
  "include": "#storage-modifiers"
@@ -274,6 +263,8 @@
274
263
  "include": "#comments"
275
264
  },
276
265
  {
266
+ "name": "meta.class.identifier.groovy",
267
+ "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
277
268
  "captures": {
278
269
  "1": {
279
270
  "name": "storage.modifier.groovy"
@@ -281,19 +272,12 @@
281
272
  "2": {
282
273
  "name": "entity.name.type.class.groovy"
283
274
  }
284
- },
285
- "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
286
- "name": "meta.class.identifier.groovy"
275
+ }
287
276
  },
288
277
  {
278
+ "name": "meta.definition.class.inherited.classes.groovy",
289
279
  "begin": "extends",
290
- "beginCaptures": {
291
- "0": {
292
- "name": "storage.modifier.extends.groovy"
293
- }
294
- },
295
280
  "end": "(?={|implements)",
296
- "name": "meta.definition.class.inherited.classes.groovy",
297
281
  "patterns": [
298
282
  {
299
283
  "include": "#object-types-inherited"
@@ -301,17 +285,17 @@
301
285
  {
302
286
  "include": "#comments"
303
287
  }
304
- ]
288
+ ],
289
+ "beginCaptures": {
290
+ "0": {
291
+ "name": "storage.modifier.extends.groovy"
292
+ }
293
+ }
305
294
  },
306
295
  {
296
+ "name": "meta.definition.class.implemented.interfaces.groovy",
307
297
  "begin": "(implements)\\s",
308
- "beginCaptures": {
309
- "1": {
310
- "name": "storage.modifier.implements.groovy"
311
- }
312
- },
313
298
  "end": "(?=\\s*extends|\\{)",
314
- "name": "meta.definition.class.implemented.interfaces.groovy",
315
299
  "patterns": [
316
300
  {
317
301
  "include": "#object-types-inherited"
@@ -319,19 +303,29 @@
319
303
  {
320
304
  "include": "#comments"
321
305
  }
322
- ]
306
+ ],
307
+ "beginCaptures": {
308
+ "1": {
309
+ "name": "storage.modifier.implements.groovy"
310
+ }
311
+ }
323
312
  },
324
313
  {
314
+ "name": "meta.class.body.groovy",
325
315
  "begin": "{",
326
316
  "end": "(?=})",
327
- "name": "meta.class.body.groovy",
328
317
  "patterns": [
329
318
  {
330
319
  "include": "#class-body"
331
320
  }
332
321
  ]
333
322
  }
334
- ]
323
+ ],
324
+ "endCaptures": {
325
+ "0": {
326
+ "name": "punctuation.section.class.end.groovy"
327
+ }
328
+ }
335
329
  },
336
330
  "class-body": {
337
331
  "patterns": [
@@ -347,42 +341,37 @@
347
341
  ]
348
342
  },
349
343
  "closures": {
350
- "begin": "\\{(?=.*?->)",
344
+ "begin": "\\{(?=.*?-\u003e)",
351
345
  "end": "\\}",
352
346
  "patterns": [
353
347
  {
354
- "begin": "(?<=\\{)(?=[^\\}]*?->)",
355
- "end": "->",
356
- "endCaptures": {
357
- "0": {
358
- "name": "keyword.operator.groovy"
359
- }
360
- },
348
+ "begin": "(?\u003c=\\{)(?=[^\\}]*?-\u003e)",
349
+ "end": "-\u003e",
361
350
  "patterns": [
362
351
  {
363
- "begin": "(?!->)",
364
- "end": "(?=->)",
365
352
  "name": "meta.closure.parameters.groovy",
353
+ "begin": "(?!-\u003e)",
354
+ "end": "(?=-\u003e)",
366
355
  "patterns": [
367
356
  {
368
- "begin": "(?!,|->)",
369
- "end": "(?=,|->)",
370
357
  "name": "meta.closure.parameter.groovy",
358
+ "begin": "(?!,|-\u003e)",
359
+ "end": "(?=,|-\u003e)",
371
360
  "patterns": [
372
361
  {
373
- "begin": "=",
374
- "beginCaptures": {
375
- "0": {
376
- "name": "keyword.operator.assignment.groovy"
377
- }
378
- },
379
- "end": "(?=,|->)",
380
362
  "name": "meta.parameter.default.groovy",
363
+ "begin": "=",
364
+ "end": "(?=,|-\u003e)",
381
365
  "patterns": [
382
366
  {
383
367
  "include": "#groovy-code"
384
368
  }
385
- ]
369
+ ],
370
+ "beginCaptures": {
371
+ "0": {
372
+ "name": "keyword.operator.assignment.groovy"
373
+ }
374
+ }
386
375
  },
387
376
  {
388
377
  "include": "#parameters"
@@ -391,7 +380,12 @@
391
380
  }
392
381
  ]
393
382
  }
394
- ]
383
+ ],
384
+ "endCaptures": {
385
+ "0": {
386
+ "name": "keyword.operator.groovy"
387
+ }
388
+ }
395
389
  },
396
390
  {
397
391
  "begin": "(?=[^}])",
@@ -405,25 +399,25 @@
405
399
  ]
406
400
  },
407
401
  "comment-block": {
402
+ "name": "comment.block.groovy",
408
403
  "begin": "/\\*",
404
+ "end": "\\*/",
409
405
  "captures": {
410
406
  "0": {
411
407
  "name": "punctuation.definition.comment.groovy"
412
408
  }
413
- },
414
- "end": "\\*/",
415
- "name": "comment.block.groovy"
409
+ }
416
410
  },
417
411
  "comments": {
418
412
  "patterns": [
419
413
  {
414
+ "name": "comment.block.empty.groovy",
415
+ "match": "/\\*\\*/",
420
416
  "captures": {
421
417
  "0": {
422
418
  "name": "punctuation.definition.comment.groovy"
423
419
  }
424
- },
425
- "match": "/\\*\\*/",
426
- "name": "comment.block.empty.groovy"
420
+ }
427
421
  },
428
422
  {
429
423
  "include": "text.html.javadoc"
@@ -432,64 +426,64 @@
432
426
  "include": "#comment-block"
433
427
  },
434
428
  {
429
+ "name": "comment.line.double-slash.groovy",
430
+ "match": "(//).*$\\n?",
435
431
  "captures": {
436
432
  "1": {
437
433
  "name": "punctuation.definition.comment.groovy"
438
434
  }
439
- },
440
- "match": "(//).*$\\n?",
441
- "name": "comment.line.double-slash.groovy"
435
+ }
442
436
  }
443
437
  ]
444
438
  },
445
439
  "constants": {
446
440
  "patterns": [
447
441
  {
448
- "match": "\\b([A-Z][A-Z0-9_]+)\\b",
449
- "name": "constant.other.groovy"
442
+ "name": "constant.other.groovy",
443
+ "match": "\\b([A-Z][A-Z0-9_]+)\\b"
450
444
  },
451
445
  {
452
- "match": "\\b(true|false|null)\\b",
453
- "name": "constant.language.groovy"
446
+ "name": "constant.language.groovy",
447
+ "match": "\\b(true|false|null)\\b"
454
448
  }
455
449
  ]
456
450
  },
457
451
  "constructors": {
458
- "applyEndPatternLast": 1,
459
- "begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",
452
+ "begin": "(?\u003c=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",
460
453
  "end": "}",
461
454
  "patterns": [
462
455
  {
463
456
  "include": "#method-content"
464
457
  }
465
- ]
458
+ ],
459
+ "applyEndPatternLast": true
466
460
  },
467
461
  "enum-values": {
468
462
  "patterns": [
469
463
  {
470
- "begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",
471
- "beginCaptures": {
472
- "1": {
473
- "name": "constant.enum.name.groovy"
474
- }
475
- },
464
+ "begin": "(?\u003c=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",
476
465
  "end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))",
477
466
  "patterns": [
478
467
  {
468
+ "name": "meta.enum.value.groovy",
479
469
  "begin": "\\(",
480
470
  "end": "\\)",
481
- "name": "meta.enum.value.groovy",
482
471
  "patterns": [
483
472
  {
484
- "match": ",",
485
- "name": "punctuation.definition.seperator.parameter.groovy"
473
+ "name": "punctuation.definition.seperator.parameter.groovy",
474
+ "match": ","
486
475
  },
487
476
  {
488
477
  "include": "#groovy-code"
489
478
  }
490
479
  ]
491
480
  }
492
- ]
481
+ ],
482
+ "beginCaptures": {
483
+ "1": {
484
+ "name": "constant.enum.name.groovy"
485
+ }
486
+ }
493
487
  }
494
488
  ]
495
489
  },
@@ -526,7 +520,6 @@
526
520
  ]
527
521
  },
528
522
  "groovy-code-minus-map-keys": {
529
- "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",
530
523
  "patterns": [
531
524
  {
532
525
  "include": "#comments"
@@ -579,160 +572,161 @@
579
572
  "keyword-language": {
580
573
  "patterns": [
581
574
  {
582
- "match": "\\b(try|catch|finally|throw)\\b",
583
- "name": "keyword.control.exception.groovy"
575
+ "name": "keyword.control.exception.groovy",
576
+ "match": "\\b(try|catch|finally|throw)\\b"
584
577
  },
585
578
  {
586
- "match": "\\b((?<!\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\b",
587
- "name": "keyword.control.groovy"
579
+ "name": "keyword.control.groovy",
580
+ "match": "\\b((?\u003c!\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\b"
588
581
  },
589
582
  {
583
+ "name": "meta.case.groovy",
590
584
  "begin": "\\bcase\\b",
585
+ "end": ":",
586
+ "patterns": [
587
+ {
588
+ "include": "#groovy-code-minus-map-keys"
589
+ }
590
+ ],
591
591
  "beginCaptures": {
592
592
  "0": {
593
593
  "name": "keyword.control.groovy"
594
594
  }
595
595
  },
596
- "end": ":",
597
596
  "endCaptures": {
598
597
  "0": {
599
598
  "name": "punctuation.definition.case-terminator.groovy"
600
599
  }
601
- },
602
- "name": "meta.case.groovy",
603
- "patterns": [
604
- {
605
- "include": "#groovy-code-minus-map-keys"
606
- }
607
- ]
600
+ }
608
601
  },
609
602
  {
603
+ "name": "meta.declaration.assertion.groovy",
610
604
  "begin": "\\b(assert)\\s",
611
- "beginCaptures": {
612
- "1": {
613
- "name": "keyword.control.assert.groovy"
614
- }
615
- },
616
605
  "end": "$|;|}",
617
- "name": "meta.declaration.assertion.groovy",
618
606
  "patterns": [
619
607
  {
620
- "match": ":",
621
- "name": "keyword.operator.assert.expression-seperator.groovy"
608
+ "name": "keyword.operator.assert.expression-seperator.groovy",
609
+ "match": ":"
622
610
  },
623
611
  {
624
612
  "include": "#groovy-code-minus-map-keys"
625
613
  }
626
- ]
614
+ ],
615
+ "beginCaptures": {
616
+ "1": {
617
+ "name": "keyword.control.assert.groovy"
618
+ }
619
+ }
627
620
  },
628
621
  {
629
- "match": "\\b(throws)\\b",
630
- "name": "keyword.other.throws.groovy"
622
+ "name": "keyword.other.throws.groovy",
623
+ "match": "\\b(throws)\\b"
631
624
  }
632
625
  ]
633
626
  },
634
627
  "keyword-operator": {
635
628
  "patterns": [
636
629
  {
637
- "match": "\\b(as)\\b",
638
- "name": "keyword.operator.as.groovy"
630
+ "name": "keyword.operator.as.groovy",
631
+ "match": "\\b(as)\\b"
639
632
  },
640
633
  {
641
- "match": "\\b(in)\\b",
642
- "name": "keyword.operator.in.groovy"
634
+ "name": "keyword.operator.in.groovy",
635
+ "match": "\\b(in)\\b"
643
636
  },
644
637
  {
645
- "match": "\\?\\:",
646
- "name": "keyword.operator.elvis.groovy"
638
+ "name": "keyword.operator.elvis.groovy",
639
+ "match": "\\?\\:"
647
640
  },
648
641
  {
649
- "match": "\\*\\:",
650
- "name": "keyword.operator.spreadmap.groovy"
642
+ "name": "keyword.operator.spreadmap.groovy",
643
+ "match": "\\*\\:"
651
644
  },
652
645
  {
653
- "match": "\\.\\.",
654
- "name": "keyword.operator.range.groovy"
646
+ "name": "keyword.operator.range.groovy",
647
+ "match": "\\.\\."
655
648
  },
656
649
  {
657
- "match": "\\->",
658
- "name": "keyword.operator.arrow.groovy"
650
+ "name": "keyword.operator.arrow.groovy",
651
+ "match": "\\-\u003e"
659
652
  },
660
653
  {
661
- "match": "<<",
662
- "name": "keyword.operator.leftshift.groovy"
654
+ "name": "keyword.operator.leftshift.groovy",
655
+ "match": "\u003c\u003c"
663
656
  },
664
657
  {
665
- "match": "(?<=\\S)\\.(?=\\S)",
666
- "name": "keyword.operator.navigation.groovy"
658
+ "name": "keyword.operator.navigation.groovy",
659
+ "match": "(?\u003c=\\S)\\.(?=\\S)"
667
660
  },
668
661
  {
669
- "match": "(?<=\\S)\\?\\.(?=\\S)",
670
- "name": "keyword.operator.safe-navigation.groovy"
662
+ "name": "keyword.operator.safe-navigation.groovy",
663
+ "match": "(?\u003c=\\S)\\?\\.(?=\\S)"
671
664
  },
672
665
  {
666
+ "name": "meta.evaluation.ternary.groovy",
673
667
  "begin": "\\?",
674
- "beginCaptures": {
675
- "0": {
676
- "name": "keyword.operator.ternary.groovy"
677
- }
678
- },
679
668
  "end": "(?=$|\\)|}|])",
680
- "name": "meta.evaluation.ternary.groovy",
681
669
  "patterns": [
682
670
  {
683
- "match": ":",
684
- "name": "keyword.operator.ternary.expression-seperator.groovy"
671
+ "name": "keyword.operator.ternary.expression-seperator.groovy",
672
+ "match": ":"
685
673
  },
686
674
  {
687
675
  "include": "#groovy-code-minus-map-keys"
688
676
  }
689
- ]
677
+ ],
678
+ "beginCaptures": {
679
+ "0": {
680
+ "name": "keyword.operator.ternary.groovy"
681
+ }
682
+ }
690
683
  },
691
684
  {
692
- "match": "==~",
693
- "name": "keyword.operator.match.groovy"
685
+ "name": "keyword.operator.match.groovy",
686
+ "match": "==~"
694
687
  },
695
688
  {
696
- "match": "=~",
697
- "name": "keyword.operator.find.groovy"
689
+ "name": "keyword.operator.find.groovy",
690
+ "match": "=~"
698
691
  },
699
692
  {
700
- "match": "\\b(instanceof)\\b",
701
- "name": "keyword.operator.instanceof.groovy"
693
+ "name": "keyword.operator.instanceof.groovy",
694
+ "match": "\\b(instanceof)\\b"
702
695
  },
703
696
  {
704
- "match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)",
705
- "name": "keyword.operator.comparison.groovy"
697
+ "name": "keyword.operator.comparison.groovy",
698
+ "match": "(===|==|!=|\u003c=|\u003e=|\u003c=\u003e|\u003c\u003e|\u003c|\u003e|\u003c\u003c)"
706
699
  },
707
700
  {
708
- "match": "=",
709
- "name": "keyword.operator.assignment.groovy"
701
+ "name": "keyword.operator.assignment.groovy",
702
+ "match": "="
710
703
  },
711
704
  {
712
- "match": "(\\-\\-|\\+\\+)",
713
- "name": "keyword.operator.increment-decrement.groovy"
705
+ "name": "keyword.operator.increment-decrement.groovy",
706
+ "match": "(\\-\\-|\\+\\+)"
714
707
  },
715
708
  {
716
- "match": "(\\-|\\+|\\*|\\/|%)",
717
- "name": "keyword.operator.arithmetic.groovy"
709
+ "name": "keyword.operator.arithmetic.groovy",
710
+ "match": "(\\-|\\+|\\*|\\/|%)"
718
711
  },
719
712
  {
720
- "match": "(!|&&|\\|\\|)",
721
- "name": "keyword.operator.logical.groovy"
713
+ "name": "keyword.operator.logical.groovy",
714
+ "match": "(!|\u0026\u0026|\\|\\|)"
722
715
  }
723
716
  ]
724
717
  },
725
718
  "language-variables": {
726
719
  "patterns": [
727
720
  {
728
- "match": "\\b(this|super)\\b",
729
- "name": "variable.language.groovy"
721
+ "name": "variable.language.groovy",
722
+ "match": "\\b(this|super)\\b"
730
723
  }
731
724
  ]
732
725
  },
733
726
  "map-keys": {
734
727
  "patterns": [
735
728
  {
729
+ "match": "(\\w+)\\s*(:)",
736
730
  "captures": {
737
731
  "1": {
738
732
  "name": "constant.other.key.groovy"
@@ -740,13 +734,23 @@
740
734
  "2": {
741
735
  "name": "punctuation.definition.seperator.key-value.groovy"
742
736
  }
743
- },
744
- "match": "(\\w+)\\s*(:)"
737
+ }
745
738
  }
746
739
  ]
747
740
  },
748
741
  "method-call": {
742
+ "name": "meta.method-call.groovy",
749
743
  "begin": "([\\w$]+)(\\()",
744
+ "end": "\\)",
745
+ "patterns": [
746
+ {
747
+ "name": "punctuation.definition.seperator.parameter.groovy",
748
+ "match": ","
749
+ },
750
+ {
751
+ "include": "#groovy-code"
752
+ }
753
+ ],
750
754
  "beginCaptures": {
751
755
  "1": {
752
756
  "name": "meta.method.groovy"
@@ -755,22 +759,11 @@
755
759
  "name": "punctuation.definition.method-parameters.begin.groovy"
756
760
  }
757
761
  },
758
- "end": "\\)",
759
762
  "endCaptures": {
760
763
  "0": {
761
764
  "name": "punctuation.definition.method-parameters.end.groovy"
762
765
  }
763
- },
764
- "name": "meta.method-call.groovy",
765
- "patterns": [
766
- {
767
- "match": ",",
768
- "name": "punctuation.definition.seperator.parameter.groovy"
769
- },
770
- {
771
- "include": "#groovy-code"
772
- }
773
- ]
766
+ }
774
767
  },
775
768
  "method-content": {
776
769
  "patterns": [
@@ -781,9 +774,9 @@
781
774
  "include": "#annotations"
782
775
  },
783
776
  {
784
- "begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()",
785
- "end": "(?=[\\w$]+\\s*\\()",
786
777
  "name": "meta.method.return-type.java",
778
+ "begin": "(?=(?:\\w|\u003c)[^\\(]*\\s+(?:[\\w$]|\u003c)+\\s*\\()",
779
+ "end": "(?=[\\w$]+\\s*\\()",
787
780
  "patterns": [
788
781
  {
789
782
  "include": "#storage-modifiers"
@@ -794,43 +787,38 @@
794
787
  ]
795
788
  },
796
789
  {
790
+ "name": "meta.definition.method.signature.java",
797
791
  "begin": "([\\w$]+)\\s*\\(",
798
- "beginCaptures": {
799
- "1": {
800
- "name": "entity.name.function.java"
801
- }
802
- },
803
792
  "end": "\\)",
804
- "name": "meta.definition.method.signature.java",
805
793
  "patterns": [
806
794
  {
795
+ "name": "meta.method.parameters.groovy",
807
796
  "begin": "(?=[^)])",
808
797
  "end": "(?=\\))",
809
- "name": "meta.method.parameters.groovy",
810
798
  "patterns": [
811
799
  {
800
+ "name": "meta.method.parameter.groovy",
812
801
  "begin": "(?=[^,)])",
813
802
  "end": "(?=,|\\))",
814
- "name": "meta.method.parameter.groovy",
815
803
  "patterns": [
816
804
  {
817
- "match": ",",
818
- "name": "punctuation.definition.separator.groovy"
805
+ "name": "punctuation.definition.separator.groovy",
806
+ "match": ","
819
807
  },
820
808
  {
809
+ "name": "meta.parameter.default.groovy",
821
810
  "begin": "=",
822
- "beginCaptures": {
823
- "0": {
824
- "name": "keyword.operator.assignment.groovy"
825
- }
826
- },
827
811
  "end": "(?=,|\\))",
828
- "name": "meta.parameter.default.groovy",
829
812
  "patterns": [
830
813
  {
831
814
  "include": "#groovy-code"
832
815
  }
833
- ]
816
+ ],
817
+ "beginCaptures": {
818
+ "0": {
819
+ "name": "keyword.operator.assignment.groovy"
820
+ }
821
+ }
834
822
  },
835
823
  {
836
824
  "include": "#parameters"
@@ -839,48 +827,53 @@
839
827
  }
840
828
  ]
841
829
  }
842
- ]
830
+ ],
831
+ "beginCaptures": {
832
+ "1": {
833
+ "name": "entity.name.function.java"
834
+ }
835
+ }
843
836
  },
844
837
  {
845
- "begin": "(?=<)",
846
- "end": "(?=\\s)",
847
838
  "name": "meta.method.paramerised-type.groovy",
839
+ "begin": "(?=\u003c)",
840
+ "end": "(?=\\s)",
848
841
  "patterns": [
849
842
  {
850
- "begin": "<",
851
- "end": ">",
852
843
  "name": "storage.type.parameters.groovy",
844
+ "begin": "\u003c",
845
+ "end": "\u003e",
853
846
  "patterns": [
854
847
  {
855
848
  "include": "#types"
856
849
  },
857
850
  {
858
- "match": ",",
859
- "name": "punctuation.definition.seperator.groovy"
851
+ "name": "punctuation.definition.seperator.groovy",
852
+ "match": ","
860
853
  }
861
854
  ]
862
855
  }
863
856
  ]
864
857
  },
865
858
  {
859
+ "name": "meta.throwables.groovy",
866
860
  "begin": "throws",
867
- "beginCaptures": {
868
- "0": {
869
- "name": "storage.modifier.groovy"
870
- }
871
- },
872
861
  "end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))",
873
- "name": "meta.throwables.groovy",
874
862
  "patterns": [
875
863
  {
876
864
  "include": "#object-types"
877
865
  }
878
- ]
866
+ ],
867
+ "beginCaptures": {
868
+ "0": {
869
+ "name": "storage.modifier.groovy"
870
+ }
871
+ }
879
872
  },
880
873
  {
874
+ "name": "meta.method.body.java",
881
875
  "begin": "{",
882
876
  "end": "(?=})",
883
- "name": "meta.method.body.java",
884
877
  "patterns": [
885
878
  {
886
879
  "include": "#groovy-code"
@@ -890,60 +883,59 @@
890
883
  ]
891
884
  },
892
885
  "methods": {
893
- "applyEndPatternLast": 1,
894
- "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))",
895
- "end": "}|(?=[^{])",
896
886
  "name": "meta.definition.method.groovy",
887
+ "begin": "(?x:(?\u003c=;|^|{)(?=\\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 (?:\u003c.*\u003e)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))",
888
+ "end": "}|(?=[^{])",
897
889
  "patterns": [
898
890
  {
899
891
  "include": "#method-content"
900
892
  }
901
- ]
893
+ ],
894
+ "applyEndPatternLast": true
902
895
  },
903
896
  "nest_curly": {
904
897
  "begin": "\\{",
905
- "captures": {
906
- "0": {
907
- "name": "punctuation.section.scope.groovy"
908
- }
909
- },
910
898
  "end": "\\}",
911
899
  "patterns": [
912
900
  {
913
901
  "include": "#nest_curly"
914
902
  }
915
- ]
903
+ ],
904
+ "captures": {
905
+ "0": {
906
+ "name": "punctuation.section.scope.groovy"
907
+ }
908
+ }
916
909
  },
917
910
  "numbers": {
918
911
  "patterns": [
919
912
  {
920
- "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",
921
- "name": "constant.numeric.groovy"
913
+ "name": "constant.numeric.groovy",
914
+ "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b"
922
915
  }
923
916
  ]
924
917
  },
925
918
  "object-types": {
926
919
  "patterns": [
927
920
  {
928
- "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<",
929
- "end": ">|[^\\w\\s,\\?<\\[\\]]",
930
921
  "name": "storage.type.generic.groovy",
922
+ "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))\u003c",
923
+ "end": "\u003e|[^\\w\\s,\\?\u003c\\[\\]]",
931
924
  "patterns": [
932
925
  {
933
926
  "include": "#object-types"
934
927
  },
935
928
  {
936
- "begin": "<",
937
- "comment": "This is just to support <>'s with no actual type prefix",
938
- "end": ">|[^\\w\\s,\\[\\]<]",
939
- "name": "storage.type.generic.groovy"
929
+ "name": "storage.type.generic.groovy",
930
+ "begin": "\u003c",
931
+ "end": "\u003e|[^\\w\\s,\\[\\]\u003c]"
940
932
  }
941
933
  ]
942
934
  },
943
935
  {
936
+ "name": "storage.type.object.array.groovy",
944
937
  "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)",
945
938
  "end": "(?=[^\\]\\s])",
946
- "name": "storage.type.object.array.groovy",
947
939
  "patterns": [
948
940
  {
949
941
  "begin": "\\[",
@@ -957,37 +949,36 @@
957
949
  ]
958
950
  },
959
951
  {
960
- "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b",
961
- "name": "storage.type.groovy"
952
+ "name": "storage.type.groovy",
953
+ "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b"
962
954
  }
963
955
  ]
964
956
  },
965
957
  "object-types-inherited": {
966
958
  "patterns": [
967
959
  {
968
- "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<",
969
- "end": ">|[^\\w\\s,\\?<\\[\\]]",
970
960
  "name": "entity.other.inherited-class.groovy",
961
+ "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)\u003c",
962
+ "end": "\u003e|[^\\w\\s,\\?\u003c\\[\\]]",
971
963
  "patterns": [
972
964
  {
973
965
  "include": "#object-types-inherited"
974
966
  },
975
967
  {
976
- "begin": "<",
977
- "comment": "This is just to support <>'s with no actual type prefix",
978
- "end": ">|[^\\w\\s,\\[\\]<]",
979
- "name": "storage.type.generic.groovy"
968
+ "name": "storage.type.generic.groovy",
969
+ "begin": "\u003c",
970
+ "end": "\u003e|[^\\w\\s,\\[\\]\u003c]"
980
971
  }
981
972
  ]
982
973
  },
983
974
  {
975
+ "name": "entity.other.inherited-class.groovy",
976
+ "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",
984
977
  "captures": {
985
978
  "1": {
986
979
  "name": "keyword.operator.dereference.groovy"
987
980
  }
988
- },
989
- "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",
990
- "name": "entity.other.inherited-class.groovy"
981
+ }
991
982
  }
992
983
  ]
993
984
  },
@@ -1003,8 +994,8 @@
1003
994
  "include": "#types"
1004
995
  },
1005
996
  {
1006
- "match": "\\w+",
1007
- "name": "variable.parameter.method.groovy"
997
+ "name": "variable.parameter.method.groovy",
998
+ "match": "\\w+"
1008
999
  }
1009
1000
  ]
1010
1001
  },
@@ -1020,211 +1011,211 @@
1020
1011
  "primitive-arrays": {
1021
1012
  "patterns": [
1022
1013
  {
1023
- "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",
1024
- "name": "storage.type.primitive.array.groovy"
1014
+ "name": "storage.type.primitive.array.groovy",
1015
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b"
1025
1016
  }
1026
1017
  ]
1027
1018
  },
1028
1019
  "primitive-types": {
1029
1020
  "patterns": [
1030
1021
  {
1031
- "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",
1032
- "name": "storage.type.primitive.groovy"
1022
+ "name": "storage.type.primitive.groovy",
1023
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b"
1033
1024
  }
1034
1025
  ]
1035
1026
  },
1036
1027
  "regexp": {
1037
1028
  "patterns": [
1038
1029
  {
1039
- "begin": "/(?=[^/]+/([^>]|$))",
1030
+ "name": "string.regexp.groovy",
1031
+ "begin": "/(?=[^/]+/([^\u003e]|$))",
1032
+ "end": "/",
1033
+ "patterns": [
1034
+ {
1035
+ "name": "constant.character.escape.groovy",
1036
+ "match": "\\\\."
1037
+ }
1038
+ ],
1040
1039
  "beginCaptures": {
1041
1040
  "0": {
1042
1041
  "name": "punctuation.definition.string.regexp.begin.groovy"
1043
1042
  }
1044
1043
  },
1045
- "end": "/",
1046
1044
  "endCaptures": {
1047
1045
  "0": {
1048
1046
  "name": "punctuation.definition.string.regexp.end.groovy"
1049
1047
  }
1050
- },
1051
- "name": "string.regexp.groovy",
1052
- "patterns": [
1053
- {
1054
- "match": "\\\\.",
1055
- "name": "constant.character.escape.groovy"
1056
- }
1057
- ]
1048
+ }
1058
1049
  },
1059
1050
  {
1051
+ "name": "string.regexp.compiled.groovy",
1060
1052
  "begin": "~\"",
1053
+ "end": "\"",
1054
+ "patterns": [
1055
+ {
1056
+ "name": "constant.character.escape.groovy",
1057
+ "match": "\\\\."
1058
+ }
1059
+ ],
1061
1060
  "beginCaptures": {
1062
1061
  "0": {
1063
1062
  "name": "punctuation.definition.string.regexp.begin.groovy"
1064
1063
  }
1065
1064
  },
1066
- "end": "\"",
1067
1065
  "endCaptures": {
1068
1066
  "0": {
1069
1067
  "name": "punctuation.definition.string.regexp.end.groovy"
1070
1068
  }
1071
- },
1072
- "name": "string.regexp.compiled.groovy",
1073
- "patterns": [
1074
- {
1075
- "match": "\\\\.",
1076
- "name": "constant.character.escape.groovy"
1077
- }
1078
- ]
1069
+ }
1079
1070
  }
1080
1071
  ]
1081
1072
  },
1082
1073
  "storage-modifiers": {
1083
1074
  "patterns": [
1084
1075
  {
1085
- "match": "\\b(private|protected|public)\\b",
1086
- "name": "storage.modifier.access-control.groovy"
1076
+ "name": "storage.modifier.access-control.groovy",
1077
+ "match": "\\b(private|protected|public)\\b"
1087
1078
  },
1088
1079
  {
1089
- "match": "\\b(static)\\b",
1090
- "name": "storage.modifier.static.groovy"
1080
+ "name": "storage.modifier.static.groovy",
1081
+ "match": "\\b(static)\\b"
1091
1082
  },
1092
1083
  {
1093
- "match": "\\b(final)\\b",
1094
- "name": "storage.modifier.final.groovy"
1084
+ "name": "storage.modifier.final.groovy",
1085
+ "match": "\\b(final)\\b"
1095
1086
  },
1096
1087
  {
1097
- "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b",
1098
- "name": "storage.modifier.other.groovy"
1088
+ "name": "storage.modifier.other.groovy",
1089
+ "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b"
1099
1090
  }
1100
1091
  ]
1101
1092
  },
1102
1093
  "string-quoted-double": {
1094
+ "name": "string.quoted.double.groovy",
1103
1095
  "begin": "\"",
1096
+ "end": "\"",
1097
+ "patterns": [
1098
+ {
1099
+ "include": "#string-quoted-double-contents"
1100
+ }
1101
+ ],
1104
1102
  "beginCaptures": {
1105
1103
  "0": {
1106
1104
  "name": "punctuation.definition.string.begin.groovy"
1107
1105
  }
1108
1106
  },
1109
- "end": "\"",
1110
1107
  "endCaptures": {
1111
1108
  "0": {
1112
1109
  "name": "punctuation.definition.string.end.groovy"
1113
1110
  }
1114
- },
1115
- "name": "string.quoted.double.groovy",
1116
- "patterns": [
1117
- {
1118
- "include": "#string-quoted-double-contents"
1119
- }
1120
- ]
1111
+ }
1121
1112
  },
1122
1113
  "string-quoted-double-contents": {
1123
1114
  "patterns": [
1124
1115
  {
1125
- "match": "\\\\.",
1126
- "name": "constant.character.escape.groovy"
1116
+ "name": "constant.character.escape.groovy",
1117
+ "match": "\\\\."
1127
1118
  },
1128
1119
  {
1129
- "applyEndPatternLast": 1,
1120
+ "name": "variable.other.interpolated.groovy",
1130
1121
  "begin": "\\$\\w",
1131
1122
  "end": "(?=\\W)",
1132
- "name": "variable.other.interpolated.groovy",
1133
1123
  "patterns": [
1134
1124
  {
1135
- "match": "\\w",
1136
- "name": "variable.other.interpolated.groovy"
1125
+ "name": "variable.other.interpolated.groovy",
1126
+ "match": "\\w"
1137
1127
  },
1138
1128
  {
1139
- "match": "\\.",
1140
- "name": "keyword.other.dereference.groovy"
1129
+ "name": "keyword.other.dereference.groovy",
1130
+ "match": "\\."
1141
1131
  }
1142
- ]
1132
+ ],
1133
+ "applyEndPatternLast": true
1143
1134
  },
1144
1135
  {
1136
+ "name": "source.groovy.embedded.source",
1145
1137
  "begin": "\\$\\{",
1146
- "captures": {
1147
- "0": {
1148
- "name": "punctuation.section.embedded.groovy"
1149
- }
1150
- },
1151
1138
  "end": "\\}",
1152
- "name": "source.groovy.embedded.source",
1153
1139
  "patterns": [
1154
1140
  {
1155
1141
  "include": "#nest_curly"
1156
1142
  }
1157
- ]
1143
+ ],
1144
+ "captures": {
1145
+ "0": {
1146
+ "name": "punctuation.section.embedded.groovy"
1147
+ }
1148
+ }
1158
1149
  }
1159
1150
  ]
1160
1151
  },
1161
1152
  "string-quoted-double-multiline": {
1153
+ "name": "string.quoted.double.multiline.groovy",
1162
1154
  "begin": "\"\"\"",
1155
+ "end": "\"\"\"",
1156
+ "patterns": [
1157
+ {
1158
+ "include": "#string-quoted-double-contents"
1159
+ }
1160
+ ],
1163
1161
  "beginCaptures": {
1164
1162
  "0": {
1165
1163
  "name": "punctuation.definition.string.begin.groovy"
1166
1164
  }
1167
1165
  },
1168
- "end": "\"\"\"",
1169
1166
  "endCaptures": {
1170
1167
  "0": {
1171
1168
  "name": "punctuation.definition.string.end.groovy"
1172
1169
  }
1173
- },
1174
- "name": "string.quoted.double.multiline.groovy",
1175
- "patterns": [
1176
- {
1177
- "include": "#string-quoted-double-contents"
1178
- }
1179
- ]
1170
+ }
1180
1171
  },
1181
1172
  "string-quoted-single": {
1173
+ "name": "string.quoted.single.groovy",
1182
1174
  "begin": "'",
1175
+ "end": "'",
1176
+ "patterns": [
1177
+ {
1178
+ "include": "#string-quoted-single-contents"
1179
+ }
1180
+ ],
1183
1181
  "beginCaptures": {
1184
1182
  "0": {
1185
1183
  "name": "punctuation.definition.string.begin.groovy"
1186
1184
  }
1187
1185
  },
1188
- "end": "'",
1189
1186
  "endCaptures": {
1190
1187
  "0": {
1191
1188
  "name": "punctuation.definition.string.end.groovy"
1192
1189
  }
1193
- },
1194
- "name": "string.quoted.single.groovy",
1195
- "patterns": [
1196
- {
1197
- "include": "#string-quoted-single-contents"
1198
- }
1199
- ]
1190
+ }
1200
1191
  },
1201
1192
  "string-quoted-single-contents": {
1202
1193
  "patterns": [
1203
1194
  {
1204
- "match": "\\\\.",
1205
- "name": "constant.character.escape.groovy"
1195
+ "name": "constant.character.escape.groovy",
1196
+ "match": "\\\\."
1206
1197
  }
1207
1198
  ]
1208
1199
  },
1209
1200
  "string-quoted-single-multiline": {
1201
+ "name": "string.quoted.single.multiline.groovy",
1210
1202
  "begin": "'''",
1203
+ "end": "'''",
1204
+ "patterns": [
1205
+ {
1206
+ "include": "#string-quoted-single-contents"
1207
+ }
1208
+ ],
1211
1209
  "beginCaptures": {
1212
1210
  "0": {
1213
1211
  "name": "punctuation.definition.string.begin.groovy"
1214
1212
  }
1215
1213
  },
1216
- "end": "'''",
1217
1214
  "endCaptures": {
1218
1215
  "0": {
1219
1216
  "name": "punctuation.definition.string.end.groovy"
1220
1217
  }
1221
- },
1222
- "name": "string.quoted.single.multiline.groovy",
1223
- "patterns": [
1224
- {
1225
- "include": "#string-quoted-single-contents"
1226
- }
1227
- ]
1218
+ }
1228
1219
  },
1229
1220
  "strings": {
1230
1221
  "patterns": [
@@ -1246,46 +1237,46 @@
1246
1237
  ]
1247
1238
  },
1248
1239
  "structures": {
1240
+ "name": "meta.structure.groovy",
1249
1241
  "begin": "\\[",
1242
+ "end": "\\]",
1243
+ "patterns": [
1244
+ {
1245
+ "include": "#groovy-code"
1246
+ },
1247
+ {
1248
+ "name": "punctuation.definition.separator.groovy",
1249
+ "match": ","
1250
+ }
1251
+ ],
1250
1252
  "beginCaptures": {
1251
1253
  "0": {
1252
1254
  "name": "punctuation.definition.structure.begin.groovy"
1253
1255
  }
1254
1256
  },
1255
- "end": "\\]",
1256
1257
  "endCaptures": {
1257
1258
  "0": {
1258
1259
  "name": "punctuation.definition.structure.end.groovy"
1259
1260
  }
1260
- },
1261
- "name": "meta.structure.groovy",
1262
- "patterns": [
1263
- {
1264
- "include": "#groovy-code"
1265
- },
1266
- {
1267
- "match": ",",
1268
- "name": "punctuation.definition.separator.groovy"
1269
- }
1270
- ]
1261
+ }
1271
1262
  },
1272
1263
  "support-functions": {
1273
1264
  "patterns": [
1274
1265
  {
1275
- "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b",
1276
- "name": "support.function.print.groovy"
1266
+ "name": "support.function.print.groovy",
1267
+ "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b"
1277
1268
  },
1278
1269
  {
1279
- "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",
1280
- "name": "support.function.testing.groovy"
1270
+ "name": "support.function.testing.groovy",
1271
+ "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"
1281
1272
  }
1282
1273
  ]
1283
1274
  },
1284
1275
  "types": {
1285
1276
  "patterns": [
1286
1277
  {
1287
- "match": "\\b(def)\\b",
1288
- "name": "storage.type.def.groovy"
1278
+ "name": "storage.type.def.groovy",
1279
+ "match": "\\b(def)\\b"
1289
1280
  },
1290
1281
  {
1291
1282
  "include": "#primitive-types"
@@ -1324,62 +1315,60 @@
1324
1315
  ]
1325
1316
  },
1326
1317
  "variables": {
1327
- "applyEndPatternLast": 1,
1328
1318
  "patterns": [
1329
1319
  {
1330
- "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))",
1331
- "end": ";|$",
1332
1320
  "name": "meta.definition.variable.groovy",
1321
+ "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_\u003c\u003e\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))",
1322
+ "end": ";|$",
1333
1323
  "patterns": [
1334
1324
  {
1335
1325
  "match": "\\s"
1336
1326
  },
1337
1327
  {
1328
+ "match": "([A-Z_0-9]+)\\s+(?=\\=)",
1338
1329
  "captures": {
1339
1330
  "1": {
1340
1331
  "name": "constant.variable.groovy"
1341
1332
  }
1342
- },
1343
- "match": "([A-Z_0-9]+)\\s+(?=\\=)"
1333
+ }
1344
1334
  },
1345
1335
  {
1336
+ "match": "(\\w[^\\s,]*)\\s+(?=\\=)",
1346
1337
  "captures": {
1347
1338
  "1": {
1348
1339
  "name": "meta.definition.variable.name.groovy"
1349
1340
  }
1350
- },
1351
- "match": "(\\w[^\\s,]*)\\s+(?=\\=)"
1341
+ }
1352
1342
  },
1353
1343
  {
1354
1344
  "begin": "=",
1355
- "beginCaptures": {
1356
- "0": {
1357
- "name": "keyword.operator.assignment.groovy"
1358
- }
1359
- },
1360
1345
  "end": "$",
1361
1346
  "patterns": [
1362
1347
  {
1363
1348
  "include": "#groovy-code"
1364
1349
  }
1365
- ]
1350
+ ],
1351
+ "beginCaptures": {
1352
+ "0": {
1353
+ "name": "keyword.operator.assignment.groovy"
1354
+ }
1355
+ }
1366
1356
  },
1367
1357
  {
1358
+ "match": "(\\w[^\\s=]*)(?=\\s*($|;))",
1368
1359
  "captures": {
1369
1360
  "1": {
1370
1361
  "name": "meta.definition.variable.name.groovy"
1371
1362
  }
1372
- },
1373
- "match": "(\\w[^\\s=]*)(?=\\s*($|;))"
1363
+ }
1374
1364
  },
1375
1365
  {
1376
1366
  "include": "#groovy-code"
1377
1367
  }
1378
1368
  ]
1379
1369
  }
1380
- ]
1370
+ ],
1371
+ "applyEndPatternLast": true
1381
1372
  }
1382
- },
1383
- "scopeName": "source.groovy",
1384
- "uuid": "B3A64888-EBBB-4436-8D9E-F1169C5D7613"
1385
- }
1373
+ }
1374
+ }