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,20 +1,18 @@
1
1
  {
2
- "fileTypes": [
3
- "ijs"
4
- ],
5
2
  "name": "J",
3
+ "scopeName": "source.j",
6
4
  "patterns": [
7
5
  {
8
- "name": "string.j",
6
+ "name": "string.quoted.j",
9
7
  "match": "('[^']*')"
10
8
  },
11
9
  {
12
- "name": "constant.numeric.j",
13
- "match": "(_?\\d*\\.?\\d+)"
10
+ "name": "comment.line.j",
11
+ "match": "(?:^|[ )])(NB\\..*$)"
14
12
  },
15
13
  {
16
- "name": "comment.j",
17
- "match": "(?:^|[ )])(NB\\..*$)"
14
+ "name": "constant.numeric.j",
15
+ "match": "(?\u003c![_a-zA-Z])([_0-9][_0-9a-zA-Z]*\\.?[0-9a-zA-Z]*)(?![\\.\\:])"
18
16
  },
19
17
  {
20
18
  "name": "copula.global.j",
@@ -25,25 +23,24 @@
25
23
  "match": "=\\."
26
24
  },
27
25
  {
28
- "name": "keyword.j",
29
- "match": "(?:^|(?<=[) ]))((?:while\\.)|(?:whilst\\.)|(?:if\\.)|(?:elseif\\.)|(?:else\\.)|(?:do\\.)|(?:end\\.))"
26
+ "name": "keyword.control.j",
27
+ "match": "(?\u003c![_a-zA-Z0-9])((?:while\\.)|(?:whilst\\.)|(?:if\\.)|(?:elseif\\.)|(?:else\\.)|(?:do\\.)|(?:end\\.))"
30
28
  },
31
29
  {
32
- "name": "noun.j",
33
- "match": "(?:_(?=[^\\d:]))|(?:a[.:])"
30
+ "name": "keyword.other.noun.j",
31
+ "match": "((?\u003c![_a-zA-Z0-9])(_\\.|a\\.|a:)(?![\\.\\:]))"
34
32
  },
35
33
  {
36
- "name": "conjunction.j",
37
- "match": "(?:\\^\\:)|(?:[.:`@][.:]?)|(?:;\\.)|(?:![.:])|(?:[\"](?![.:]))|(?:\\&\\.?\\:?)|(?:[dHT]\\.)|(?:D[.:])|(?:[LS]\\:)"
34
+ "name": "keyword.operator.conjunction.j",
35
+ "match": "((?\u003c![_a-zA-Z0-9])(?:[dDHT]\\.)|(?\u003c![_a-zA-Z0-9])(?:[DLS]:)|(\u0026\\.:)|([\\;\\!\\@\u0026]\\.)|([\\^\\!\\`\\@\u0026]:)|([\\\"\\`\\@\u0026])|(\\s[\\.\\:][\\.\\:])|(\\s[\\.\\:]))(?![\\.\\:])"
38
36
  },
39
37
  {
40
- "name": "adverb.j",
41
- "match": "(?:[~}](?![.:]))|(?:[/\\\\]\\.?)|(?:[bfM]\\.)|(?:t[.:])"
38
+ "name": "keyword.operator.adverb.j",
39
+ "match": "(([\\/\\\\]\\.)|(?\u003c![_a-zA-Z0-9])(?:[bfMt]\\.)|(?\u003c![_a-zA-Z0-9])(?:t:)|([\\~\\/\\\\\\}]))(?![\\.\\:])"
42
40
  },
43
41
  {
44
- "name": "verb.j",
45
- "match": "(?:[=!](?![.:]))|(?:[<>+*%$|,#{-][.:]?)|(?:_\\:)|(?:\\^\\.?)|(?:\\^\\!\\.)|(?:[~}\"ip][.:])|(?:[;\\[]\\:?)|(?:[/\\\\]\\:)|\\]|(?:\\{\\:\\:)|(?:\\?\\.?)|(?:[AeEIjLr]\\.)|(?:p\\.\\.)|(?:[qsux0]\\:)|(?:_?[1-9]\\s?\\:)"
42
+ "name": "keyword.operator.verb.j",
43
+ "match": "((?:_?[0-9]\\:)|(?\u003c![_a-zA-Z0-9])(?:p\\.\\.)|(?\u003c![_a-zA-Z0-9])(?:[AcCeEiIjLopr]\\.)|(?\u003c![_a-zA-Z0-9])(?:[ipqsux]:)|({::)|([\u003c\u003e\\+\\*\\-\\%\\^\\$\\~\\|\\,\\#\\{\\}\"\\?]\\.)|([\u003c\u003e\\_\\+\\*\\-\\%\\$\\~\\|\\,\\;\\#\\/\\\\\\[\\{\\}\"]:)|([\u003c\u003e\\=\\+\\*\\-\\%\\^\\$\\|\\,\\;\\#\\!\\[\\]\\{\\?]))(?![\\.\\:])"
46
44
  }
47
- ],
48
- "scopeName": "source.j"
49
- }
45
+ ]
46
+ }
@@ -1,8 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "j"
4
- ],
5
2
  "name": "jasmin",
3
+ "scopeName": "source.jasmin",
6
4
  "patterns": [
7
5
  {
8
6
  "include": "#class-def"
@@ -68,50 +66,50 @@
68
66
  "include": "#directive"
69
67
  },
70
68
  {
69
+ "match": "([\\w/]+)(?=$|\\s+(?:;.*)?$)",
71
70
  "captures": {
72
71
  "1": {
73
72
  "name": "entity.name.type.jasmin"
74
73
  }
75
- },
76
- "match": "([\\w/]+)(?=$|\\s+(?:;.*)?$)"
74
+ }
77
75
  }
78
76
  ]
79
77
  },
80
78
  "comment": {
81
- "match": "(?<=^|[ \t]);.*",
82
- "name": "comment.line.jasmin"
79
+ "name": "comment.line.jasmin",
80
+ "match": "(?\u003c=^|[ \t]);.*"
83
81
  },
84
82
  "control": {
85
- "match": "(?<=^|\\s)return(?=$|\\s)",
86
- "name": "keyword.control.jasmin"
83
+ "name": "keyword.control.jasmin",
84
+ "match": "(?\u003c=^|\\s)return(?=$|\\s)"
87
85
  },
88
86
  "directive": {
89
- "match": "(?<=^|\\s)\\.(?:catch|class|end method|field|implements|interface|limit|line|method|source|super|throws|var)(?=$|\\s)",
90
- "name": "keyword.meta.directive.jasmin"
87
+ "name": "keyword.meta.directive.jasmin",
88
+ "match": "(?\u003c=^|\\s)\\.(?:catch|class|end method|field|implements|interface|limit|line|method|source|super|throws|var)(?=$|\\s)"
91
89
  },
92
90
  "double-string": {
93
91
  "begin": "\"",
92
+ "end": "\"",
93
+ "patterns": [
94
+ {
95
+ "name": "constant.character.escape.jasmin",
96
+ "match": "\\\\."
97
+ },
98
+ {
99
+ "name": "string.double.jasmin",
100
+ "match": "."
101
+ }
102
+ ],
94
103
  "beginCaptures": {
95
104
  "0": {
96
105
  "name": "string.begin.jasmin"
97
106
  }
98
107
  },
99
- "end": "\"",
100
108
  "endCaptures": {
101
109
  "0": {
102
110
  "name": "string.end.jasmin"
103
111
  }
104
- },
105
- "patterns": [
106
- {
107
- "match": "\\\\.",
108
- "name": "constant.character.escape.jasmin"
109
- },
110
- {
111
- "match": ".",
112
- "name": "string.double.jasmin"
113
- }
114
- ]
112
+ }
115
113
  },
116
114
  "field-def": {
117
115
  "begin": "(?=\\.field)",
@@ -136,6 +134,7 @@
136
134
  "include": "#type-descriptor"
137
135
  },
138
136
  {
137
+ "match": "([\\w/]+)\\s+((?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))(?=(\\s+)?[=]|(\\s+)?$|\\s+;)",
139
138
  "captures": {
140
139
  "1": {
141
140
  "name": "variable.parameter.jasmin"
@@ -143,8 +142,7 @@
143
142
  "2": {
144
143
  "name": "storage.type.type-descriptor.jasmin"
145
144
  }
146
- },
147
- "match": "([\\w/]+)\\s+((?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))(?=(\\s+)?[=]|(\\s+)?$|\\s+;)"
145
+ }
148
146
  }
149
147
  ]
150
148
  },
@@ -156,6 +154,7 @@
156
154
  "include": "#comment"
157
155
  },
158
156
  {
157
+ "match": "(\\.implements)\\s+([\\w/]+)",
159
158
  "captures": {
160
159
  "1": {
161
160
  "name": "keyword.meta.directive.jasmin"
@@ -163,8 +162,7 @@
163
162
  "2": {
164
163
  "name": "entity.other.inherited-class.jasmin"
165
164
  }
166
- },
167
- "match": "(\\.implements)\\s+([\\w/]+)"
165
+ }
168
166
  }
169
167
  ]
170
168
  },
@@ -182,18 +180,18 @@
182
180
  "include": "#directive"
183
181
  },
184
182
  {
183
+ "match": "([\\w/]+)(?=$|\\s+(?:;.*)?$)",
185
184
  "captures": {
186
185
  "1": {
187
186
  "name": "entity.name.type.jasmin"
188
187
  }
189
- },
190
- "match": "([\\w/]+)(?=$|\\s+(?:;.*)?$)"
188
+ }
191
189
  }
192
190
  ]
193
191
  },
194
192
  "label": {
195
- "match": "^[^0-9][^=^:.\"-]*:",
196
- "name": "keyword.meta.label.jasmin"
193
+ "name": "keyword.meta.label.jasmin",
194
+ "match": "^[^0-9][^=^:.\"-]*:"
197
195
  },
198
196
  "method-def": {
199
197
  "begin": "(?=\\.method)",
@@ -212,22 +210,22 @@
212
210
  "include": "#type-descriptor"
213
211
  },
214
212
  {
213
+ "match": "([\\w/\u003c\u003e]+)(?=\\()",
215
214
  "captures": {
216
215
  "1": {
217
216
  "name": "entity.name.function.jasmin"
218
217
  }
219
- },
220
- "match": "([\\w/<>]+)(?=\\()"
218
+ }
221
219
  }
222
220
  ]
223
221
  },
224
222
  "modifier": {
225
- "match": "(?<=^|\\s)(?:final|static|abstract|public|friend|protected|private)(?=$|\\s)",
226
- "name": "storage.modifier.jasmin"
223
+ "name": "storage.modifier.jasmin",
224
+ "match": "(?\u003c=^|\\s)(?:final|static|abstract|public|friend|protected|private)(?=$|\\s)"
227
225
  },
228
226
  "number": {
229
- "match": "(?<=^|[\\s(,=])[-+]?(?:[1-9][0-9]*|[-+]?(?:0?\\.|[1-9]\\.)[0-9]+|0x[0-9A-F]+|0)(?=$|[\\s,)=])",
230
- "name": "constant.numeric.jasmin"
227
+ "name": "constant.numeric.jasmin",
228
+ "match": "(?\u003c=^|[\\s(,=])[-+]?(?:[1-9][0-9]*|[-+]?(?:0?\\.|[1-9]\\.)[0-9]+|0x[0-9A-F]+|0)(?=$|[\\s,)=])"
231
229
  },
232
230
  "super-def": {
233
231
  "begin": "(?=\\.super)",
@@ -237,6 +235,7 @@
237
235
  "include": "#comment"
238
236
  },
239
237
  {
238
+ "match": "(\\.super)\\s+([\\w/]+)",
240
239
  "captures": {
241
240
  "1": {
242
241
  "name": "keyword.meta.directive.jasmin"
@@ -244,18 +243,17 @@
244
243
  "2": {
245
244
  "name": "entity.other.inherited-class.jasmin"
246
245
  }
247
- },
248
- "match": "(\\.super)\\s+([\\w/]+)"
246
+ }
249
247
  }
250
248
  ]
251
249
  },
252
250
  "true-false-null": {
253
- "match": "(?<=^|[\\s(,])(?:null|false|true)(?=$|[\\s,)])",
254
- "name": "constant.language.jasmin"
251
+ "name": "constant.language.jasmin",
252
+ "match": "(?\u003c=^|[\\s(,])(?:null|false|true)(?=$|[\\s,)])"
255
253
  },
256
254
  "type-descriptor": {
257
- "match": "(?<=^|[\\s()=,])(?:(?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))(?=$|[\\s,)=])",
258
- "name": "storage.type.type-descriptor.jasmin"
255
+ "name": "storage.type.type-descriptor.jasmin",
256
+ "match": "(?\u003c=^|[\\s()=,])(?:(?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))(?=$|[\\s,)=])"
259
257
  },
260
258
  "var-def": {
261
259
  "begin": "(?=\\.var)",
@@ -265,6 +263,7 @@
265
263
  "include": "#comment"
266
264
  },
267
265
  {
266
+ "match": "(\\.var)\\s+([1-9][0-9]*|[0])\\s+(is)\\s+([\\w_]+)\\s+((?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))\\s+(from)\\s+(?:[\\w_]+)\\s+(to)\\s+(?:[\\w_]+)",
268
267
  "captures": {
269
268
  "1": {
270
269
  "name": "keyword.meta.directive.jasmin"
@@ -287,13 +286,9 @@
287
286
  "7": {
288
287
  "name": "keyword.meta.to.jasmin"
289
288
  }
290
- },
291
- "comment": ".var <var-number> is <name> <descriptor> from <label1> to <label2>",
292
- "match": "(\\.var)\\s+([1-9][0-9]*|[0])\\s+(is)\\s+([\\w_]+)\\s+((?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))\\s+(from)\\s+(?:[\\w_]+)\\s+(to)\\s+(?:[\\w_]+)"
289
+ }
293
290
  }
294
291
  ]
295
292
  }
296
- },
297
- "scopeName": "source.jasmin",
298
- "uuid": "379c2786-2b36-4771-bece-72167eaba5c4"
299
- }
293
+ }
294
+ }
@@ -1,14 +1,8 @@
1
1
  {
2
- "fileTypes": [
3
- "properties"
4
- ],
5
- "foldingStartMarker": "^[a-zA-Z0-9.-_]+=.*\\\n",
6
- "foldingStopMarker": "^(.*(?<!\\)\n)",
7
- "keyEquivalent": "^~J",
8
2
  "name": "Java Properties",
3
+ "scopeName": "source.java-properties",
9
4
  "patterns": [
10
5
  {
11
- "comment": "Ignore blank lines",
12
6
  "match": "^\\s*$"
13
7
  },
14
8
  {
@@ -23,6 +17,8 @@
23
17
  ],
24
18
  "repository": {
25
19
  "comment-line": {
20
+ "name": "comment.line.java-properties",
21
+ "match": "^(\\s*)([#!])(.+)?$\\n?",
26
22
  "captures": {
27
23
  "1": {
28
24
  "name": "punctuation.whitespace.comment.leading.java-properties"
@@ -30,12 +26,27 @@
30
26
  "2": {
31
27
  "name": "punctuation.definition.comment.java-properties"
32
28
  }
33
- },
34
- "match": "^(\\s*)([#!])(.+)?$\\n?",
35
- "name": "comment.line.java-properties"
29
+ }
36
30
  },
37
31
  "property-definition": {
32
+ "name": "meta.key-value.java-properties",
33
+ "contentName": "string.unquoted.java-properties",
38
34
  "begin": "^(\\s*)((?:\\\\[ \\t]|\\\\:|\\\\=|[^:=\\s])+)(?:\\s*([:=]))?\\s*",
35
+ "end": "(?\u003c!\\\\{1})$\\n",
36
+ "patterns": [
37
+ {
38
+ "name": "punctuation.whitespace.leading.java-properties",
39
+ "match": "^\\s*"
40
+ },
41
+ {
42
+ "name": "punctuation.separator.continuation.java-properties",
43
+ "match": "(\\\\{1})(?=$\\n)"
44
+ },
45
+ {
46
+ "name": "constant.character.escape.java-properties",
47
+ "match": "\\\\(?:[\\\\ntfr\\\"']|u[0-9A-Fa-f]{4})"
48
+ }
49
+ ],
39
50
  "beginCaptures": {
40
51
  "1": {
41
52
  "name": "punctuation.whitespace.leading.java-properties"
@@ -44,35 +55,19 @@
44
55
  "name": "support.constant.java-properties",
45
56
  "patterns": [
46
57
  {
47
- "match": "\\\\(?:[ \\t:=\\\\ntfr\\\"']|u[0-9A-Fa-f]{4})",
48
- "name": "constant.character.escape.java-properties"
58
+ "name": "constant.character.escape.java-properties",
59
+ "match": "\\\\(?:[ \\t:=\\\\ntfr\\\"']|u[0-9A-Fa-f]{4})"
49
60
  }
50
61
  ]
51
62
  },
52
63
  "3": {
53
64
  "name": "punctuation.separator.key-value.java-properties"
54
65
  }
55
- },
56
- "contentName": "string.unquoted.java-properties",
57
- "end": "(?<!\\\\{1})$\\n",
58
- "name": "meta.key-value.java-properties",
59
- "patterns": [
60
- {
61
- "comment": "Leading space on a continued line is ignored",
62
- "match": "^\\s*",
63
- "name": "punctuation.whitespace.leading.java-properties"
64
- },
65
- {
66
- "match": "(\\\\{1})(?=$\\n)",
67
- "name": "punctuation.separator.continuation.java-properties"
68
- },
69
- {
70
- "match": "\\\\(?:[\\\\ntfr\\\"']|u[0-9A-Fa-f]{4})",
71
- "name": "constant.character.escape.java-properties"
72
- }
73
- ]
66
+ }
74
67
  },
75
68
  "property-name": {
69
+ "name": "meta.key-value.java-properties",
70
+ "match": "^(\\s*)((?:\\\\[ \\t]|\\\\:|\\\\=|[^:=\\s])+)(?:\\s*([:=]))?\\s*$\\n",
76
71
  "captures": {
77
72
  "1": {
78
73
  "name": "punctuation.whitespace.comment.leading.java-properties"
@@ -81,17 +76,12 @@
81
76
  "name": "support.constant.java-properties",
82
77
  "patterns": [
83
78
  {
84
- "match": "\\\\(?:[ \\t:=\\\\ntfr\\\"']|u[0-9A-Fa-f]{4})",
85
- "name": "constant.character.escape.java-properties"
79
+ "name": "constant.character.escape.java-properties",
80
+ "match": "\\\\(?:[ \\t:=\\\\ntfr\\\"']|u[0-9A-Fa-f]{4})"
86
81
  }
87
82
  ]
88
83
  }
89
- },
90
- "comment": "A property name with no value",
91
- "match": "^(\\s*)((?:\\\\[ \\t]|\\\\:|\\\\=|[^:=\\s])+)(?:\\s*([:=]))?\\s*$\\n",
92
- "name": "meta.key-value.java-properties"
84
+ }
93
85
  }
94
- },
95
- "scopeName": "source.java-properties",
96
- "uuid": "D364E829-7643-4AFF-948D-3C0D6B4EA8A4"
97
- }
86
+ }
87
+ }
@@ -1,12 +1,10 @@
1
1
  {
2
- "fileTypes": [
3
- "java",
4
- "bsh"
5
- ],
6
- "keyEquivalent": "^~J",
7
2
  "name": "Java",
3
+ "scopeName": "source.java",
8
4
  "patterns": [
9
5
  {
6
+ "name": "meta.package.java",
7
+ "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
10
8
  "captures": {
11
9
  "1": {
12
10
  "name": "keyword.other.package.java"
@@ -17,17 +15,23 @@
17
15
  "3": {
18
16
  "name": "punctuation.terminator.java"
19
17
  }
20
- },
21
- "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
22
- "name": "meta.package.java"
18
+ }
23
19
  },
24
20
  {
21
+ "name": "meta.import.java",
22
+ "contentName": "storage.modifier.import.java",
25
23
  "begin": "(import static)\\b\\s*",
26
- "beginCaptures": {
27
- "1": {
28
- "name": "keyword.other.import.static.java"
24
+ "end": "\\s*(?:$|(;))",
25
+ "patterns": [
26
+ {
27
+ "name": "punctuation.separator.java",
28
+ "match": "\\."
29
+ },
30
+ {
31
+ "name": "invalid.illegal.character_not_allowed_here.java",
32
+ "match": "\\s"
29
33
  }
30
- },
34
+ ],
31
35
  "captures": {
32
36
  "1": {
33
37
  "name": "keyword.other.import.java"
@@ -39,32 +43,32 @@
39
43
  "name": "punctuation.terminator.java"
40
44
  }
41
45
  },
42
- "contentName": "storage.modifier.import.java",
43
- "end": "\\s*(?:$|(;))",
46
+ "beginCaptures": {
47
+ "1": {
48
+ "name": "keyword.other.import.static.java"
49
+ }
50
+ },
44
51
  "endCaptures": {
45
52
  "1": {
46
53
  "name": "punctuation.terminator.java"
47
54
  }
48
- },
55
+ }
56
+ },
57
+ {
49
58
  "name": "meta.import.java",
59
+ "contentName": "storage.modifier.import.java",
60
+ "begin": "(import)\\b\\s*",
61
+ "end": "\\s*(?:$|(;))",
50
62
  "patterns": [
51
63
  {
52
- "match": "\\.",
53
- "name": "punctuation.separator.java"
64
+ "name": "punctuation.separator.java",
65
+ "match": "\\."
54
66
  },
55
67
  {
56
- "match": "\\s",
57
- "name": "invalid.illegal.character_not_allowed_here.java"
58
- }
59
- ]
60
- },
61
- {
62
- "begin": "(import)\\b\\s*",
63
- "beginCaptures": {
64
- "1": {
65
- "name": "keyword.other.import.java"
68
+ "name": "invalid.illegal.character_not_allowed_here.java",
69
+ "match": "\\s"
66
70
  }
67
- },
71
+ ],
68
72
  "captures": {
69
73
  "1": {
70
74
  "name": "keyword.other.import.java"
@@ -76,24 +80,16 @@
76
80
  "name": "punctuation.terminator.java"
77
81
  }
78
82
  },
79
- "contentName": "storage.modifier.import.java",
80
- "end": "\\s*(?:$|(;))",
81
- "endCaptures": {
83
+ "beginCaptures": {
82
84
  "1": {
83
- "name": "punctuation.terminator.java"
85
+ "name": "keyword.other.import.java"
84
86
  }
85
87
  },
86
- "name": "meta.import.java",
87
- "patterns": [
88
- {
89
- "match": "\\.",
90
- "name": "punctuation.separator.java"
91
- },
92
- {
93
- "match": "\\s",
94
- "name": "invalid.illegal.character_not_allowed_here.java"
88
+ "endCaptures": {
89
+ "1": {
90
+ "name": "punctuation.terminator.java"
95
91
  }
96
- ]
92
+ }
97
93
  },
98
94
  {
99
95
  "include": "#code"
@@ -116,24 +112,12 @@
116
112
  "annotations": {
117
113
  "patterns": [
118
114
  {
115
+ "name": "meta.declaration.annotation.java",
119
116
  "begin": "(@[^ (]+)(\\()",
120
- "beginCaptures": {
121
- "1": {
122
- "name": "storage.type.annotation.java"
123
- },
124
- "2": {
125
- "name": "punctuation.definition.annotation-arguments.begin.java"
126
- }
127
- },
128
117
  "end": "(\\))",
129
- "endCaptures": {
130
- "1": {
131
- "name": "punctuation.definition.annotation-arguments.end.java"
132
- }
133
- },
134
- "name": "meta.declaration.annotation.java",
135
118
  "patterns": [
136
119
  {
120
+ "match": "(\\w*)\\s*(=)",
137
121
  "captures": {
138
122
  "1": {
139
123
  "name": "constant.other.key.java"
@@ -141,46 +125,43 @@
141
125
  "2": {
142
126
  "name": "keyword.operator.assignment.java"
143
127
  }
144
- },
145
- "match": "(\\w*)\\s*(=)"
128
+ }
146
129
  },
147
130
  {
148
131
  "include": "#code"
149
132
  },
150
133
  {
151
- "match": ",",
152
- "name": "punctuation.separator.property.java"
134
+ "name": "punctuation.separator.property.java",
135
+ "match": ","
153
136
  }
154
- ]
137
+ ],
138
+ "beginCaptures": {
139
+ "1": {
140
+ "name": "storage.type.annotation.java"
141
+ },
142
+ "2": {
143
+ "name": "punctuation.definition.annotation-arguments.begin.java"
144
+ }
145
+ },
146
+ "endCaptures": {
147
+ "1": {
148
+ "name": "punctuation.definition.annotation-arguments.end.java"
149
+ }
150
+ }
155
151
  },
156
152
  {
157
- "match": "@\\w*",
158
- "name": "storage.type.annotation.java"
153
+ "name": "storage.type.annotation.java",
154
+ "match": "@\\w*"
159
155
  }
160
156
  ]
161
157
  },
162
158
  "anonymous-classes-and-new": {
163
159
  "begin": "\\bnew\\b",
164
- "beginCaptures": {
165
- "0": {
166
- "name": "keyword.control.new.java"
167
- }
168
- },
169
- "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)",
160
+ "end": "(?\u003c=\\)|\\])(?!\\s*{)|(?\u003c=})|(?=;)",
170
161
  "patterns": [
171
162
  {
172
163
  "begin": "(\\w+)\\s*(?=\\[)",
173
- "beginCaptures": {
174
- "1": {
175
- "name": "storage.type.java"
176
- }
177
- },
178
164
  "end": "(})|(?=\\s*(?:,|;|\\)))",
179
- "endCaptures": {
180
- "1": {
181
- "name": "punctuation.section.block.end.java"
182
- }
183
- },
184
165
  "patterns": [
185
166
  {
186
167
  "begin": "\\[",
@@ -193,97 +174,107 @@
193
174
  },
194
175
  {
195
176
  "begin": "{",
196
- "beginCaptures": {
197
- "0": {
198
- "name": "punctuation.section.block.begin.java"
199
- }
200
- },
201
177
  "end": "(?=})",
202
178
  "patterns": [
203
179
  {
204
180
  "include": "#code"
205
181
  }
206
- ]
182
+ ],
183
+ "beginCaptures": {
184
+ "0": {
185
+ "name": "punctuation.section.block.begin.java"
186
+ }
187
+ }
207
188
  }
208
- ]
189
+ ],
190
+ "beginCaptures": {
191
+ "1": {
192
+ "name": "storage.type.java"
193
+ }
194
+ },
195
+ "endCaptures": {
196
+ "1": {
197
+ "name": "punctuation.section.block.end.java"
198
+ }
199
+ }
209
200
  },
210
201
  {
211
202
  "begin": "(?=\\w.*\\()",
212
- "end": "(?<=\\))",
203
+ "end": "(?\u003c=\\))",
213
204
  "patterns": [
214
205
  {
215
206
  "include": "#object-types"
216
207
  },
217
208
  {
218
209
  "begin": "\\(",
219
- "beginCaptures": {
220
- "1": {
221
- "name": "storage.type.java"
222
- }
223
- },
224
210
  "end": "\\)",
225
211
  "patterns": [
226
212
  {
227
213
  "include": "#code"
228
214
  }
229
- ]
215
+ ],
216
+ "beginCaptures": {
217
+ "1": {
218
+ "name": "storage.type.java"
219
+ }
220
+ }
230
221
  }
231
222
  ]
232
223
  },
233
224
  {
225
+ "name": "meta.inner-class.java",
234
226
  "begin": "{",
227
+ "end": "}",
228
+ "patterns": [
229
+ {
230
+ "include": "#class-body"
231
+ }
232
+ ],
235
233
  "beginCaptures": {
236
234
  "0": {
237
235
  "name": "punctuation.section.inner-class.begin.java"
238
236
  }
239
237
  },
240
- "end": "}",
241
238
  "endCaptures": {
242
239
  "0": {
243
240
  "name": "punctuation.section.inner-class.end.java"
244
241
  }
245
- },
246
- "name": "meta.inner-class.java",
247
- "patterns": [
248
- {
249
- "include": "#class-body"
250
- }
251
- ]
242
+ }
252
243
  }
253
- ]
244
+ ],
245
+ "beginCaptures": {
246
+ "0": {
247
+ "name": "keyword.control.new.java"
248
+ }
249
+ }
254
250
  },
255
251
  "assertions": {
256
252
  "patterns": [
257
253
  {
254
+ "name": "meta.declaration.assertion.java",
258
255
  "begin": "\\b(assert)\\s",
259
- "beginCaptures": {
260
- "1": {
261
- "name": "keyword.control.assert.java"
262
- }
263
- },
264
256
  "end": "$",
265
- "name": "meta.declaration.assertion.java",
266
257
  "patterns": [
267
258
  {
268
- "match": ":",
269
- "name": "keyword.operator.assert.expression-seperator.java"
259
+ "name": "keyword.operator.assert.expression-seperator.java",
260
+ "match": ":"
270
261
  },
271
262
  {
272
263
  "include": "#code"
273
264
  }
274
- ]
265
+ ],
266
+ "beginCaptures": {
267
+ "1": {
268
+ "name": "keyword.control.assert.java"
269
+ }
270
+ }
275
271
  }
276
272
  ]
277
273
  },
278
274
  "class": {
275
+ "name": "meta.class.java",
279
276
  "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)",
280
277
  "end": "}",
281
- "endCaptures": {
282
- "0": {
283
- "name": "punctuation.section.class.end.java"
284
- }
285
- },
286
- "name": "meta.class.java",
287
278
  "patterns": [
288
279
  {
289
280
  "include": "#storage-modifiers"
@@ -292,6 +283,8 @@
292
283
  "include": "#comments"
293
284
  },
294
285
  {
286
+ "name": "meta.class.identifier.java",
287
+ "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
295
288
  "captures": {
296
289
  "1": {
297
290
  "name": "storage.modifier.java"
@@ -299,19 +292,12 @@
299
292
  "2": {
300
293
  "name": "entity.name.type.class.java"
301
294
  }
302
- },
303
- "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
304
- "name": "meta.class.identifier.java"
295
+ }
305
296
  },
306
297
  {
298
+ "name": "meta.definition.class.inherited.classes.java",
307
299
  "begin": "extends",
308
- "beginCaptures": {
309
- "0": {
310
- "name": "storage.modifier.extends.java"
311
- }
312
- },
313
300
  "end": "(?={|implements)",
314
- "name": "meta.definition.class.inherited.classes.java",
315
301
  "patterns": [
316
302
  {
317
303
  "include": "#object-types-inherited"
@@ -319,17 +305,17 @@
319
305
  {
320
306
  "include": "#comments"
321
307
  }
322
- ]
308
+ ],
309
+ "beginCaptures": {
310
+ "0": {
311
+ "name": "storage.modifier.extends.java"
312
+ }
313
+ }
323
314
  },
324
315
  {
316
+ "name": "meta.definition.class.implemented.interfaces.java",
325
317
  "begin": "(implements)\\s",
326
- "beginCaptures": {
327
- "1": {
328
- "name": "storage.modifier.implements.java"
329
- }
330
- },
331
318
  "end": "(?=\\s*extends|\\{)",
332
- "name": "meta.definition.class.implemented.interfaces.java",
333
319
  "patterns": [
334
320
  {
335
321
  "include": "#object-types-inherited"
@@ -337,24 +323,34 @@
337
323
  {
338
324
  "include": "#comments"
339
325
  }
340
- ]
326
+ ],
327
+ "beginCaptures": {
328
+ "1": {
329
+ "name": "storage.modifier.implements.java"
330
+ }
331
+ }
341
332
  },
342
333
  {
334
+ "name": "meta.class.body.java",
343
335
  "begin": "{",
344
- "beginCaptures": {
345
- "0": {
346
- "name": "punctuation.section.class.begin.java"
347
- }
348
- },
349
336
  "end": "(?=})",
350
- "name": "meta.class.body.java",
351
337
  "patterns": [
352
338
  {
353
339
  "include": "#class-body"
354
340
  }
355
- ]
341
+ ],
342
+ "beginCaptures": {
343
+ "0": {
344
+ "name": "punctuation.section.class.begin.java"
345
+ }
346
+ }
356
347
  }
357
- ]
348
+ ],
349
+ "endCaptures": {
350
+ "0": {
351
+ "name": "punctuation.section.class.end.java"
352
+ }
353
+ }
358
354
  },
359
355
  "class-body": {
360
356
  "patterns": [
@@ -394,22 +390,22 @@
394
390
  },
395
391
  {
396
392
  "begin": "{",
393
+ "end": "}",
394
+ "patterns": [
395
+ {
396
+ "include": "#code"
397
+ }
398
+ ],
397
399
  "beginCaptures": {
398
400
  "0": {
399
401
  "name": "punctuation.section.block.begin.java"
400
402
  }
401
403
  },
402
- "end": "}",
403
404
  "endCaptures": {
404
405
  "0": {
405
406
  "name": "punctuation.section.block.end.java"
406
407
  }
407
- },
408
- "patterns": [
409
- {
410
- "include": "#code"
411
- }
412
- ]
408
+ }
413
409
  },
414
410
  {
415
411
  "include": "#assertions"
@@ -446,13 +442,13 @@
446
442
  "comments": {
447
443
  "patterns": [
448
444
  {
445
+ "name": "comment.block.empty.java",
446
+ "match": "/\\*\\*/",
449
447
  "captures": {
450
448
  "0": {
451
449
  "name": "punctuation.definition.comment.java"
452
450
  }
453
- },
454
- "match": "/\\*\\*/",
455
- "name": "comment.block.empty.java"
451
+ }
456
452
  },
457
453
  {
458
454
  "include": "text.html.javadoc"
@@ -465,80 +461,80 @@
465
461
  "comments-inline": {
466
462
  "patterns": [
467
463
  {
464
+ "name": "comment.block.java",
468
465
  "begin": "/\\*",
466
+ "end": "\\*/",
469
467
  "captures": {
470
468
  "0": {
471
469
  "name": "punctuation.definition.comment.java"
472
470
  }
473
- },
474
- "end": "\\*/",
475
- "name": "comment.block.java"
471
+ }
476
472
  },
477
473
  {
478
474
  "begin": "(^[ \\t]+)?(?=//)",
479
- "beginCaptures": {
480
- "1": {
481
- "name": "punctuation.whitespace.comment.leading.java"
482
- }
483
- },
484
475
  "end": "(?!\\G)",
485
476
  "patterns": [
486
477
  {
478
+ "name": "comment.line.double-slash.java",
487
479
  "begin": "//",
480
+ "end": "\\n",
488
481
  "beginCaptures": {
489
482
  "0": {
490
483
  "name": "punctuation.definition.comment.java"
491
484
  }
492
- },
493
- "end": "\\n",
494
- "name": "comment.line.double-slash.java"
485
+ }
495
486
  }
496
- ]
487
+ ],
488
+ "beginCaptures": {
489
+ "1": {
490
+ "name": "punctuation.whitespace.comment.leading.java"
491
+ }
492
+ }
497
493
  }
498
494
  ]
499
495
  },
500
496
  "constants-and-special-vars": {
501
497
  "patterns": [
502
498
  {
503
- "match": "\\b(true|false|null)\\b",
504
- "name": "constant.language.java"
499
+ "name": "constant.language.java",
500
+ "match": "\\b(true|false|null)\\b"
505
501
  },
506
502
  {
507
- "match": "\\b(this|super)\\b",
508
- "name": "variable.language.java"
503
+ "name": "variable.language.java",
504
+ "match": "\\b(this|super)\\b"
509
505
  },
510
506
  {
511
- "match": "\\b0[xX][0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?[lL]?(?!\\w|\\.)",
512
- "name": "constant.numeric.hex.java"
507
+ "name": "constant.numeric.hex.java",
508
+ "match": "\\b0[xX][0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?[lL]?(?!\\w|\\.)"
513
509
  },
514
510
  {
515
- "match": "\\b0[0-7_]*[0-7][lL]?\\b",
516
- "name": "constant.numeric.octal.java"
511
+ "name": "constant.numeric.octal.java",
512
+ "match": "\\b0[0-7_]*[0-7][lL]?\\b"
517
513
  },
518
514
  {
519
- "match": "\\b0[bB][01]([01_]*[01])?[lL]?\\b",
520
- "name": "constant.numeric.binary.java"
515
+ "name": "constant.numeric.binary.java",
516
+ "match": "\\b0[bB][01]([01_]*[01])?[lL]?\\b"
521
517
  },
522
518
  {
523
- "match": "\\b(0|[1-9]([0-9_]*[0-9])?)[lL]?(?!\\w|\\.)",
524
- "name": "constant.numeric.integer.java"
519
+ "name": "constant.numeric.integer.java",
520
+ "match": "\\b(0|[1-9]([0-9_]*[0-9])?)[lL]?(?!\\w|\\.)"
525
521
  },
526
522
  {
527
- "match": "(?x)\n\t\t\t\t\t\t(?<!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t\t(?>\n\t\t\t\t\t\t\t0[xX]\t\t\t\t\t\t\t\t\t# Start literal\n\t\t\t\t\t\t\t([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?<=[0-9A-Fa-f])\\.\t\t\t\t\t\t\t# A number must exist on\n\t\t\t\t\t\t | \\.(?=[0-9A-Fa-f])\t\t\t\t\t\t\t# one side of the decimal\n\t\t\t\t\t\t | (?<=[0-9A-Fa-f])\t\t\t\t\t\t\t\t# Decimal not required\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t[pP]\t\t\t\t\t\t\t\t\t# Exponent Indicator\n\t\t\t\t\t\t\t[+-]?(0|[1-9]([0-9_]*[0-9])?)\t\t\t# Signed Integer\n\t\t\t\t\t\t\t[fFdD]?\t\t\t\t\t\t\t\t\t# Float Type Suffix\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t",
528
- "name": "constant.numeric.hex-float.java"
523
+ "name": "constant.numeric.hex-float.java",
524
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t\t(?\u003e\n\t\t\t\t\t\t\t0[xX]\t\t\t\t\t\t\t\t\t# Start literal\n\t\t\t\t\t\t\t([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?\u003c=[0-9A-Fa-f])\\.\t\t\t\t\t\t\t# A number must exist on\n\t\t\t\t\t\t | \\.(?=[0-9A-Fa-f])\t\t\t\t\t\t\t# one side of the decimal\n\t\t\t\t\t\t | (?\u003c=[0-9A-Fa-f])\t\t\t\t\t\t\t\t# Decimal not required\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t[pP]\t\t\t\t\t\t\t\t\t# Exponent Indicator\n\t\t\t\t\t\t\t[+-]?(0|[1-9]([0-9_]*[0-9])?)\t\t\t# Signed Integer\n\t\t\t\t\t\t\t[fFdD]?\t\t\t\t\t\t\t\t\t# Float Type Suffix\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t"
529
525
  },
530
526
  {
531
- "match": "(?x)\n\t\t\t\t\t\t(?<!\\w)\t\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t\t(?>\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(0|[1-9]([0-9_]*[0-9])?)\t\t\t\t# Leading digits\n\t\t\t\t\t\t\t\t(?=[eEfFdD.])\t\t\t\t\t\t\t# Allow for numbers without .\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?<=[0-9])(?=[eEfFdD])\t\t\t\t\t# Allow for numbers without .\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t[0-9]([0-9_]*[0-9])?\t\t\t\t\t# Numbers after .\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t[eE][+-]?(0|[1-9]([0-9_]*[0-9])?)\t\t# Exponent\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t[fFdD]?\t\t\t\t\t\t\t\t\t\t# Float Type Suffix\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t",
532
- "name": "constant.numeric.float.java"
527
+ "name": "constant.numeric.float.java",
528
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c!\\w)\t\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t\t(?\u003e\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(0|[1-9]([0-9_]*[0-9])?)\t\t\t\t# Leading digits\n\t\t\t\t\t\t\t\t(?=[eEfFdD.])\t\t\t\t\t\t\t# Allow for numbers without .\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?\u003c=[0-9])(?=[eEfFdD])\t\t\t\t\t# Allow for numbers without .\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t[0-9]([0-9_]*[0-9])?\t\t\t\t\t# Numbers after .\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t[eE][+-]?(0|[1-9]([0-9_]*[0-9])?)\t\t# Exponent\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t[fFdD]?\t\t\t\t\t\t\t\t\t\t# Float Type Suffix\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t"
533
529
  },
534
530
  {
531
+ "name": "constant.other.java",
532
+ "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!\u003c|\\.class|\\s*\\w+\\s*=)\\b",
535
533
  "captures": {
536
534
  "1": {
537
535
  "name": "keyword.operator.dereference.java"
538
536
  }
539
- },
540
- "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!<|\\.class|\\s*\\w+\\s*=)\\b",
541
- "name": "constant.other.java"
537
+ }
542
538
  }
543
539
  ]
544
540
  },
@@ -547,38 +543,38 @@
547
543
  "end": "(?=;|})",
548
544
  "patterns": [
549
545
  {
546
+ "name": "meta.enum.java",
550
547
  "begin": "\\w+",
551
- "beginCaptures": {
552
- "0": {
553
- "name": "constant.other.enum.java"
554
- }
555
- },
556
548
  "end": "(?=,|;|})",
557
- "name": "meta.enum.java",
558
549
  "patterns": [
559
550
  {
560
551
  "include": "#parens"
561
552
  },
562
553
  {
563
554
  "begin": "{",
555
+ "end": "}",
556
+ "patterns": [
557
+ {
558
+ "include": "#class-body"
559
+ }
560
+ ],
564
561
  "beginCaptures": {
565
562
  "0": {
566
563
  "name": "punctuation.section.enum.begin.java"
567
564
  }
568
565
  },
569
- "end": "}",
570
566
  "endCaptures": {
571
567
  "0": {
572
568
  "name": "punctuation.section.enum.end.java"
573
569
  }
574
- },
575
- "patterns": [
576
- {
577
- "include": "#class-body"
578
- }
579
- ]
570
+ }
580
571
  }
581
- ]
572
+ ],
573
+ "beginCaptures": {
574
+ "0": {
575
+ "name": "constant.other.enum.java"
576
+ }
577
+ }
582
578
  },
583
579
  {
584
580
  "include": "#comments"
@@ -591,69 +587,80 @@
591
587
  "keywords": {
592
588
  "patterns": [
593
589
  {
594
- "match": "\\b(try|catch|finally|throw)\\b",
595
- "name": "keyword.control.catch-exception.java"
590
+ "name": "keyword.control.catch-exception.java",
591
+ "match": "\\b(try|catch|finally|throw)\\b"
596
592
  },
597
593
  {
598
- "match": "\\?|:",
599
- "name": "keyword.control.ternary.java"
594
+ "name": "keyword.control.ternary.java",
595
+ "match": "\\?|:"
600
596
  },
601
597
  {
602
- "match": "\\b(return|break|case|continue|default|do|while|for|switch|if|else)\\b",
603
- "name": "keyword.control.java"
598
+ "name": "keyword.control.java",
599
+ "match": "\\b(return|break|case|continue|default|do|while|for|switch|if|else)\\b"
604
600
  },
605
601
  {
606
- "match": "\\b(instanceof)\\b",
607
- "name": "keyword.operator.java"
602
+ "name": "keyword.operator.java",
603
+ "match": "\\b(instanceof)\\b"
608
604
  },
609
605
  {
610
- "match": "(<<|>>>?|~|\\^)",
611
- "name": "keyword.operator.bitwise.java"
606
+ "name": "keyword.operator.bitwise.java",
607
+ "match": "(\u003c\u003c|\u003e\u003e\u003e?|~|\\^)"
612
608
  },
613
609
  {
614
- "match": "((&|\\^|\\||<<|>>>?)=)",
615
- "name": "keyword.operator.assignment.bitwise.java"
610
+ "name": "keyword.operator.assignment.bitwise.java",
611
+ "match": "((\u0026|\\^|\\||\u003c\u003c|\u003e\u003e\u003e?)=)"
616
612
  },
617
613
  {
618
- "match": "(===?|!=|<=|>=|<>|<|>)",
619
- "name": "keyword.operator.comparison.java"
614
+ "name": "keyword.operator.comparison.java",
615
+ "match": "(===?|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e)"
620
616
  },
621
617
  {
622
- "match": "([+*/%-]=)",
623
- "name": "keyword.operator.assignment.arithmetic.java"
618
+ "name": "keyword.operator.assignment.arithmetic.java",
619
+ "match": "([+*/%-]=)"
624
620
  },
625
621
  {
626
- "match": "(=)",
627
- "name": "keyword.operator.assignment.java"
622
+ "name": "keyword.operator.assignment.java",
623
+ "match": "(=)"
628
624
  },
629
625
  {
630
- "match": "(\\-\\-|\\+\\+)",
631
- "name": "keyword.operator.increment-decrement.java"
626
+ "name": "keyword.operator.increment-decrement.java",
627
+ "match": "(\\-\\-|\\+\\+)"
632
628
  },
633
629
  {
634
- "match": "(\\-|\\+|\\*|\\/|%)",
635
- "name": "keyword.operator.arithmetic.java"
630
+ "name": "keyword.operator.arithmetic.java",
631
+ "match": "(\\-|\\+|\\*|\\/|%)"
636
632
  },
637
633
  {
638
- "match": "(!|&&|\\|\\|)",
639
- "name": "keyword.operator.logical.java"
634
+ "name": "keyword.operator.logical.java",
635
+ "match": "(!|\u0026\u0026|\\|\\|)"
640
636
  },
641
637
  {
642
- "match": "(\\||&)",
643
- "name": "keyword.operator.bitwise.java"
638
+ "name": "keyword.operator.bitwise.java",
639
+ "match": "(\\||\u0026)"
644
640
  },
645
641
  {
646
- "match": "(?<=\\S)\\.(?=\\S)",
647
- "name": "keyword.operator.dereference.java"
642
+ "name": "keyword.operator.dereference.java",
643
+ "match": "(?\u003c=\\S)\\.(?=\\S)"
648
644
  },
649
645
  {
650
- "match": ";",
651
- "name": "punctuation.terminator.java"
646
+ "name": "punctuation.terminator.java",
647
+ "match": ";"
652
648
  }
653
649
  ]
654
650
  },
655
651
  "method-call": {
652
+ "name": "meta.method-call.java",
656
653
  "begin": "([\\w$]+)(\\()",
654
+ "end": "\\)",
655
+ "patterns": [
656
+ {
657
+ "name": "punctuation.definition.seperator.parameter.java",
658
+ "match": ","
659
+ },
660
+ {
661
+ "include": "#code"
662
+ }
663
+ ],
657
664
  "beginCaptures": {
658
665
  "1": {
659
666
  "name": "meta.method.java"
@@ -662,45 +669,24 @@
662
669
  "name": "punctuation.definition.method-parameters.begin.java"
663
670
  }
664
671
  },
665
- "end": "\\)",
666
672
  "endCaptures": {
667
673
  "0": {
668
674
  "name": "punctuation.definition.method-parameters.end.java"
669
675
  }
670
- },
671
- "name": "meta.method-call.java",
672
- "patterns": [
673
- {
674
- "match": ",",
675
- "name": "punctuation.definition.seperator.parameter.java"
676
- },
677
- {
678
- "include": "#code"
679
- }
680
- ]
676
+ }
681
677
  },
682
678
  "methods": {
683
- "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()",
684
- "end": "(})|(?=;)",
685
- "endCaptures": {
686
- "1": {
687
- "name": "punctuation.section.method.end.java"
688
- }
689
- },
690
679
  "name": "meta.method.java",
680
+ "begin": "(?!new)(?=[\\w\u003c].*\\s+)(?=([^=/]|/(?!/))+\\()",
681
+ "end": "(})|(?=;)",
691
682
  "patterns": [
692
683
  {
693
684
  "include": "#storage-modifiers"
694
685
  },
695
686
  {
687
+ "name": "meta.method.identifier.java",
696
688
  "begin": "(\\w+)\\s*\\(",
697
- "beginCaptures": {
698
- "1": {
699
- "name": "entity.name.function.java"
700
- }
701
- },
702
689
  "end": "\\)",
703
- "name": "meta.method.identifier.java",
704
690
  "patterns": [
705
691
  {
706
692
  "include": "#parameters"
@@ -708,28 +694,32 @@
708
694
  {
709
695
  "include": "#comments"
710
696
  }
711
- ]
697
+ ],
698
+ "beginCaptures": {
699
+ "1": {
700
+ "name": "entity.name.function.java"
701
+ }
702
+ }
712
703
  },
713
704
  {
714
- "begin": "<",
715
- "end": ">",
716
705
  "name": "storage.type.token.java",
706
+ "begin": "\u003c",
707
+ "end": "\u003e",
717
708
  "patterns": [
718
709
  {
719
710
  "include": "#object-types"
720
711
  },
721
712
  {
722
- "begin": "<",
723
- "comment": "This is just to support <>'s with no actual type prefix",
724
- "end": ">|[^\\w\\s,\\[\\]<]",
725
- "name": "storage.type.generic.java"
713
+ "name": "storage.type.generic.java",
714
+ "begin": "\u003c",
715
+ "end": "\u003e|[^\\w\\s,\\[\\]\u003c]"
726
716
  }
727
717
  ]
728
718
  },
729
719
  {
720
+ "name": "meta.method.return-type.java",
730
721
  "begin": "(?=\\w.*\\s+\\w+\\s*\\()",
731
722
  "end": "(?=\\w+\\s*\\()",
732
- "name": "meta.method.return-type.java",
733
723
  "patterns": [
734
724
  {
735
725
  "include": "#all-types"
@@ -743,47 +733,51 @@
743
733
  "include": "#throws"
744
734
  },
745
735
  {
736
+ "name": "meta.method.body.java",
746
737
  "begin": "{",
747
- "beginCaptures": {
748
- "0": {
749
- "name": "punctuation.section.method.begin.java"
750
- }
751
- },
752
738
  "end": "(?=})",
753
- "name": "meta.method.body.java",
754
739
  "patterns": [
755
740
  {
756
741
  "include": "#code"
757
742
  }
758
- ]
743
+ ],
744
+ "beginCaptures": {
745
+ "0": {
746
+ "name": "punctuation.section.method.begin.java"
747
+ }
748
+ }
759
749
  },
760
750
  {
761
751
  "include": "#comments"
762
752
  }
763
- ]
753
+ ],
754
+ "endCaptures": {
755
+ "1": {
756
+ "name": "punctuation.section.method.end.java"
757
+ }
758
+ }
764
759
  },
765
760
  "object-types": {
766
761
  "patterns": [
767
762
  {
768
- "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
769
- "end": ">|[^\\w\\s,\\?<\\[\\]]",
770
763
  "name": "storage.type.generic.java",
764
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c",
765
+ "end": "\u003e|[^\\w\\s,\\?\u003c\\[\\]]",
771
766
  "patterns": [
772
767
  {
773
768
  "include": "#object-types"
774
769
  },
775
770
  {
776
- "begin": "<",
777
- "comment": "This is just to support <>'s with no actual type prefix",
778
- "end": ">|[^\\w\\s,\\[\\]<]",
779
- "name": "storage.type.generic.java"
771
+ "name": "storage.type.generic.java",
772
+ "begin": "\u003c",
773
+ "end": "\u003e|[^\\w\\s,\\[\\]\u003c]"
780
774
  }
781
775
  ]
782
776
  },
783
777
  {
778
+ "name": "storage.type.object.array.java",
784
779
  "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)",
785
780
  "end": "(?=[^\\]\\s])",
786
- "name": "storage.type.object.array.java",
787
781
  "patterns": [
788
782
  {
789
783
  "begin": "\\[",
@@ -797,50 +791,49 @@
797
791
  ]
798
792
  },
799
793
  {
794
+ "name": "storage.type.java",
795
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b",
800
796
  "captures": {
801
797
  "1": {
802
798
  "name": "keyword.operator.dereference.java"
803
799
  }
804
- },
805
- "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b",
806
- "name": "storage.type.java"
800
+ }
807
801
  }
808
802
  ]
809
803
  },
810
804
  "object-types-inherited": {
811
805
  "patterns": [
812
806
  {
813
- "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
814
- "end": ">|[^\\w\\s,<]",
815
807
  "name": "entity.other.inherited-class.java",
808
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c",
809
+ "end": "\u003e|[^\\w\\s,\u003c]",
816
810
  "patterns": [
817
811
  {
818
812
  "include": "#object-types"
819
813
  },
820
814
  {
821
- "begin": "<",
822
- "comment": "This is just to support <>'s with no actual type prefix",
823
- "end": ">|[^\\w\\s,<]",
824
- "name": "storage.type.generic.java"
815
+ "name": "storage.type.generic.java",
816
+ "begin": "\u003c",
817
+ "end": "\u003e|[^\\w\\s,\u003c]"
825
818
  }
826
819
  ]
827
820
  },
828
821
  {
822
+ "name": "entity.other.inherited-class.java",
823
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*",
829
824
  "captures": {
830
825
  "1": {
831
826
  "name": "keyword.operator.dereference.java"
832
827
  }
833
- },
834
- "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*",
835
- "name": "entity.other.inherited-class.java"
828
+ }
836
829
  }
837
830
  ]
838
831
  },
839
832
  "parameters": {
840
833
  "patterns": [
841
834
  {
842
- "match": "final",
843
- "name": "storage.modifier.java"
835
+ "name": "storage.modifier.java",
836
+ "match": "final"
844
837
  },
845
838
  {
846
839
  "include": "#annotations"
@@ -855,8 +848,8 @@
855
848
  "include": "#object-types"
856
849
  },
857
850
  {
858
- "match": "\\w+",
859
- "name": "variable.parameter.java"
851
+ "name": "variable.parameter.java",
852
+ "match": "\\w+"
860
853
  }
861
854
  ]
862
855
  },
@@ -872,87 +865,87 @@
872
865
  "primitive-arrays": {
873
866
  "patterns": [
874
867
  {
875
- "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",
876
- "name": "storage.type.primitive.array.java"
868
+ "name": "storage.type.primitive.array.java",
869
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b"
877
870
  }
878
871
  ]
879
872
  },
880
873
  "primitive-types": {
881
874
  "patterns": [
882
875
  {
883
- "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",
884
- "name": "storage.type.primitive.java"
876
+ "name": "storage.type.primitive.java",
877
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b"
885
878
  }
886
879
  ]
887
880
  },
888
881
  "storage-modifiers": {
882
+ "match": "\\b(public|private|protected|static|final|native|synchronized|volatile|abstract|threadsafe|transient)\\b",
889
883
  "captures": {
890
884
  "1": {
891
885
  "name": "storage.modifier.java"
892
886
  }
893
- },
894
- "match": "\\b(public|private|protected|static|final|native|synchronized|volatile|abstract|threadsafe|transient)\\b"
887
+ }
895
888
  },
896
889
  "strings": {
897
890
  "patterns": [
898
891
  {
892
+ "name": "string.quoted.double.java",
899
893
  "begin": "\"",
894
+ "end": "\"",
895
+ "patterns": [
896
+ {
897
+ "name": "constant.character.escape.java",
898
+ "match": "\\\\."
899
+ }
900
+ ],
900
901
  "beginCaptures": {
901
902
  "0": {
902
903
  "name": "punctuation.definition.string.begin.java"
903
904
  }
904
905
  },
905
- "end": "\"",
906
906
  "endCaptures": {
907
907
  "0": {
908
908
  "name": "punctuation.definition.string.end.java"
909
909
  }
910
- },
911
- "name": "string.quoted.double.java",
912
- "patterns": [
913
- {
914
- "match": "\\\\.",
915
- "name": "constant.character.escape.java"
916
- }
917
- ]
910
+ }
918
911
  },
919
912
  {
913
+ "name": "string.quoted.single.java",
920
914
  "begin": "'",
915
+ "end": "'",
916
+ "patterns": [
917
+ {
918
+ "name": "constant.character.escape.java",
919
+ "match": "\\\\."
920
+ }
921
+ ],
921
922
  "beginCaptures": {
922
923
  "0": {
923
924
  "name": "punctuation.definition.string.begin.java"
924
925
  }
925
926
  },
926
- "end": "'",
927
927
  "endCaptures": {
928
928
  "0": {
929
929
  "name": "punctuation.definition.string.end.java"
930
930
  }
931
- },
932
- "name": "string.quoted.single.java",
933
- "patterns": [
934
- {
935
- "match": "\\\\.",
936
- "name": "constant.character.escape.java"
937
- }
938
- ]
931
+ }
939
932
  }
940
933
  ]
941
934
  },
942
935
  "throws": {
936
+ "name": "meta.throwables.java",
943
937
  "begin": "throws",
944
- "beginCaptures": {
945
- "0": {
946
- "name": "storage.modifier.java"
947
- }
948
- },
949
938
  "end": "(?={|;)",
950
- "name": "meta.throwables.java",
951
939
  "patterns": [
952
940
  {
953
941
  "include": "#object-types"
954
942
  }
955
- ]
943
+ ],
944
+ "beginCaptures": {
945
+ "0": {
946
+ "name": "storage.modifier.java"
947
+ }
948
+ }
956
949
  },
957
950
  "values": {
958
951
  "patterns": [
@@ -968,62 +961,60 @@
968
961
  ]
969
962
  },
970
963
  "variables": {
971
- "applyEndPatternLast": 1,
972
964
  "patterns": [
973
965
  {
974
- "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|volatile|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 (?!private|protected|public|native|synchronized|volatile|abstract|threadsafe|transient|static|final|def|void|boolean|byte|char|short|int|float|long|double)\n [\\w\\d_<>\\[\\],\\?][\\w\\d_<>\\[\\],\\? \\t]*\n (?:=|$)\n \n\t\t\t\t\t))",
975
- "end": "(?=;)",
976
966
  "name": "meta.definition.variable.java",
967
+ "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|volatile|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 (?!private|protected|public|native|synchronized|volatile|abstract|threadsafe|transient|static|final|def|void|boolean|byte|char|short|int|float|long|double)\n [\\w\\d_\u003c\u003e\\[\\],\\?][\\w\\d_\u003c\u003e\\[\\],\\? \\t]*\n (?:=|$)\n \n\t\t\t\t\t))",
968
+ "end": "(?=;)",
977
969
  "patterns": [
978
970
  {
979
971
  "match": "\\s"
980
972
  },
981
973
  {
974
+ "match": "([A-Z_0-9]+)\\s+(?=\\=)",
982
975
  "captures": {
983
976
  "1": {
984
977
  "name": "constant.other.variable.java"
985
978
  }
986
- },
987
- "match": "([A-Z_0-9]+)\\s+(?=\\=)"
979
+ }
988
980
  },
989
981
  {
982
+ "match": "(\\w[^\\s,]*)\\s+(?=\\=)",
990
983
  "captures": {
991
984
  "1": {
992
985
  "name": "meta.definition.variable.name.java"
993
986
  }
994
- },
995
- "match": "(\\w[^\\s,]*)\\s+(?=\\=)"
987
+ }
996
988
  },
997
989
  {
998
990
  "begin": "=",
999
- "beginCaptures": {
1000
- "0": {
1001
- "name": "keyword.operator.assignment.java"
1002
- }
1003
- },
1004
991
  "end": "(?=;)",
1005
992
  "patterns": [
1006
993
  {
1007
994
  "include": "#code"
1008
995
  }
1009
- ]
996
+ ],
997
+ "beginCaptures": {
998
+ "0": {
999
+ "name": "keyword.operator.assignment.java"
1000
+ }
1001
+ }
1010
1002
  },
1011
1003
  {
1004
+ "match": "(\\w[^\\s=]*)(?=\\s*;)",
1012
1005
  "captures": {
1013
1006
  "1": {
1014
1007
  "name": "meta.definition.variable.name.java"
1015
1008
  }
1016
- },
1017
- "match": "(\\w[^\\s=]*)(?=\\s*;)"
1009
+ }
1018
1010
  },
1019
1011
  {
1020
1012
  "include": "#code"
1021
1013
  }
1022
1014
  ]
1023
1015
  }
1024
- ]
1016
+ ],
1017
+ "applyEndPatternLast": true
1025
1018
  }
1026
- },
1027
- "scopeName": "source.java",
1028
- "uuid": "2B449DF6-6B1D-11D9-94EC-000D93589AF6"
1029
- }
1019
+ }
1020
+ }