github-linguist 5.3.3 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }