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,54 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "jsp",
4
- "jspf",
5
- "tag"
6
- ],
7
- "injections": {
8
- "text.html.jsp - (meta.embedded.block.jsp | meta.embedded.line.jsp | meta.tag | comment), meta.tag string.quoted": {
9
- "patterns": [
10
- {
11
- "include": "#comment"
12
- },
13
- {
14
- "include": "#declaration"
15
- },
16
- {
17
- "include": "#expression"
18
- },
19
- {
20
- "include": "#el_expression"
21
- },
22
- {
23
- "include": "#tags"
24
- },
25
- {
26
- "begin": "(^\\s*)(?=<%(?=\\s))",
27
- "beginCaptures": {
28
- "0": {
29
- "name": "punctuation.whitespace.embedded.leading.erb"
30
- }
31
- },
32
- "end": "(?!\\G)(\\s*$\\n)?",
33
- "endCaptures": {
34
- "0": {
35
- "name": "punctuation.whitespace.embedded.trailing.erb"
36
- }
37
- },
38
- "patterns": [
39
- {
40
- "include": "#scriptlet"
41
- }
42
- ]
43
- },
44
- {
45
- "include": "#scriptlet"
46
- }
47
- ]
48
- }
49
- },
50
- "keyEquivalent": "^~J",
51
2
  "name": "JavaServer Pages",
3
+ "scopeName": "text.html.jsp",
52
4
  "patterns": [
53
5
  {
54
6
  "include": "#xml_tags"
@@ -59,48 +11,30 @@
59
11
  ],
60
12
  "repository": {
61
13
  "comment": {
62
- "begin": "<%--",
14
+ "name": "comment.block.jsp",
15
+ "begin": "\u003c%--",
16
+ "end": "--%\u003e",
63
17
  "captures": {
64
18
  "0": {
65
19
  "name": "punctuation.definition.comment.jsp"
66
20
  }
67
- },
68
- "end": "--%>",
69
- "name": "comment.block.jsp"
21
+ }
70
22
  },
71
23
  "declaration": {
72
- "begin": "<%!",
73
- "beginCaptures": {
74
- "0": {
75
- "name": "punctuation.section.embedded.begin.jsp"
76
- }
77
- },
78
- "contentName": "source.java",
79
- "end": "(%)>",
80
- "endCaptures": {
81
- "0": {
82
- "name": "punctuation.section.embedded.end.jsp"
83
- },
84
- "1": {
85
- "name": "source.java"
86
- }
87
- },
88
24
  "name": "meta.embedded.line.declaration.jsp",
25
+ "contentName": "source.java",
26
+ "begin": "\u003c%!",
27
+ "end": "(%)\u003e",
89
28
  "patterns": [
90
29
  {
91
30
  "include": "source.java"
92
31
  }
93
- ]
94
- },
95
- "el_expression": {
96
- "begin": "\\$\\{",
32
+ ],
97
33
  "beginCaptures": {
98
34
  "0": {
99
35
  "name": "punctuation.section.embedded.begin.jsp"
100
36
  }
101
37
  },
102
- "contentName": "source.java",
103
- "end": "(\\})",
104
38
  "endCaptures": {
105
39
  "0": {
106
40
  "name": "punctuation.section.embedded.end.jsp"
@@ -108,23 +42,23 @@
108
42
  "1": {
109
43
  "name": "source.java"
110
44
  }
111
- },
45
+ }
46
+ },
47
+ "el_expression": {
112
48
  "name": "meta.embedded.line.el_expression.jsp",
49
+ "contentName": "source.java",
50
+ "begin": "\\$\\{",
51
+ "end": "(\\})",
113
52
  "patterns": [
114
53
  {
115
54
  "include": "source.java"
116
55
  }
117
- ]
118
- },
119
- "expression": {
120
- "begin": "<%=",
56
+ ],
121
57
  "beginCaptures": {
122
58
  "0": {
123
59
  "name": "punctuation.section.embedded.begin.jsp"
124
60
  }
125
61
  },
126
- "contentName": "source.java",
127
- "end": "(%)>",
128
62
  "endCaptures": {
129
63
  "0": {
130
64
  "name": "punctuation.section.embedded.end.jsp"
@@ -132,23 +66,23 @@
132
66
  "1": {
133
67
  "name": "source.java"
134
68
  }
135
- },
69
+ }
70
+ },
71
+ "expression": {
136
72
  "name": "meta.embedded.line.expression.jsp",
73
+ "contentName": "source.java",
74
+ "begin": "\u003c%=",
75
+ "end": "(%)\u003e",
137
76
  "patterns": [
138
77
  {
139
78
  "include": "source.java"
140
79
  }
141
- ]
142
- },
143
- "scriptlet": {
144
- "begin": "<%",
80
+ ],
145
81
  "beginCaptures": {
146
82
  "0": {
147
83
  "name": "punctuation.section.embedded.begin.jsp"
148
84
  }
149
85
  },
150
- "contentName": "source.java",
151
- "end": "(%)>",
152
86
  "endCaptures": {
153
87
  "0": {
154
88
  "name": "punctuation.section.embedded.end.jsp"
@@ -156,47 +90,51 @@
156
90
  "1": {
157
91
  "name": "source.java"
158
92
  }
159
- },
93
+ }
94
+ },
95
+ "scriptlet": {
160
96
  "name": "meta.embedded.block.scriptlet.jsp",
97
+ "contentName": "source.java",
98
+ "begin": "\u003c%",
99
+ "end": "(%)\u003e",
161
100
  "patterns": [
162
101
  {
163
- "match": "\\{",
164
- "name": "punctuation.section.scope.begin.java"
102
+ "name": "punctuation.section.scope.begin.java",
103
+ "match": "\\{"
165
104
  },
166
105
  {
167
- "match": "\\}",
168
- "name": "punctuation.section.scope.end.java"
106
+ "name": "punctuation.section.scope.end.java",
107
+ "match": "\\}"
169
108
  },
170
109
  {
171
110
  "include": "source.java"
172
111
  }
173
- ]
174
- },
175
- "tags": {
176
- "begin": "(<%@)\\s*(?=(attribute|include|page|tag|taglib|variable)\\s)",
112
+ ],
177
113
  "beginCaptures": {
178
- "1": {
179
- "name": "punctuation.definition.tag.begin.jsp"
114
+ "0": {
115
+ "name": "punctuation.section.embedded.begin.jsp"
180
116
  }
181
117
  },
182
- "end": "%>",
183
118
  "endCaptures": {
184
119
  "0": {
185
- "name": "punctuation.definition.tag.end.jsp"
120
+ "name": "punctuation.section.embedded.end.jsp"
121
+ },
122
+ "1": {
123
+ "name": "source.java"
186
124
  }
187
- },
125
+ }
126
+ },
127
+ "tags": {
188
128
  "name": "meta.tag.template.include.jsp",
129
+ "begin": "(\u003c%@)\\s*(?=(attribute|include|page|tag|taglib|variable)\\s)",
130
+ "end": "%\u003e",
189
131
  "patterns": [
190
132
  {
191
133
  "begin": "\\G(attribute)(?=\\s)",
192
- "captures": {
193
- "1": {
194
- "name": "keyword.control.attribute.jsp"
195
- }
196
- },
197
- "end": "(?=%>)",
134
+ "end": "(?=%\u003e)",
198
135
  "patterns": [
199
136
  {
137
+ "match": "(name|required|fragment|rtexprvalue|type|description)(=)((\")[^\"]*(\"))",
200
138
  "captures": {
201
139
  "1": {
202
140
  "name": "entity.other.attribute-name.jsp"
@@ -213,21 +151,21 @@
213
151
  "5": {
214
152
  "name": "punctuation.definition.string.end.jsp"
215
153
  }
216
- },
217
- "match": "(name|required|fragment|rtexprvalue|type|description)(=)((\")[^\"]*(\"))"
154
+ }
218
155
  }
219
- ]
220
- },
221
- {
222
- "begin": "\\G(include)(?=\\s)",
156
+ ],
223
157
  "captures": {
224
158
  "1": {
225
- "name": "keyword.control.include.jsp"
159
+ "name": "keyword.control.attribute.jsp"
226
160
  }
227
- },
228
- "end": "(?=%>)",
161
+ }
162
+ },
163
+ {
164
+ "begin": "\\G(include)(?=\\s)",
165
+ "end": "(?=%\u003e)",
229
166
  "patterns": [
230
167
  {
168
+ "match": "(file)(=)((\")[^\"]*(\"))",
231
169
  "captures": {
232
170
  "1": {
233
171
  "name": "entity.other.attribute-name.jsp"
@@ -244,21 +182,21 @@
244
182
  "5": {
245
183
  "name": "punctuation.definition.string.end.jsp"
246
184
  }
247
- },
248
- "match": "(file)(=)((\")[^\"]*(\"))"
185
+ }
249
186
  }
250
- ]
251
- },
252
- {
253
- "begin": "\\G(page)(?=\\s)",
187
+ ],
254
188
  "captures": {
255
189
  "1": {
256
- "name": "keyword.control.page.jsp"
190
+ "name": "keyword.control.include.jsp"
257
191
  }
258
- },
259
- "end": "(?=%>)",
192
+ }
193
+ },
194
+ {
195
+ "begin": "\\G(page)(?=\\s)",
196
+ "end": "(?=%\u003e)",
260
197
  "patterns": [
261
198
  {
199
+ "match": "(language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((\")[^\"]*(\"))",
262
200
  "captures": {
263
201
  "1": {
264
202
  "name": "entity.other.attribute-name.jsp"
@@ -275,21 +213,21 @@
275
213
  "5": {
276
214
  "name": "punctuation.definition.string.end.jsp"
277
215
  }
278
- },
279
- "match": "(language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((\")[^\"]*(\"))"
216
+ }
280
217
  }
281
- ]
282
- },
283
- {
284
- "begin": "\\G(tag)(?=\\s)",
218
+ ],
285
219
  "captures": {
286
220
  "1": {
287
- "name": "keyword.control.tag.jsp"
221
+ "name": "keyword.control.page.jsp"
288
222
  }
289
- },
290
- "end": "(?=%>)",
223
+ }
224
+ },
225
+ {
226
+ "begin": "\\G(tag)(?=\\s)",
227
+ "end": "(?=%\u003e)",
291
228
  "patterns": [
292
229
  {
230
+ "match": "(display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((\")[^\"]*(\"))",
293
231
  "captures": {
294
232
  "1": {
295
233
  "name": "entity.other.attribute-name.jsp"
@@ -306,21 +244,21 @@
306
244
  "5": {
307
245
  "name": "punctuation.definition.string.end.jsp"
308
246
  }
309
- },
310
- "match": "(display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((\")[^\"]*(\"))"
247
+ }
311
248
  }
312
- ]
313
- },
314
- {
315
- "begin": "\\G(taglib)(?=\\s)",
249
+ ],
316
250
  "captures": {
317
251
  "1": {
318
- "name": "keyword.control.taglib.jsp"
252
+ "name": "keyword.control.tag.jsp"
319
253
  }
320
- },
321
- "end": "(?=%>)",
254
+ }
255
+ },
256
+ {
257
+ "begin": "\\G(taglib)(?=\\s)",
258
+ "end": "(?=%\u003e)",
322
259
  "patterns": [
323
260
  {
261
+ "match": "(uri|tagdir|prefix)(=)((\")[^\"]*(\"))",
324
262
  "captures": {
325
263
  "1": {
326
264
  "name": "entity.other.attribute-name.jsp"
@@ -337,21 +275,21 @@
337
275
  "5": {
338
276
  "name": "punctuation.definition.string.end.jsp"
339
277
  }
340
- },
341
- "match": "(uri|tagdir|prefix)(=)((\")[^\"]*(\"))"
278
+ }
342
279
  }
343
- ]
344
- },
345
- {
346
- "begin": "\\G(variable)(?=\\s)",
280
+ ],
347
281
  "captures": {
348
282
  "1": {
349
- "name": "keyword.control.variable.jsp"
283
+ "name": "keyword.control.taglib.jsp"
350
284
  }
351
- },
352
- "end": "(?=%>)",
285
+ }
286
+ },
287
+ {
288
+ "begin": "\\G(variable)(?=\\s)",
289
+ "end": "(?=%\u003e)",
353
290
  "patterns": [
354
291
  {
292
+ "match": "(name-given|alias|variable-class|declare|scope|description)(=)((\")[^\"]*(\"))",
355
293
  "captures": {
356
294
  "1": {
357
295
  "name": "entity.other.attribute-name.jsp"
@@ -368,33 +306,47 @@
368
306
  "5": {
369
307
  "name": "punctuation.definition.string.end.jsp"
370
308
  }
371
- },
372
- "match": "(name-given|alias|variable-class|declare|scope|description)(=)((\")[^\"]*(\"))"
309
+ }
373
310
  }
374
- ]
311
+ ],
312
+ "captures": {
313
+ "1": {
314
+ "name": "keyword.control.variable.jsp"
315
+ }
316
+ }
375
317
  }
376
- ]
318
+ ],
319
+ "beginCaptures": {
320
+ "1": {
321
+ "name": "punctuation.definition.tag.begin.jsp"
322
+ }
323
+ },
324
+ "endCaptures": {
325
+ "0": {
326
+ "name": "punctuation.definition.tag.end.jsp"
327
+ }
328
+ }
377
329
  },
378
330
  "xml_tags": {
379
331
  "patterns": [
380
332
  {
381
- "begin": "(^\\s*)(?=<jsp:(declaration|expression|scriptlet)>)",
333
+ "begin": "(^\\s*)(?=\u003cjsp:(declaration|expression|scriptlet)\u003e)",
334
+ "end": "(?!\\G)(\\s*$\\n)?",
335
+ "patterns": [
336
+ {
337
+ "include": "#embedded"
338
+ }
339
+ ],
382
340
  "beginCaptures": {
383
341
  "0": {
384
342
  "name": "punctuation.whitespace.embedded.leading.erb"
385
343
  }
386
344
  },
387
- "end": "(?!\\G)(\\s*$\\n)?",
388
345
  "endCaptures": {
389
346
  "0": {
390
347
  "name": "punctuation.whitespace.embedded.trailing.erb"
391
348
  }
392
- },
393
- "patterns": [
394
- {
395
- "include": "#embedded"
396
- }
397
- ]
349
+ }
398
350
  },
399
351
  {
400
352
  "include": "#embedded"
@@ -410,24 +362,12 @@
410
362
  "actions": {
411
363
  "patterns": [
412
364
  {
413
- "begin": "(</?)(jsp:attribute)\\b",
414
- "beginCaptures": {
415
- "1": {
416
- "name": "punctuation.definition.tag.begin.jsp"
417
- },
418
- "2": {
419
- "name": "entity.name.tag.jsp"
420
- }
421
- },
422
- "end": ">",
423
- "endCaptures": {
424
- "0": {
425
- "name": "punctuation.definition.tag.end.jsp"
426
- }
427
- },
428
365
  "name": "meta.tag.template.attribute.jsp",
366
+ "begin": "(\u003c/?)(jsp:attribute)\\b",
367
+ "end": "\u003e",
429
368
  "patterns": [
430
369
  {
370
+ "match": "(name|trim)(=)((\")[^\"]*(\"))",
431
371
  "captures": {
432
372
  "1": {
433
373
  "name": "entity.other.attribute-name.jsp"
@@ -444,45 +384,45 @@
444
384
  "5": {
445
385
  "name": "punctuation.definition.string.end.jsp"
446
386
  }
447
- },
448
- "match": "(name|trim)(=)((\")[^\"]*(\"))"
387
+ }
449
388
  }
450
- ]
451
- },
452
- {
453
- "captures": {
389
+ ],
390
+ "beginCaptures": {
454
391
  "1": {
455
392
  "name": "punctuation.definition.tag.begin.jsp"
456
393
  },
457
394
  "2": {
458
395
  "name": "entity.name.tag.jsp"
459
- },
460
- "3": {
461
- "name": "punctuation.definition.tag.end.jsp"
462
396
  }
463
397
  },
464
- "match": "(</?)(jsp:body)(>)",
465
- "name": "meta.tag.template.body.jsp"
398
+ "endCaptures": {
399
+ "0": {
400
+ "name": "punctuation.definition.tag.end.jsp"
401
+ }
402
+ }
466
403
  },
467
404
  {
468
- "begin": "(</?)(jsp:element)\\b",
469
- "beginCaptures": {
405
+ "name": "meta.tag.template.body.jsp",
406
+ "match": "(\u003c/?)(jsp:body)(\u003e)",
407
+ "captures": {
470
408
  "1": {
471
409
  "name": "punctuation.definition.tag.begin.jsp"
472
410
  },
473
411
  "2": {
474
412
  "name": "entity.name.tag.jsp"
475
- }
476
- },
477
- "end": ">",
478
- "endCaptures": {
479
- "0": {
413
+ },
414
+ "3": {
480
415
  "name": "punctuation.definition.tag.end.jsp"
481
416
  }
482
- },
417
+ }
418
+ },
419
+ {
483
420
  "name": "meta.tag.template.element.jsp",
421
+ "begin": "(\u003c/?)(jsp:element)\\b",
422
+ "end": "\u003e",
484
423
  "patterns": [
485
424
  {
425
+ "match": "(name)(=)((\")[^\"]*(\"))",
486
426
  "captures": {
487
427
  "1": {
488
428
  "name": "entity.other.attribute-name.jsp"
@@ -499,13 +439,9 @@
499
439
  "5": {
500
440
  "name": "punctuation.definition.string.end.jsp"
501
441
  }
502
- },
503
- "match": "(name)(=)((\")[^\"]*(\"))"
442
+ }
504
443
  }
505
- ]
506
- },
507
- {
508
- "begin": "(<)(jsp:doBody)\\b",
444
+ ],
509
445
  "beginCaptures": {
510
446
  "1": {
511
447
  "name": "punctuation.definition.tag.begin.jsp"
@@ -514,15 +450,19 @@
514
450
  "name": "entity.name.tag.jsp"
515
451
  }
516
452
  },
517
- "end": "/>",
518
453
  "endCaptures": {
519
454
  "0": {
520
455
  "name": "punctuation.definition.tag.end.jsp"
521
456
  }
522
- },
457
+ }
458
+ },
459
+ {
523
460
  "name": "meta.tag.template.dobody.jsp",
461
+ "begin": "(\u003c)(jsp:doBody)\\b",
462
+ "end": "/\u003e",
524
463
  "patterns": [
525
464
  {
465
+ "match": "(var|varReader|scope)(=)((\")[^\"]*(\"))",
526
466
  "captures": {
527
467
  "1": {
528
468
  "name": "entity.other.attribute-name.jsp"
@@ -539,13 +479,9 @@
539
479
  "5": {
540
480
  "name": "punctuation.definition.string.end.jsp"
541
481
  }
542
- },
543
- "match": "(var|varReader|scope)(=)((\")[^\"]*(\"))"
482
+ }
544
483
  }
545
- ]
546
- },
547
- {
548
- "begin": "(</?)(jsp:forward)\\b",
484
+ ],
549
485
  "beginCaptures": {
550
486
  "1": {
551
487
  "name": "punctuation.definition.tag.begin.jsp"
@@ -554,15 +490,19 @@
554
490
  "name": "entity.name.tag.jsp"
555
491
  }
556
492
  },
557
- "end": "/?>",
558
493
  "endCaptures": {
559
494
  "0": {
560
495
  "name": "punctuation.definition.tag.end.jsp"
561
496
  }
562
- },
497
+ }
498
+ },
499
+ {
563
500
  "name": "meta.tag.template.forward.jsp",
501
+ "begin": "(\u003c/?)(jsp:forward)\\b",
502
+ "end": "/?\u003e",
564
503
  "patterns": [
565
504
  {
505
+ "match": "(page)(=)((\")[^\"]*(\"))",
566
506
  "captures": {
567
507
  "1": {
568
508
  "name": "entity.other.attribute-name.jsp"
@@ -579,13 +519,9 @@
579
519
  "5": {
580
520
  "name": "punctuation.definition.string.end.jsp"
581
521
  }
582
- },
583
- "match": "(page)(=)((\")[^\"]*(\"))"
522
+ }
584
523
  }
585
- ]
586
- },
587
- {
588
- "begin": "(<)(jsp:param)\\b",
524
+ ],
589
525
  "beginCaptures": {
590
526
  "1": {
591
527
  "name": "punctuation.definition.tag.begin.jsp"
@@ -594,15 +530,19 @@
594
530
  "name": "entity.name.tag.jsp"
595
531
  }
596
532
  },
597
- "end": "/>",
598
533
  "endCaptures": {
599
534
  "0": {
600
535
  "name": "punctuation.definition.tag.end.jsp"
601
536
  }
602
- },
537
+ }
538
+ },
539
+ {
603
540
  "name": "meta.tag.template.param.jsp",
541
+ "begin": "(\u003c)(jsp:param)\\b",
542
+ "end": "/\u003e",
604
543
  "patterns": [
605
544
  {
545
+ "match": "(name|value)(=)((\")[^\"]*(\"))",
606
546
  "captures": {
607
547
  "1": {
608
548
  "name": "entity.other.attribute-name.jsp"
@@ -619,13 +559,9 @@
619
559
  "5": {
620
560
  "name": "punctuation.definition.string.end.jsp"
621
561
  }
622
- },
623
- "match": "(name|value)(=)((\")[^\"]*(\"))"
562
+ }
624
563
  }
625
- ]
626
- },
627
- {
628
- "begin": "(<)(jsp:getProperty)\\b",
564
+ ],
629
565
  "beginCaptures": {
630
566
  "1": {
631
567
  "name": "punctuation.definition.tag.begin.jsp"
@@ -634,15 +570,19 @@
634
570
  "name": "entity.name.tag.jsp"
635
571
  }
636
572
  },
637
- "end": "/>",
638
573
  "endCaptures": {
639
574
  "0": {
640
575
  "name": "punctuation.definition.tag.end.jsp"
641
576
  }
642
- },
577
+ }
578
+ },
579
+ {
643
580
  "name": "meta.tag.template.getproperty.jsp",
581
+ "begin": "(\u003c)(jsp:getProperty)\\b",
582
+ "end": "/\u003e",
644
583
  "patterns": [
645
584
  {
585
+ "match": "(name|property)(=)((\")[^\"]*(\"))",
646
586
  "captures": {
647
587
  "1": {
648
588
  "name": "entity.other.attribute-name.jsp"
@@ -659,13 +599,9 @@
659
599
  "5": {
660
600
  "name": "punctuation.definition.string.end.jsp"
661
601
  }
662
- },
663
- "match": "(name|property)(=)((\")[^\"]*(\"))"
602
+ }
664
603
  }
665
- ]
666
- },
667
- {
668
- "begin": "(</?)(jsp:include)\\b",
604
+ ],
669
605
  "beginCaptures": {
670
606
  "1": {
671
607
  "name": "punctuation.definition.tag.begin.jsp"
@@ -674,15 +610,19 @@
674
610
  "name": "entity.name.tag.jsp"
675
611
  }
676
612
  },
677
- "end": "/?>",
678
613
  "endCaptures": {
679
614
  "0": {
680
615
  "name": "punctuation.definition.tag.end.jsp"
681
616
  }
682
- },
617
+ }
618
+ },
619
+ {
683
620
  "name": "meta.tag.template.include.jsp",
621
+ "begin": "(\u003c/?)(jsp:include)\\b",
622
+ "end": "/?\u003e",
684
623
  "patterns": [
685
624
  {
625
+ "match": "(page|flush)(=)((\")[^\"]*(\"))",
686
626
  "captures": {
687
627
  "1": {
688
628
  "name": "entity.other.attribute-name.jsp"
@@ -699,13 +639,9 @@
699
639
  "5": {
700
640
  "name": "punctuation.definition.string.end.jsp"
701
641
  }
702
- },
703
- "match": "(page|flush)(=)((\")[^\"]*(\"))"
642
+ }
704
643
  }
705
- ]
706
- },
707
- {
708
- "begin": "(<)(jsp:invoke)\\b",
644
+ ],
709
645
  "beginCaptures": {
710
646
  "1": {
711
647
  "name": "punctuation.definition.tag.begin.jsp"
@@ -714,15 +650,19 @@
714
650
  "name": "entity.name.tag.jsp"
715
651
  }
716
652
  },
717
- "end": "/>",
718
653
  "endCaptures": {
719
654
  "0": {
720
655
  "name": "punctuation.definition.tag.end.jsp"
721
656
  }
722
- },
657
+ }
658
+ },
659
+ {
723
660
  "name": "meta.tag.template.invoke.jsp",
661
+ "begin": "(\u003c)(jsp:invoke)\\b",
662
+ "end": "/\u003e",
724
663
  "patterns": [
725
664
  {
665
+ "match": "(fragment|var|varReader|scope)(=)((\")[^\"]*(\"))",
726
666
  "captures": {
727
667
  "1": {
728
668
  "name": "entity.other.attribute-name.jsp"
@@ -739,13 +679,9 @@
739
679
  "5": {
740
680
  "name": "punctuation.definition.string.end.jsp"
741
681
  }
742
- },
743
- "match": "(fragment|var|varReader|scope)(=)((\")[^\"]*(\"))"
682
+ }
744
683
  }
745
- ]
746
- },
747
- {
748
- "begin": "(<)(jsp:output)\\b",
684
+ ],
749
685
  "beginCaptures": {
750
686
  "1": {
751
687
  "name": "punctuation.definition.tag.begin.jsp"
@@ -754,15 +690,19 @@
754
690
  "name": "entity.name.tag.jsp"
755
691
  }
756
692
  },
757
- "end": "/>",
758
693
  "endCaptures": {
759
694
  "0": {
760
695
  "name": "punctuation.definition.tag.end.jsp"
761
696
  }
762
- },
697
+ }
698
+ },
699
+ {
763
700
  "name": "meta.tag.template.output.jsp",
701
+ "begin": "(\u003c)(jsp:output)\\b",
702
+ "end": "/\u003e",
764
703
  "patterns": [
765
704
  {
705
+ "match": "(omit-xml-declaration|doctype-root-element|doctype-system|doctype-public)(=)((\")[^\"]*(\"))",
766
706
  "captures": {
767
707
  "1": {
768
708
  "name": "entity.other.attribute-name.jsp"
@@ -779,13 +719,9 @@
779
719
  "5": {
780
720
  "name": "punctuation.definition.string.end.jsp"
781
721
  }
782
- },
783
- "match": "(omit-xml-declaration|doctype-root-element|doctype-system|doctype-public)(=)((\")[^\"]*(\"))"
722
+ }
784
723
  }
785
- ]
786
- },
787
- {
788
- "begin": "(</?)(jsp:plugin)\\b",
724
+ ],
789
725
  "beginCaptures": {
790
726
  "1": {
791
727
  "name": "punctuation.definition.tag.begin.jsp"
@@ -794,15 +730,19 @@
794
730
  "name": "entity.name.tag.jsp"
795
731
  }
796
732
  },
797
- "end": ">",
798
733
  "endCaptures": {
799
734
  "0": {
800
735
  "name": "punctuation.definition.tag.end.jsp"
801
736
  }
802
- },
737
+ }
738
+ },
739
+ {
803
740
  "name": "meta.tag.template.plugin.jsp",
741
+ "begin": "(\u003c/?)(jsp:plugin)\\b",
742
+ "end": "\u003e",
804
743
  "patterns": [
805
744
  {
745
+ "match": "(type|code|codebase|name|archive|align|height|hspace|jreversion|nspluginurl|iepluginurl)(=)((\")[^\"]*(\"))",
806
746
  "captures": {
807
747
  "1": {
808
748
  "name": "entity.other.attribute-name.jsp"
@@ -819,46 +759,46 @@
819
759
  "5": {
820
760
  "name": "punctuation.definition.string.end.jsp"
821
761
  }
822
- },
823
- "match": "(type|code|codebase|name|archive|align|height|hspace|jreversion|nspluginurl|iepluginurl)(=)((\")[^\"]*(\"))"
762
+ }
824
763
  }
825
- ]
826
- },
827
- {
828
- "captures": {
764
+ ],
765
+ "beginCaptures": {
829
766
  "1": {
830
767
  "name": "punctuation.definition.tag.begin.jsp"
831
768
  },
832
769
  "2": {
833
770
  "name": "entity.name.tag.jsp"
834
- },
835
- "3": {
836
- "name": "punctuation.definition.tag.end.jsp"
837
771
  }
838
772
  },
839
- "end": ">",
840
- "match": "(</?)(jsp:fallback)(>)",
841
- "name": "meta.tag.template.fallback.jsp"
773
+ "endCaptures": {
774
+ "0": {
775
+ "name": "punctuation.definition.tag.end.jsp"
776
+ }
777
+ }
842
778
  },
843
779
  {
844
- "begin": "(</?)(jsp:root)\\b",
845
- "beginCaptures": {
780
+ "name": "meta.tag.template.fallback.jsp",
781
+ "match": "(\u003c/?)(jsp:fallback)(\u003e)",
782
+ "end": "\u003e",
783
+ "captures": {
846
784
  "1": {
847
785
  "name": "punctuation.definition.tag.begin.jsp"
848
786
  },
849
787
  "2": {
850
788
  "name": "entity.name.tag.jsp"
851
- }
852
- },
853
- "end": ">",
854
- "endCaptures": {
855
- "0": {
789
+ },
790
+ "3": {
856
791
  "name": "punctuation.definition.tag.end.jsp"
857
792
  }
858
- },
793
+ }
794
+ },
795
+ {
859
796
  "name": "meta.tag.template.root.jsp",
797
+ "begin": "(\u003c/?)(jsp:root)\\b",
798
+ "end": "\u003e",
860
799
  "patterns": [
861
800
  {
801
+ "match": "(xmlns|version|xmlns:taglibPrefix)(=)((\")[^\"]*(\"))",
862
802
  "captures": {
863
803
  "1": {
864
804
  "name": "entity.other.attribute-name.jsp"
@@ -875,13 +815,9 @@
875
815
  "5": {
876
816
  "name": "punctuation.definition.string.end.jsp"
877
817
  }
878
- },
879
- "match": "(xmlns|version|xmlns:taglibPrefix)(=)((\")[^\"]*(\"))"
818
+ }
880
819
  }
881
- ]
882
- },
883
- {
884
- "begin": "(<)(jsp:setProperty)\\b",
820
+ ],
885
821
  "beginCaptures": {
886
822
  "1": {
887
823
  "name": "punctuation.definition.tag.begin.jsp"
@@ -890,15 +826,19 @@
890
826
  "name": "entity.name.tag.jsp"
891
827
  }
892
828
  },
893
- "end": "/>",
894
829
  "endCaptures": {
895
830
  "0": {
896
831
  "name": "punctuation.definition.tag.end.jsp"
897
832
  }
898
- },
833
+ }
834
+ },
835
+ {
899
836
  "name": "meta.tag.template.setproperty.jsp",
837
+ "begin": "(\u003c)(jsp:setProperty)\\b",
838
+ "end": "/\u003e",
900
839
  "patterns": [
901
840
  {
841
+ "match": "(name|property|value)(=)((\")[^\"]*(\"))",
902
842
  "captures": {
903
843
  "1": {
904
844
  "name": "entity.other.attribute-name.jsp"
@@ -915,46 +855,46 @@
915
855
  "5": {
916
856
  "name": "punctuation.definition.string.end.jsp"
917
857
  }
918
- },
919
- "match": "(name|property|value)(=)((\")[^\"]*(\"))"
858
+ }
920
859
  }
921
- ]
922
- },
923
- {
924
- "captures": {
860
+ ],
861
+ "beginCaptures": {
925
862
  "1": {
926
863
  "name": "punctuation.definition.tag.begin.jsp"
927
864
  },
928
865
  "2": {
929
866
  "name": "entity.name.tag.jsp"
930
- },
931
- "3": {
932
- "name": "punctuation.definition.tag.end.jsp"
933
867
  }
934
868
  },
935
- "end": ">",
936
- "match": "(</?)(jsp:text)(>)",
937
- "name": "meta.tag.template.text.jsp"
869
+ "endCaptures": {
870
+ "0": {
871
+ "name": "punctuation.definition.tag.end.jsp"
872
+ }
873
+ }
938
874
  },
939
875
  {
940
- "begin": "(</?)(jsp:useBean)\\b",
941
- "beginCaptures": {
876
+ "name": "meta.tag.template.text.jsp",
877
+ "match": "(\u003c/?)(jsp:text)(\u003e)",
878
+ "end": "\u003e",
879
+ "captures": {
942
880
  "1": {
943
881
  "name": "punctuation.definition.tag.begin.jsp"
944
882
  },
945
883
  "2": {
946
884
  "name": "entity.name.tag.jsp"
947
- }
948
- },
949
- "end": "/?>",
950
- "endCaptures": {
951
- "0": {
885
+ },
886
+ "3": {
952
887
  "name": "punctuation.definition.tag.end.jsp"
953
888
  }
954
- },
889
+ }
890
+ },
891
+ {
955
892
  "name": "meta.tag.template.usebean.jsp",
893
+ "begin": "(\u003c/?)(jsp:useBean)\\b",
894
+ "end": "/?\u003e",
956
895
  "patterns": [
957
896
  {
897
+ "match": "(id|scope|class|type|beanName)(=)((\")[^\"]*(\"))",
958
898
  "captures": {
959
899
  "1": {
960
900
  "name": "entity.other.attribute-name.jsp"
@@ -971,41 +911,36 @@
971
911
  "5": {
972
912
  "name": "punctuation.definition.string.end.jsp"
973
913
  }
974
- },
975
- "match": "(id|scope|class|type|beanName)(=)((\")[^\"]*(\"))"
914
+ }
976
915
  }
977
- ]
916
+ ],
917
+ "beginCaptures": {
918
+ "1": {
919
+ "name": "punctuation.definition.tag.begin.jsp"
920
+ },
921
+ "2": {
922
+ "name": "entity.name.tag.jsp"
923
+ }
924
+ },
925
+ "endCaptures": {
926
+ "0": {
927
+ "name": "punctuation.definition.tag.end.jsp"
928
+ }
929
+ }
978
930
  }
979
931
  ]
980
932
  },
981
933
  "directive": {
982
- "begin": "(<)(jsp:directive\\.(?=(attribute|include|page|tag|variable)\\s))",
983
- "beginCaptures": {
984
- "1": {
985
- "name": "punctuation.definition.tag.begin.jsp"
986
- },
987
- "2": {
988
- "name": "entity.name.tag.jsp"
989
- }
990
- },
991
- "end": "/>",
992
- "endCaptures": {
993
- "0": {
994
- "name": "punctuation.definition.tag.end.jsp"
995
- }
996
- },
997
934
  "name": "meta.tag.template.$3.jsp",
935
+ "begin": "(\u003c)(jsp:directive\\.(?=(attribute|include|page|tag|variable)\\s))",
936
+ "end": "/\u003e",
998
937
  "patterns": [
999
938
  {
1000
939
  "begin": "\\G(attribute)(?=\\s)",
1001
- "captures": {
1002
- "1": {
1003
- "name": "entity.name.tag.jsp"
1004
- }
1005
- },
1006
- "end": "(?=/>)",
940
+ "end": "(?=/\u003e)",
1007
941
  "patterns": [
1008
942
  {
943
+ "match": "(name|required|fragment|rtexprvalue|type|description)(=)((\")[^\"]*(\"))",
1009
944
  "captures": {
1010
945
  "1": {
1011
946
  "name": "entity.other.attribute-name.jsp"
@@ -1022,21 +957,21 @@
1022
957
  "5": {
1023
958
  "name": "punctuation.definition.string.end.jsp"
1024
959
  }
1025
- },
1026
- "match": "(name|required|fragment|rtexprvalue|type|description)(=)((\")[^\"]*(\"))"
960
+ }
1027
961
  }
1028
- ]
1029
- },
1030
- {
1031
- "begin": "\\G(include)(?=\\s)",
962
+ ],
1032
963
  "captures": {
1033
964
  "1": {
1034
965
  "name": "entity.name.tag.jsp"
1035
966
  }
1036
- },
1037
- "end": "(?=/>)",
967
+ }
968
+ },
969
+ {
970
+ "begin": "\\G(include)(?=\\s)",
971
+ "end": "(?=/\u003e)",
1038
972
  "patterns": [
1039
973
  {
974
+ "match": "(file)(=)((\")[^\"]*(\"))",
1040
975
  "captures": {
1041
976
  "1": {
1042
977
  "name": "entity.other.attribute-name.jsp"
@@ -1053,21 +988,21 @@
1053
988
  "5": {
1054
989
  "name": "punctuation.definition.string.end.jsp"
1055
990
  }
1056
- },
1057
- "match": "(file)(=)((\")[^\"]*(\"))"
991
+ }
1058
992
  }
1059
- ]
1060
- },
1061
- {
1062
- "begin": "\\G(page)(?=\\s)",
993
+ ],
1063
994
  "captures": {
1064
995
  "1": {
1065
996
  "name": "entity.name.tag.jsp"
1066
997
  }
1067
- },
1068
- "end": "(?=/>)",
998
+ }
999
+ },
1000
+ {
1001
+ "begin": "\\G(page)(?=\\s)",
1002
+ "end": "(?=/\u003e)",
1069
1003
  "patterns": [
1070
1004
  {
1005
+ "match": "(language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((\")[^\"]*(\"))",
1071
1006
  "captures": {
1072
1007
  "1": {
1073
1008
  "name": "entity.other.attribute-name.jsp"
@@ -1084,21 +1019,21 @@
1084
1019
  "5": {
1085
1020
  "name": "punctuation.definition.string.end.jsp"
1086
1021
  }
1087
- },
1088
- "match": "(language|extends|import|session|buffer|autoFlush|isThreadSafe|info|errorPage|isErrorPage|contentType|pageEncoding|isElIgnored)(=)((\")[^\"]*(\"))"
1022
+ }
1089
1023
  }
1090
- ]
1091
- },
1092
- {
1093
- "begin": "\\G(tag)(?=\\s)",
1024
+ ],
1094
1025
  "captures": {
1095
1026
  "1": {
1096
1027
  "name": "entity.name.tag.jsp"
1097
1028
  }
1098
- },
1099
- "end": "(?=/>)",
1029
+ }
1030
+ },
1031
+ {
1032
+ "begin": "\\G(tag)(?=\\s)",
1033
+ "end": "(?=/\u003e)",
1100
1034
  "patterns": [
1101
1035
  {
1036
+ "match": "(display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((\")[^\"]*(\"))",
1102
1037
  "captures": {
1103
1038
  "1": {
1104
1039
  "name": "entity.other.attribute-name.jsp"
@@ -1115,21 +1050,21 @@
1115
1050
  "5": {
1116
1051
  "name": "punctuation.definition.string.end.jsp"
1117
1052
  }
1118
- },
1119
- "match": "(display-name|body-content|dynamic-attributes|small-icon|large-icon|description|example|language|import|pageEncoding|isELIgnored)(=)((\")[^\"]*(\"))"
1053
+ }
1120
1054
  }
1121
- ]
1122
- },
1123
- {
1124
- "begin": "\\G(variable)(?=\\s)",
1055
+ ],
1125
1056
  "captures": {
1126
1057
  "1": {
1127
1058
  "name": "entity.name.tag.jsp"
1128
1059
  }
1129
- },
1130
- "end": "(?=/>)",
1060
+ }
1061
+ },
1062
+ {
1063
+ "begin": "\\G(variable)(?=\\s)",
1064
+ "end": "(?=/\u003e)",
1131
1065
  "patterns": [
1132
1066
  {
1067
+ "match": "(name-given|alias|variable-class|declare|scope|description)(=)((\")[^\"]*(\"))",
1133
1068
  "captures": {
1134
1069
  "1": {
1135
1070
  "name": "entity.other.attribute-name.jsp"
@@ -1146,15 +1081,40 @@
1146
1081
  "5": {
1147
1082
  "name": "punctuation.definition.string.end.jsp"
1148
1083
  }
1149
- },
1150
- "match": "(name-given|alias|variable-class|declare|scope|description)(=)((\")[^\"]*(\"))"
1084
+ }
1151
1085
  }
1152
- ]
1086
+ ],
1087
+ "captures": {
1088
+ "1": {
1089
+ "name": "entity.name.tag.jsp"
1090
+ }
1091
+ }
1153
1092
  }
1154
- ]
1093
+ ],
1094
+ "beginCaptures": {
1095
+ "1": {
1096
+ "name": "punctuation.definition.tag.begin.jsp"
1097
+ },
1098
+ "2": {
1099
+ "name": "entity.name.tag.jsp"
1100
+ }
1101
+ },
1102
+ "endCaptures": {
1103
+ "0": {
1104
+ "name": "punctuation.definition.tag.end.jsp"
1105
+ }
1106
+ }
1155
1107
  },
1156
1108
  "embedded": {
1157
- "begin": "(<)(jsp:(declaration|expression|scriptlet))(>)",
1109
+ "name": "meta.embedded.block.jsp",
1110
+ "contentName": "source.java",
1111
+ "begin": "(\u003c)(jsp:(declaration|expression|scriptlet))(\u003e)",
1112
+ "end": "((\u003c)/)(jsp:\\3)(\u003e)",
1113
+ "patterns": [
1114
+ {
1115
+ "include": "source.java"
1116
+ }
1117
+ ],
1158
1118
  "beginCaptures": {
1159
1119
  "0": {
1160
1120
  "name": "meta.tag.template.$3.jsp"
@@ -1169,8 +1129,6 @@
1169
1129
  "name": "punctuation.definition.tag.end.jsp"
1170
1130
  }
1171
1131
  },
1172
- "contentName": "source.java",
1173
- "end": "((<)/)(jsp:\\3)(>)",
1174
1132
  "endCaptures": {
1175
1133
  "0": {
1176
1134
  "name": "meta.tag.template.$4.jsp"
@@ -1187,17 +1145,52 @@
1187
1145
  "4": {
1188
1146
  "name": "punctuation.definition.tag.end.jsp"
1189
1147
  }
1190
- },
1191
- "name": "meta.embedded.block.jsp",
1148
+ }
1149
+ }
1150
+ }
1151
+ }
1152
+ },
1153
+ "injections": {
1154
+ "text.html.jsp - (meta.embedded.block.jsp | meta.embedded.line.jsp | meta.tag | comment), meta.tag string.quoted": {
1155
+ "patterns": [
1156
+ {
1157
+ "include": "#comment"
1158
+ },
1159
+ {
1160
+ "include": "#declaration"
1161
+ },
1162
+ {
1163
+ "include": "#expression"
1164
+ },
1165
+ {
1166
+ "include": "#el_expression"
1167
+ },
1168
+ {
1169
+ "include": "#tags"
1170
+ },
1171
+ {
1172
+ "begin": "(^\\s*)(?=\u003c%(?=\\s))",
1173
+ "end": "(?!\\G)(\\s*$\\n)?",
1192
1174
  "patterns": [
1193
1175
  {
1194
- "include": "source.java"
1176
+ "include": "#scriptlet"
1195
1177
  }
1196
- ]
1178
+ ],
1179
+ "beginCaptures": {
1180
+ "0": {
1181
+ "name": "punctuation.whitespace.embedded.leading.erb"
1182
+ }
1183
+ },
1184
+ "endCaptures": {
1185
+ "0": {
1186
+ "name": "punctuation.whitespace.embedded.trailing.erb"
1187
+ }
1188
+ }
1189
+ },
1190
+ {
1191
+ "include": "#scriptlet"
1197
1192
  }
1198
- }
1193
+ ]
1199
1194
  }
1200
- },
1201
- "scopeName": "text.html.jsp",
1202
- "uuid": "ACB58B55-9437-4AE6-AF42-854995CF51DF"
1203
- }
1195
+ }
1196
+ }