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,12 +1,10 @@
1
1
  {
2
- "comment": "This grammar is based on the Java grammar (https://github.com/textmate/java.tmbundle)",
3
- "fileTypes": [
4
- "pde"
5
- ],
6
- "keyEquivalent": "^~P",
7
2
  "name": "Processing",
3
+ "scopeName": "source.processing",
8
4
  "patterns": [
9
5
  {
6
+ "name": "meta.package.processing",
7
+ "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
10
8
  "captures": {
11
9
  "1": {
12
10
  "name": "keyword.other.package.processing"
@@ -17,11 +15,11 @@
17
15
  "3": {
18
16
  "name": "punctuation.terminator.processing"
19
17
  }
20
- },
21
- "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
22
- "name": "meta.package.processing"
18
+ }
23
19
  },
24
20
  {
21
+ "name": "meta.import.static.processing",
22
+ "match": "^\\s*(import static)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
25
23
  "captures": {
26
24
  "1": {
27
25
  "name": "keyword.other.import.static.processing"
@@ -32,11 +30,11 @@
32
30
  "3": {
33
31
  "name": "punctuation.terminator.processing"
34
32
  }
35
- },
36
- "match": "^\\s*(import static)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
37
- "name": "meta.import.static.processing"
33
+ }
38
34
  },
39
35
  {
36
+ "name": "meta.import.processing",
37
+ "match": "^\\s*(import)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
40
38
  "captures": {
41
39
  "1": {
42
40
  "name": "keyword.other.import.processing"
@@ -47,12 +45,9 @@
47
45
  "3": {
48
46
  "name": "punctuation.terminator.processing"
49
47
  }
50
- },
51
- "match": "^\\s*(import)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
52
- "name": "meta.import.processing"
48
+ }
53
49
  },
54
50
  {
55
- "comment": ".pde preprocessing wrap the contents of a .pde file inside a class definition. Hence, the body of a .pde file is a Java class body",
56
51
  "include": "#class-body"
57
52
  }
58
53
  ],
@@ -73,24 +68,12 @@
73
68
  "annotations": {
74
69
  "patterns": [
75
70
  {
71
+ "name": "meta.declaration.annotation.processing",
76
72
  "begin": "(@[^ (]+)(\\()",
77
- "beginCaptures": {
78
- "1": {
79
- "name": "storage.type.annotation.processing"
80
- },
81
- "2": {
82
- "name": "punctuation.definition.annotation-arguments.begin.processing"
83
- }
84
- },
85
73
  "end": "(\\))",
86
- "endCaptures": {
87
- "1": {
88
- "name": "punctuation.definition.annotation-arguments.end.processing"
89
- }
90
- },
91
- "name": "meta.declaration.annotation.processing",
92
74
  "patterns": [
93
75
  {
76
+ "match": "(\\w*)\\s*(=)",
94
77
  "captures": {
95
78
  "1": {
96
79
  "name": "constant.other.key.processing"
@@ -98,40 +81,42 @@
98
81
  "2": {
99
82
  "name": "keyword.operator.assignment.processing"
100
83
  }
101
- },
102
- "match": "(\\w*)\\s*(=)"
84
+ }
103
85
  },
104
86
  {
105
87
  "include": "#code"
106
88
  },
107
89
  {
108
- "match": ",",
109
- "name": "punctuation.seperator.property.processing"
90
+ "name": "punctuation.seperator.property.processing",
91
+ "match": ","
110
92
  }
111
- ]
93
+ ],
94
+ "beginCaptures": {
95
+ "1": {
96
+ "name": "storage.type.annotation.processing"
97
+ },
98
+ "2": {
99
+ "name": "punctuation.definition.annotation-arguments.begin.processing"
100
+ }
101
+ },
102
+ "endCaptures": {
103
+ "1": {
104
+ "name": "punctuation.definition.annotation-arguments.end.processing"
105
+ }
106
+ }
112
107
  },
113
108
  {
114
- "match": "@\\w*",
115
- "name": "storage.type.annotation.processing"
109
+ "name": "storage.type.annotation.processing",
110
+ "match": "@\\w*"
116
111
  }
117
112
  ]
118
113
  },
119
114
  "anonymous-classes-and-new": {
120
115
  "begin": "\\bnew\\b",
121
- "beginCaptures": {
122
- "0": {
123
- "name": "keyword.control.new.processing"
124
- }
125
- },
126
- "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)",
116
+ "end": "(?\u003c=\\)|\\])(?!\\s*{)|(?\u003c=})|(?=;)",
127
117
  "patterns": [
128
118
  {
129
119
  "begin": "(\\w+)\\s*(?=\\[)",
130
- "beginCaptures": {
131
- "1": {
132
- "name": "storage.type.processing"
133
- }
134
- },
135
120
  "end": "}|(?=\\s*(?:;|\\)))",
136
121
  "patterns": [
137
122
  {
@@ -152,75 +137,80 @@
152
137
  }
153
138
  ]
154
139
  }
155
- ]
140
+ ],
141
+ "beginCaptures": {
142
+ "1": {
143
+ "name": "storage.type.processing"
144
+ }
145
+ }
156
146
  },
157
147
  {
158
148
  "begin": "(?=\\w.*\\()",
159
- "end": "(?<=\\))",
149
+ "end": "(?\u003c=\\))",
160
150
  "patterns": [
161
151
  {
162
152
  "include": "#object-types"
163
153
  },
164
154
  {
165
155
  "begin": "\\(",
166
- "beginCaptures": {
167
- "1": {
168
- "name": "storage.type.processing"
169
- }
170
- },
171
156
  "end": "\\)",
172
157
  "patterns": [
173
158
  {
174
159
  "include": "#code"
175
160
  }
176
- ]
161
+ ],
162
+ "beginCaptures": {
163
+ "1": {
164
+ "name": "storage.type.processing"
165
+ }
166
+ }
177
167
  }
178
168
  ]
179
169
  },
180
170
  {
171
+ "name": "meta.inner-class.processing",
181
172
  "begin": "{",
182
173
  "end": "}",
183
- "name": "meta.inner-class.processing",
184
174
  "patterns": [
185
175
  {
186
176
  "include": "#class-body"
187
177
  }
188
178
  ]
189
179
  }
190
- ]
180
+ ],
181
+ "beginCaptures": {
182
+ "0": {
183
+ "name": "keyword.control.new.processing"
184
+ }
185
+ }
191
186
  },
192
187
  "assertions": {
193
188
  "patterns": [
194
189
  {
190
+ "name": "meta.declaration.assertion.processing",
195
191
  "begin": "\\b(assert)\\s",
196
- "beginCaptures": {
197
- "1": {
198
- "name": "keyword.control.assert.processing"
199
- }
200
- },
201
192
  "end": "$",
202
- "name": "meta.declaration.assertion.processing",
203
193
  "patterns": [
204
194
  {
205
- "match": ":",
206
- "name": "keyword.operator.assert.expression-seperator.processing"
195
+ "name": "keyword.operator.assert.expression-seperator.processing",
196
+ "match": ":"
207
197
  },
208
198
  {
209
199
  "include": "#code"
210
200
  }
211
- ]
201
+ ],
202
+ "beginCaptures": {
203
+ "1": {
204
+ "name": "keyword.control.assert.processing"
205
+ }
206
+ }
212
207
  }
213
208
  ]
214
209
  },
215
210
  "class": {
211
+ "name": "meta.class.processing",
216
212
  "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)",
217
213
  "end": "}",
218
- "endCaptures": {
219
- "0": {
220
- "name": "punctuation.section.class.end.processing"
221
- }
222
- },
223
- "name": "meta.class.processing",
224
214
  "patterns": [
225
215
  {
226
216
  "include": "#storage-modifiers"
@@ -229,6 +219,8 @@
229
219
  "include": "#comments"
230
220
  },
231
221
  {
222
+ "name": "meta.class.identifier.processing",
223
+ "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
232
224
  "captures": {
233
225
  "1": {
234
226
  "name": "storage.modifier.processing"
@@ -236,19 +228,12 @@
236
228
  "2": {
237
229
  "name": "entity.name.type.class.processing"
238
230
  }
239
- },
240
- "match": "(class|(?:@)?interface|enum)\\s+(\\w+)",
241
- "name": "meta.class.identifier.processing"
231
+ }
242
232
  },
243
233
  {
234
+ "name": "meta.definition.class.inherited.classes.processing",
244
235
  "begin": "extends",
245
- "beginCaptures": {
246
- "0": {
247
- "name": "storage.modifier.extends.processing"
248
- }
249
- },
250
236
  "end": "(?={|implements)",
251
- "name": "meta.definition.class.inherited.classes.processing",
252
237
  "patterns": [
253
238
  {
254
239
  "include": "#object-types-inherited"
@@ -256,17 +241,17 @@
256
241
  {
257
242
  "include": "#comments"
258
243
  }
259
- ]
244
+ ],
245
+ "beginCaptures": {
246
+ "0": {
247
+ "name": "storage.modifier.extends.processing"
248
+ }
249
+ }
260
250
  },
261
251
  {
252
+ "name": "meta.definition.class.implemented.interfaces.processing",
262
253
  "begin": "(implements)\\s",
263
- "beginCaptures": {
264
- "1": {
265
- "name": "storage.modifier.implements.processing"
266
- }
267
- },
268
254
  "end": "(?=\\s*extends|\\{)",
269
- "name": "meta.definition.class.implemented.interfaces.processing",
270
255
  "patterns": [
271
256
  {
272
257
  "include": "#object-types-inherited"
@@ -274,19 +259,29 @@
274
259
  {
275
260
  "include": "#comments"
276
261
  }
277
- ]
262
+ ],
263
+ "beginCaptures": {
264
+ "1": {
265
+ "name": "storage.modifier.implements.processing"
266
+ }
267
+ }
278
268
  },
279
269
  {
270
+ "name": "meta.class.body.processing",
280
271
  "begin": "{",
281
272
  "end": "(?=})",
282
- "name": "meta.class.body.processing",
283
273
  "patterns": [
284
274
  {
285
275
  "include": "#class-body"
286
276
  }
287
277
  ]
288
278
  }
289
- ]
279
+ ],
280
+ "endCaptures": {
281
+ "0": {
282
+ "name": "punctuation.section.class.end.processing"
283
+ }
284
+ }
290
285
  },
291
286
  "class-body": {
292
287
  "patterns": [
@@ -365,13 +360,13 @@
365
360
  "comments": {
366
361
  "patterns": [
367
362
  {
363
+ "name": "comment.block.empty.processing",
364
+ "match": "/\\*\\*/",
368
365
  "captures": {
369
366
  "0": {
370
367
  "name": "punctuation.definition.comment.processing"
371
368
  }
372
- },
373
- "match": "/\\*\\*/",
374
- "name": "comment.block.empty.processing"
369
+ }
375
370
  },
376
371
  {
377
372
  "include": "#comments-javadoc"
@@ -384,51 +379,47 @@
384
379
  "comments-inline": {
385
380
  "patterns": [
386
381
  {
382
+ "name": "comment.block.processing",
387
383
  "begin": "/\\*(?!\\*)",
384
+ "end": "\\*/",
388
385
  "captures": {
389
386
  "0": {
390
387
  "name": "punctuation.definition.comment.processing"
391
388
  }
392
- },
393
- "end": "\\*/",
394
- "name": "comment.block.processing"
389
+ }
395
390
  },
396
391
  {
397
392
  "begin": "(^[ \\t]+)?(?=//)",
398
- "beginCaptures": {
399
- "1": {
400
- "name": "punctuation.whitespace.comment.leading.processing"
401
- }
402
- },
403
393
  "end": "(?!\\G)",
404
394
  "patterns": [
405
395
  {
396
+ "name": "comment.line.double-slash.processing",
406
397
  "begin": "//",
398
+ "end": "\\n",
407
399
  "beginCaptures": {
408
400
  "0": {
409
401
  "name": "punctuation.definition.comment.processing"
410
402
  }
411
- },
412
- "end": "\\n",
413
- "name": "comment.line.double-slash.processing"
403
+ }
414
404
  }
415
- ]
405
+ ],
406
+ "beginCaptures": {
407
+ "1": {
408
+ "name": "punctuation.whitespace.comment.leading.processing"
409
+ }
410
+ }
416
411
  }
417
412
  ]
418
413
  },
419
414
  "comments-javadoc": {
420
415
  "patterns": [
421
416
  {
417
+ "name": "comment.block.documentation.processing",
422
418
  "begin": "/\\*\\*",
423
- "captures": {
424
- "0": {
425
- "name": "punctuation.definition.comment.processing"
426
- }
427
- },
428
419
  "end": "\\*/",
429
- "name": "comment.block.documentation.processing",
430
420
  "patterns": [
431
421
  {
422
+ "match": "\\{\\s*(@link)\\s*([a-zA-Z_][a-zA-Z0-9_]+)\\s*\\}",
432
423
  "captures": {
433
424
  "0": {
434
425
  "name": "keyword.other.documentation.inlinetag.processing"
@@ -439,19 +430,24 @@
439
430
  "2": {
440
431
  "name": "keyword.other.documentation.value.processing"
441
432
  }
442
- },
443
- "match": "\\{\\s*(@link)\\s*([a-zA-Z_][a-zA-Z0-9_]+)\\s*\\}"
433
+ }
444
434
  },
445
435
  {
446
436
  "include": "#comments-javadoc-tags"
447
437
  }
448
- ]
438
+ ],
439
+ "captures": {
440
+ "0": {
441
+ "name": "punctuation.definition.comment.processing"
442
+ }
443
+ }
449
444
  }
450
445
  ]
451
446
  },
452
447
  "comments-javadoc-tags": {
453
448
  "patterns": [
454
449
  {
450
+ "match": "(@param)\\s+([a-zA-Z_][a-zA-Z0-9_]+)\\b",
455
451
  "captures": {
456
452
  "1": {
457
453
  "name": "keyword.other.documentation.params.processing"
@@ -459,12 +455,11 @@
459
455
  "2": {
460
456
  "name": "keyword.other.documentation.value.processing"
461
457
  }
462
- },
463
- "match": "(@param)\\s+([a-zA-Z_][a-zA-Z0-9_]+)\\b"
458
+ }
464
459
  },
465
460
  {
466
- "match": "@[a-zA-Z]+\\b",
467
- "name": "keyword.other.documentation.tag.processing"
461
+ "name": "keyword.other.documentation.tag.processing",
462
+ "match": "@[a-zA-Z]+\\b"
468
463
  }
469
464
  ]
470
465
  },
@@ -474,25 +469,25 @@
474
469
  "include": "#processing-variables-and-constants"
475
470
  },
476
471
  {
477
- "match": "\\b(true|false|null)\\b",
478
- "name": "constant.language.processing"
472
+ "name": "constant.language.processing",
473
+ "match": "\\b(true|false|null)\\b"
479
474
  },
480
475
  {
481
- "match": "\\b(this|super)\\b",
482
- "name": "variable.language.processing"
476
+ "name": "variable.language.processing",
477
+ "match": "\\b(this|super)\\b"
483
478
  },
484
479
  {
485
- "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",
486
- "name": "constant.numeric.processing"
480
+ "name": "constant.numeric.processing",
481
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b"
487
482
  },
488
483
  {
484
+ "name": "constant.other.processing",
485
+ "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!\u003c|\\.class|\\s*\\w+\\s*=)\\b",
489
486
  "captures": {
490
487
  "1": {
491
488
  "name": "keyword.operator.dereference.processing"
492
489
  }
493
- },
494
- "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!<|\\.class|\\s*\\w+\\s*=)\\b",
495
- "name": "constant.other.processing"
490
+ }
496
491
  }
497
492
  ]
498
493
  },
@@ -501,14 +496,9 @@
501
496
  "end": "(?=;|})",
502
497
  "patterns": [
503
498
  {
499
+ "name": "meta.enum.processing",
504
500
  "begin": "\\w+",
505
- "beginCaptures": {
506
- "0": {
507
- "name": "constant.other.enum.processing"
508
- }
509
- },
510
501
  "end": "(?=,|;|})",
511
- "name": "meta.enum.processing",
512
502
  "patterns": [
513
503
  {
514
504
  "include": "#parens"
@@ -522,102 +512,106 @@
522
512
  }
523
513
  ]
524
514
  }
525
- ]
515
+ ],
516
+ "beginCaptures": {
517
+ "0": {
518
+ "name": "constant.other.enum.processing"
519
+ }
520
+ }
526
521
  }
527
522
  ]
528
523
  },
529
524
  "keywords": {
530
525
  "patterns": [
531
526
  {
532
- "match": "((&|\\^|\\||<<|>>>?)=)",
533
- "name": "keyword.operator.assignment.bitwise.processing"
527
+ "name": "keyword.operator.assignment.bitwise.processing",
528
+ "match": "((\u0026|\\^|\\||\u003c\u003c|\u003e\u003e\u003e?)=)"
534
529
  },
535
530
  {
536
- "match": "(<<|>>>?|~|\\^)",
537
- "name": "keyword.operator.bitwise.processing"
531
+ "name": "keyword.operator.bitwise.processing",
532
+ "match": "(\u003c\u003c|\u003e\u003e\u003e?|~|\\^)"
538
533
  },
539
534
  {
540
- "match": "\\b(try|catch|finally|throw)\\b",
541
- "name": "keyword.control.catch-exception.processing"
535
+ "name": "keyword.control.catch-exception.processing",
536
+ "match": "\\b(try|catch|finally|throw)\\b"
542
537
  },
543
538
  {
544
- "match": "\\?|:",
545
- "name": "keyword.control.ternary.processing"
539
+ "name": "keyword.control.ternary.processing",
540
+ "match": "\\?|:"
546
541
  },
547
542
  {
548
- "match": "\\b(return|break|case|continue|default|do|while|for|switch|if|else)\\b",
549
- "name": "keyword.control.processing"
543
+ "name": "keyword.control.processing",
544
+ "match": "\\b(return|break|case|continue|default|do|while|for|switch|if|else)\\b"
550
545
  },
551
546
  {
552
- "match": "\\b(instanceof)\\b",
553
- "name": "keyword.operator.instanceof.processing"
547
+ "name": "keyword.operator.instanceof.processing",
548
+ "match": "\\b(instanceof)\\b"
554
549
  },
555
550
  {
556
- "match": "(===?|!=|<=|>=|<>|<|>)",
557
- "name": "keyword.operator.comparison.processing"
551
+ "name": "keyword.operator.comparison.processing",
552
+ "match": "(===?|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e)"
558
553
  },
559
554
  {
560
- "match": "([+*/%-]=)",
561
- "name": "keyword.operator.assignment.arithmetic.processing"
555
+ "name": "keyword.operator.assignment.arithmetic.processing",
556
+ "match": "([+*/%-]=)"
562
557
  },
563
558
  {
564
- "match": "(=)",
565
- "name": "keyword.operator.assignment.processing"
559
+ "name": "keyword.operator.assignment.processing",
560
+ "match": "(=)"
566
561
  },
567
562
  {
568
- "match": "(\\-\\-|\\+\\+)",
569
- "name": "keyword.operator.increment-decrement.processing"
563
+ "name": "keyword.operator.increment-decrement.processing",
564
+ "match": "(\\-\\-|\\+\\+)"
570
565
  },
571
566
  {
572
- "match": "(\\-|\\+|\\*|\\/|%)",
573
- "name": "keyword.operator.arithmetic.processing"
567
+ "name": "keyword.operator.arithmetic.processing",
568
+ "match": "(\\-|\\+|\\*|\\/|%)"
574
569
  },
575
570
  {
576
- "match": "(!|&&|\\|\\|)",
577
- "name": "keyword.operator.logical.processing"
571
+ "name": "keyword.operator.logical.processing",
572
+ "match": "(!|\u0026\u0026|\\|\\|)"
578
573
  },
579
574
  {
580
- "match": "(\\||&)",
581
- "name": "keyword.operator.bitwise.processing"
575
+ "name": "keyword.operator.bitwise.processing",
576
+ "match": "(\\||\u0026)"
582
577
  },
583
578
  {
584
- "match": "(?<=\\S)\\.(?=\\S)",
585
- "name": "keyword.operator.dereference.processing"
579
+ "name": "keyword.operator.dereference.processing",
580
+ "match": "(?\u003c=\\S)\\.(?=\\S)"
586
581
  },
587
582
  {
588
- "match": ";",
589
- "name": "punctuation.terminator.processing"
583
+ "name": "punctuation.terminator.processing",
584
+ "match": ";"
590
585
  }
591
586
  ]
592
587
  },
593
588
  "methods": {
589
+ "name": "meta.method.processing",
594
590
  "begin": "(?!new)(?=\\w.*\\s+)(?=[^=]+\\()(?=.+{)",
595
- "comment": "Method defs have to look-ahead for the opening bracket to be distinguished from a method call",
596
591
  "end": "}|(?=;)",
597
- "name": "meta.method.processing",
598
592
  "patterns": [
599
593
  {
600
594
  "include": "#storage-modifiers"
601
595
  },
602
596
  {
597
+ "name": "meta.method.identifier.processing",
603
598
  "begin": "(\\w+)\\s*\\(",
604
- "beginCaptures": {
605
- "1": {
606
- "name": "entity.name.function.processing"
607
- }
608
- },
609
599
  "end": "\\)",
610
- "name": "meta.method.identifier.processing",
611
600
  "patterns": [
612
601
  {
613
602
  "include": "#parameters"
614
603
  }
615
- ]
604
+ ],
605
+ "beginCaptures": {
606
+ "1": {
607
+ "name": "entity.name.function.processing"
608
+ }
609
+ }
616
610
  },
617
611
  {
612
+ "name": "meta.method.return-type.processing",
618
613
  "begin": "(?=\\w.*\\s+\\w+\\s*\\()",
619
614
  "end": "(?=\\w+\\s*\\()",
620
- "name": "meta.method.return-type.processing",
621
615
  "patterns": [
622
616
  {
623
617
  "include": "#all-types"
@@ -628,9 +622,9 @@
628
622
  "include": "#throws"
629
623
  },
630
624
  {
625
+ "name": "meta.method.body.processing",
631
626
  "begin": "{",
632
627
  "end": "(?=})",
633
- "name": "meta.method.body.processing",
634
628
  "patterns": [
635
629
  {
636
630
  "include": "#code"
@@ -645,25 +639,24 @@
645
639
  "include": "#processing-classes"
646
640
  },
647
641
  {
648
- "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
649
- "end": ">|[^\\w\\s,\\?<\\[\\]]",
650
642
  "name": "storage.type.generic.processing",
643
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c",
644
+ "end": "\u003e|[^\\w\\s,\\?\u003c\\[\\]]",
651
645
  "patterns": [
652
646
  {
653
647
  "include": "#object-types"
654
648
  },
655
649
  {
656
- "begin": "<",
657
- "comment": "This is just to support <>'s with no actual type prefix",
658
- "end": ">|[^\\w\\s,\\[\\]<]",
659
- "name": "storage.type.generic.processing"
650
+ "name": "storage.type.generic.processing",
651
+ "begin": "\u003c",
652
+ "end": "\u003e|[^\\w\\s,\\[\\]\u003c]"
660
653
  }
661
654
  ]
662
655
  },
663
656
  {
657
+ "name": "storage.type.object.array.processing",
664
658
  "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)",
665
659
  "end": "(?=[^\\]\\s])",
666
- "name": "storage.type.object.array.processing",
667
660
  "patterns": [
668
661
  {
669
662
  "begin": "\\[",
@@ -677,50 +670,49 @@
677
670
  ]
678
671
  },
679
672
  {
673
+ "name": "storage.type.processing",
674
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b",
680
675
  "captures": {
681
676
  "1": {
682
677
  "name": "keyword.operator.dereference.processing"
683
678
  }
684
- },
685
- "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b",
686
- "name": "storage.type.processing"
679
+ }
687
680
  }
688
681
  ]
689
682
  },
690
683
  "object-types-inherited": {
691
684
  "patterns": [
692
685
  {
693
- "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
694
- "end": ">|[^\\w\\s,<]",
695
686
  "name": "entity.other.inherited-class.processing",
687
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c",
688
+ "end": "\u003e|[^\\w\\s,\u003c]",
696
689
  "patterns": [
697
690
  {
698
691
  "include": "#object-types"
699
692
  },
700
693
  {
701
- "begin": "<",
702
- "comment": "This is just to support <>'s with no actual type prefix",
703
- "end": ">|[^\\w\\s,<]",
704
- "name": "storage.type.generic.processing"
694
+ "name": "storage.type.generic.processing",
695
+ "begin": "\u003c",
696
+ "end": "\u003e|[^\\w\\s,\u003c]"
705
697
  }
706
698
  ]
707
699
  },
708
700
  {
701
+ "name": "entity.other.inherited-class.processing",
702
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*",
709
703
  "captures": {
710
704
  "1": {
711
705
  "name": "keyword.operator.dereference.processing"
712
706
  }
713
- },
714
- "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*",
715
- "name": "entity.other.inherited-class.processing"
707
+ }
716
708
  }
717
709
  ]
718
710
  },
719
711
  "parameters": {
720
712
  "patterns": [
721
713
  {
722
- "match": "final",
723
- "name": "storage.modifier.processing"
714
+ "name": "storage.modifier.processing",
715
+ "match": "final"
724
716
  },
725
717
  {
726
718
  "include": "#primitive-arrays"
@@ -732,8 +724,8 @@
732
724
  "include": "#object-types"
733
725
  },
734
726
  {
735
- "match": "\\w+",
736
- "name": "variable.parameter.processing"
727
+ "name": "variable.parameter.processing",
728
+ "match": "\\w+"
737
729
  }
738
730
  ]
739
731
  },
@@ -749,122 +741,119 @@
749
741
  "primitive-arrays": {
750
742
  "patterns": [
751
743
  {
752
- "match": "\\b(?:void|boolean|byte|char|color|short|int|float|long|double)(?=(\\[\\s*\\])+)\\b",
753
- "name": "storage.type.primitive.array.processing"
744
+ "name": "storage.type.primitive.array.processing",
745
+ "match": "\\b(?:void|boolean|byte|char|color|short|int|float|long|double)(?=(\\[\\s*\\])+)\\b"
754
746
  }
755
747
  ]
756
748
  },
757
749
  "primitive-types": {
758
750
  "patterns": [
759
751
  {
760
- "comment": "Most of, if not all, types have a casting method of the same name in Processing. Hence the negative lookahead to check for that",
761
- "match": "\\b(?:void|boolean|byte|char|color|short|int|float|long|double)(?!\\s*\\()\\b",
762
- "name": "storage.type.primitive.processing"
752
+ "name": "storage.type.primitive.processing",
753
+ "match": "\\b(?:void|boolean|byte|char|color|short|int|float|long|double)(?!\\s*\\()\\b"
763
754
  }
764
755
  ]
765
756
  },
766
757
  "processing-classes": {
767
758
  "patterns": [
768
759
  {
769
- "comment": "Includes only Processing-supplied classes - not the standard Java classes (Array, String, etc.), though they're mentioned in the Processing reference",
770
- "match": "\\b(P(Applet|Constants|Font|Graphics|Graphics2D|Graphics3D|GraphicsJava2D|Image|Line|Matrix|Matrix2D|Matrix3D|Polygon|Shape|ShapeSVG|SmoothTriangle|Style|Triangle|Vector)|StdXML(Builder|Parser|Reader)|XML(Element|EntityResolver|Exception|ParseException|ValidationException|Validator|Writer))\\b",
771
- "name": "support.type.object.processing"
760
+ "name": "support.type.object.processing",
761
+ "match": "\\b(P(Applet|Constants|Font|Graphics|Graphics2D|Graphics3D|GraphicsJava2D|Image|Line|Matrix|Matrix2D|Matrix3D|Polygon|Shape|ShapeSVG|SmoothTriangle|Style|Triangle|Vector)|StdXML(Builder|Parser|Reader)|XML(Element|EntityResolver|Exception|ParseException|ValidationException|Validator|Writer))\\b"
772
762
  }
773
763
  ]
774
764
  },
775
765
  "processing-methods": {
776
766
  "patterns": [
777
767
  {
778
- "comment": "Note the neg. look-behind at the beginning and the look-ahead at the end. This distinguishes methods like array.size() from size(), and frameRate() from the frameRate variable, respectively",
779
- "match": "\\b(?<!\\.)(abs|acos|alpha|ambient|ambientLight|append|applyMatrix|arc|arrayCopy|asin|atan|atan2|background|beginCamera|beginRaw|beginRecord|beginShape|bezier|bezierDetail|bezierPoint|bezierTangent|bezierVertex|binary|blend|blendColor|blue|boolean|box|brightness|byte|cache|camera|ceil|char|charAt|color|colorMode|concat|constrain|contract|copy|cos|createFont|createGraphics|createImage|createInput|createOutput|createReader|createWriter|cursor|curve|curveDetail|curvePoint|curveSegments|curveTangent|curveTightness|curveVertex|day|degrees|delay|directionalLight|dist|draw|duration|ellipse|ellipseMode|emissive|endCamera|endRaw|endRecord|endShape|equals|exit|exp|expand|fill|filter|float|floor|frameRate|frustum|get|green|hex|hint|hour|hue|image|imageMode|indexOf|int|join|keyPressed|keyReleased|keyTyped|length|lerp|lerpColor|lightFalloff|lights|lightSpecular|line|link|list|loadBytes|loadFont|loadImage|loadPixels|loadShape|loadSound|loadStrings|log|lookat|loop|mag|map|mask|match|matchAll|max|millis|min|minute|modelX|modelY|modelZ|month|mouseClicked|mouseDragged|mouseMoved|mousePressed|mouseReleased|nf|nfc|nfp|nfs|noCursor|noFill|noise|noiseDetail|noiseSeed|noLights|noLoop|norm|normal|noSmooth|noStroke|noTint|open|openStream|ortho|param|pause|perspective|play|point|pointLight|popMatrix|popStyle|pow|print|printCamera|println|printMatrix|printProjection|pushMatrix|pushStyle|quad|radians|random|randomSeed|rect|rectMode|red|redraw|requestImage|resetMatrix|reverse|rotate|rotateX|rotateY|rotateZ|round|saturation|save|saveBytes|saveFrame|saveStream|saveStrings|scale|screenX|screenY|screenZ|second|selectFolder|selectInput|selectOutput|set|setup|shape|shapeMode|shininess|shorten|sin|size|skewX|skewY|smooth|sort|specular|sphere|sphereDetail|splice|split|splitTokens|spotLight|sq|sqrt|status|stop|str|stroke|strokeCap|strokeJoin|strokeWeight|subset|substring|tan|text|textAlign|textAscent|textDescent|textFont|textLeading|textMode|textSize|texture|textureMode|textWidth|time|tint|toLowerCase|toUpperCase|translate|triangle|trim|unbinary|unhex|unHint|updatePixels|vertex|volume|year)(?=\\s*\\()",
780
- "name": "support.function.processing"
768
+ "name": "support.function.processing",
769
+ "match": "\\b(?\u003c!\\.)(abs|acos|alpha|ambient|ambientLight|append|applyMatrix|arc|arrayCopy|asin|atan|atan2|background|beginCamera|beginRaw|beginRecord|beginShape|bezier|bezierDetail|bezierPoint|bezierTangent|bezierVertex|binary|blend|blendColor|blue|boolean|box|brightness|byte|cache|camera|ceil|char|charAt|color|colorMode|concat|constrain|contract|copy|cos|createFont|createGraphics|createImage|createInput|createOutput|createReader|createWriter|cursor|curve|curveDetail|curvePoint|curveSegments|curveTangent|curveTightness|curveVertex|day|degrees|delay|directionalLight|dist|draw|duration|ellipse|ellipseMode|emissive|endCamera|endRaw|endRecord|endShape|equals|exit|exp|expand|fill|filter|float|floor|frameRate|frustum|get|green|hex|hint|hour|hue|image|imageMode|indexOf|int|join|keyPressed|keyReleased|keyTyped|length|lerp|lerpColor|lightFalloff|lights|lightSpecular|line|link|list|loadBytes|loadFont|loadImage|loadPixels|loadShape|loadSound|loadStrings|log|lookat|loop|mag|map|mask|match|matchAll|max|millis|min|minute|modelX|modelY|modelZ|month|mouseClicked|mouseDragged|mouseMoved|mousePressed|mouseReleased|nf|nfc|nfp|nfs|noCursor|noFill|noise|noiseDetail|noiseSeed|noLights|noLoop|norm|normal|noSmooth|noStroke|noTint|open|openStream|ortho|param|pause|perspective|play|point|pointLight|popMatrix|popStyle|pow|print|printCamera|println|printMatrix|printProjection|pushMatrix|pushStyle|quad|radians|random|randomSeed|rect|rectMode|red|redraw|requestImage|resetMatrix|reverse|rotate|rotateX|rotateY|rotateZ|round|saturation|save|saveBytes|saveFrame|saveStream|saveStrings|scale|screenX|screenY|screenZ|second|selectFolder|selectInput|selectOutput|set|setup|shape|shapeMode|shininess|shorten|sin|size|skewX|skewY|smooth|sort|specular|sphere|sphereDetail|splice|split|splitTokens|spotLight|sq|sqrt|status|stop|str|stroke|strokeCap|strokeJoin|strokeWeight|subset|substring|tan|text|textAlign|textAscent|textDescent|textFont|textLeading|textMode|textSize|texture|textureMode|textWidth|time|tint|toLowerCase|toUpperCase|translate|triangle|trim|unbinary|unhex|unHint|updatePixels|vertex|volume|year)(?=\\s*\\()"
781
770
  }
782
771
  ]
783
772
  },
784
773
  "processing-variables-and-constants": {
785
774
  "patterns": [
786
775
  {
787
- "match": "\\b(focused|frameCount|frameRate|height|height|key|keyCode|keyPressed|mouseButton|mousePressed|mouseX|mouseY|online|pixels|pmouseX|pmouseY|screen|width)(?!\\s*\\()\\b",
788
- "name": "variable.other.processing"
776
+ "name": "variable.other.processing",
777
+ "match": "\\b(focused|frameCount|frameRate|height|height|key|keyCode|keyPressed|mouseButton|mousePressed|mouseX|mouseY|online|pixels|pmouseX|pmouseY|screen|width)(?!\\s*\\()\\b"
789
778
  },
790
779
  {
791
- "match": "\\b(ADD|ALIGN_CENTER|ALIGN_LEFT|ALIGN_RIGHT|ALPHA|ALPHA_MASK|ALT|AMBIENT|ARGB|ARROW|BACKSPACE|BEVEL|BLEND|BLEND|BLUE_MASK|BLUR|CENTER|CENTER_RADIUS|CHATTER|CODED|COMPLAINT|COMPONENT|COMPOSITE|CONCAVE_POLYGON|CONTROL|CONVEX_POLYGON|CORNER|CORNERS|CROSS|CUSTOM|DARKEST|DEGREES|DEG_TO_RAD|DELETE|DIFFERENCE|DIFFUSE|DISABLED|DISABLE_TEXT_SMOOTH|DOWN|ENTER|EPSILON|ESC|GIF|GREEN_MASK|GREY|HALF|HALF_PI|HALF_PI|HAND|HARD_LIGHT|HSB|IMAGE|INVERT|JAVA2D|JPEG|LEFT|LIGHTEST|LINES|LINE_LOOP|LINE_STRIP|MAX_FLOAT|MITER|MODEL|MOVE|MULTIPLY|NORMALIZED|NO_DEPTH_TEST|NTSC|ONE|OPAQUE|OPENGL|ORTHOGRAPHIC|OVERLAY|P2D|P3D|PAL|PERSPECTIVE|PI|PI|PIXEL_CENTER|POINTS|POLYGON|POSTERIZE|PROBLEM|PROJECT|QUADS|QUAD_STRIP|QUARTER_PI|RADIANS|RAD_TO_DEG|RED_MASK|REPLACE|RETURN|RGB|RIGHT|ROUND|SCREEN|SECAM|SHIFT|SOFT_LIGHT|SPECULAR|SQUARE|SUBTRACT|SVIDEO|TAB|TARGA|TEXT|TFF|THIRD_PI|THRESHOLD|TIFF|TRIANGLES|TRIANGLE_FAN|TRIANGLE_STRIP|TUNER|TWO|TWO_PI|TWO_PI|UP|WAIT|WHITESPACE)\\b",
792
- "name": "support.constant.processing"
780
+ "name": "support.constant.processing",
781
+ "match": "\\b(ADD|ALIGN_CENTER|ALIGN_LEFT|ALIGN_RIGHT|ALPHA|ALPHA_MASK|ALT|AMBIENT|ARGB|ARROW|BACKSPACE|BEVEL|BLEND|BLEND|BLUE_MASK|BLUR|CENTER|CENTER_RADIUS|CHATTER|CODED|COMPLAINT|COMPONENT|COMPOSITE|CONCAVE_POLYGON|CONTROL|CONVEX_POLYGON|CORNER|CORNERS|CROSS|CUSTOM|DARKEST|DEGREES|DEG_TO_RAD|DELETE|DIFFERENCE|DIFFUSE|DISABLED|DISABLE_TEXT_SMOOTH|DOWN|ENTER|EPSILON|ESC|GIF|GREEN_MASK|GREY|HALF|HALF_PI|HALF_PI|HAND|HARD_LIGHT|HSB|IMAGE|INVERT|JAVA2D|JPEG|LEFT|LIGHTEST|LINES|LINE_LOOP|LINE_STRIP|MAX_FLOAT|MITER|MODEL|MOVE|MULTIPLY|NORMALIZED|NO_DEPTH_TEST|NTSC|ONE|OPAQUE|OPENGL|ORTHOGRAPHIC|OVERLAY|P2D|P3D|PAL|PERSPECTIVE|PI|PI|PIXEL_CENTER|POINTS|POLYGON|POSTERIZE|PROBLEM|PROJECT|QUADS|QUAD_STRIP|QUARTER_PI|RADIANS|RAD_TO_DEG|RED_MASK|REPLACE|RETURN|RGB|RIGHT|ROUND|SCREEN|SECAM|SHIFT|SOFT_LIGHT|SPECULAR|SQUARE|SUBTRACT|SVIDEO|TAB|TARGA|TEXT|TFF|THIRD_PI|THRESHOLD|TIFF|TRIANGLES|TRIANGLE_FAN|TRIANGLE_STRIP|TUNER|TWO|TWO_PI|TWO_PI|UP|WAIT|WHITESPACE)\\b"
793
782
  }
794
783
  ]
795
784
  },
796
785
  "storage-modifiers": {
786
+ "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient)\\b",
797
787
  "captures": {
798
788
  "1": {
799
789
  "name": "storage.modifier.processing"
800
790
  }
801
- },
802
- "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient)\\b"
791
+ }
803
792
  },
804
793
  "strings": {
805
794
  "patterns": [
806
795
  {
796
+ "name": "string.quoted.double.processing",
807
797
  "begin": "\"",
798
+ "end": "\"",
799
+ "patterns": [
800
+ {
801
+ "name": "constant.character.escape.processing",
802
+ "match": "\\\\."
803
+ }
804
+ ],
808
805
  "beginCaptures": {
809
806
  "0": {
810
807
  "name": "punctuation.definition.string.begin.processing"
811
808
  }
812
809
  },
813
- "end": "\"",
814
810
  "endCaptures": {
815
811
  "0": {
816
812
  "name": "punctuation.definition.string.end.processing"
817
813
  }
818
- },
819
- "name": "string.quoted.double.processing",
820
- "patterns": [
821
- {
822
- "match": "\\\\.",
823
- "name": "constant.character.escape.processing"
824
- }
825
- ]
814
+ }
826
815
  },
827
816
  {
817
+ "name": "string.quoted.single.processing",
828
818
  "begin": "'",
819
+ "end": "'",
820
+ "patterns": [
821
+ {
822
+ "name": "constant.character.escape.literal.processing",
823
+ "match": "\\\\([0-7]{3}|u[A-Fa-f0-9]{4})"
824
+ },
825
+ {
826
+ "name": "constant.character.escape.processing",
827
+ "match": "\\\\."
828
+ }
829
+ ],
829
830
  "beginCaptures": {
830
831
  "0": {
831
832
  "name": "punctuation.definition.string.begin.processing"
832
833
  }
833
834
  },
834
- "end": "'",
835
835
  "endCaptures": {
836
836
  "0": {
837
837
  "name": "punctuation.definition.string.end.processing"
838
838
  }
839
- },
840
- "name": "string.quoted.single.processing",
841
- "patterns": [
842
- {
843
- "match": "\\\\([0-7]{3}|u[A-Fa-f0-9]{4})",
844
- "name": "constant.character.escape.literal.processing"
845
- },
846
- {
847
- "match": "\\\\.",
848
- "name": "constant.character.escape.processing"
849
- }
850
- ]
839
+ }
851
840
  }
852
841
  ]
853
842
  },
854
843
  "throws": {
844
+ "name": "meta.throwables.processing",
855
845
  "begin": "throws",
856
- "beginCaptures": {
857
- "0": {
858
- "name": "storage.modifier.processing"
859
- }
860
- },
861
846
  "end": "(?={|;)",
862
- "name": "meta.throwables.processing",
863
847
  "patterns": [
864
848
  {
865
849
  "include": "#object-types"
866
850
  }
867
- ]
851
+ ],
852
+ "beginCaptures": {
853
+ "0": {
854
+ "name": "storage.modifier.processing"
855
+ }
856
+ }
868
857
  },
869
858
  "values": {
870
859
  "patterns": [
@@ -879,7 +868,5 @@
879
868
  }
880
869
  ]
881
870
  }
882
- },
883
- "scopeName": "source.processing",
884
- "uuid": "EF0D256C-2FCB-4A87-9250-0F5F82A366B9"
885
- }
871
+ }
872
+ }