github-linguist 5.3.3 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (460) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +5 -2
  3. data/ext/linguist/linguist.c +18 -7
  4. data/grammars/annotation.liquidhaskell.haskell.json +969 -862
  5. data/grammars/config.xcompose.json +22 -25
  6. data/grammars/file.lasso.json +296 -309
  7. data/grammars/hint.haskell.json +867 -766
  8. data/grammars/hint.message.haskell.json +867 -766
  9. data/grammars/hint.type.haskell.json +867 -766
  10. data/grammars/objdump.x86asm.json +20 -24
  11. data/grammars/source.Kotlin.json +220 -225
  12. data/grammars/source.LS.json +36 -55
  13. data/grammars/source.MCPOST.json +24 -38
  14. data/grammars/source.MOD.json +26 -41
  15. data/grammars/source.SASLog.json +9 -16
  16. data/grammars/source.abap.json +48 -56
  17. data/grammars/source.abl.json +8 -14
  18. data/grammars/source.abnf.json +88 -98
  19. data/grammars/source.actionscript.3.json +398 -429
  20. data/grammars/source.acucobol.json +5 -8
  21. data/grammars/source.ada.json +46 -53
  22. data/grammars/source.afm.json +548 -554
  23. data/grammars/source.agc.json +34 -37
  24. data/grammars/source.agda.json +79 -91
  25. data/grammars/source.ahk.json +62 -66
  26. data/grammars/source.alloy.json +16 -20
  27. data/grammars/source.ampl.json +41 -47
  28. data/grammars/source.angelscript.json +71 -80
  29. data/grammars/source.antlr.json +131 -136
  30. data/grammars/source.apache-config.json +93 -99
  31. data/grammars/source.apache-config.mod_perl.json +19 -24
  32. data/grammars/source.apl.json +1038 -1029
  33. data/grammars/source.applescript.json +501 -523
  34. data/grammars/source.apt.json +9 -16
  35. data/grammars/source.asn.json +27 -31
  36. data/grammars/source.asp.json +61 -67
  37. data/grammars/source.aspectj.json +385 -391
  38. data/grammars/source.assembly.json +49 -55
  39. data/grammars/source.ats.json +45 -121
  40. data/grammars/source.autoit.json +64 -69
  41. data/grammars/source.awk.json +172 -176
  42. data/grammars/source.ballerina.json +48 -395
  43. data/grammars/source.batchfile.json +269 -269
  44. data/grammars/source.befunge.json +17 -21
  45. data/grammars/source.bf.json +5 -11
  46. data/grammars/source.bison.json +10 -14
  47. data/grammars/source.blitzmax.json +300 -305
  48. data/grammars/source.boo.json +189 -193
  49. data/grammars/source.brightauthorproject.json +8 -13
  50. data/grammars/source.brightscript.json +37 -47
  51. data/grammars/source.bro.json +134 -140
  52. data/grammars/source.bsl.json +152 -193
  53. data/grammars/source.bsv.json +96 -102
  54. data/grammars/source.c++.json +176 -193
  55. data/grammars/source.c++.qt.json +13 -21
  56. data/grammars/source.c.ec.json +15 -21
  57. data/grammars/source.c.json +237 -251
  58. data/grammars/source.c.platform.json +153 -159
  59. data/grammars/source.c2hs.json +3 -6
  60. data/grammars/source.cabal.json +17 -20
  61. data/grammars/source.cache.cmake.json +18 -23
  62. data/grammars/source.cake.json +4 -7
  63. data/grammars/source.camlp4.ocaml.json +24 -27
  64. data/grammars/source.capnp.json +33 -38
  65. data/grammars/source.ceylon.json +44 -50
  66. data/grammars/source.cfscript.cfc.json +78 -86
  67. data/grammars/source.cfscript.json +513 -520
  68. data/grammars/source.changelogs.rpm-spec.json +8 -16
  69. data/grammars/source.chapel.json +109 -87
  70. data/grammars/source.cirru.json +25 -30
  71. data/grammars/source.clarion.json +41 -54
  72. data/grammars/source.clean.json +90 -95
  73. data/grammars/source.click.json +25 -28
  74. data/grammars/source.clips.json +10 -23
  75. data/grammars/source.clojure.json +151 -168
  76. data/grammars/source.cm.json +14 -19
  77. data/grammars/source.cmake.json +53 -61
  78. data/grammars/source.cobol.json +165 -180
  79. data/grammars/source.coffee.json +454 -462
  80. data/grammars/source.cool.json +36 -43
  81. data/grammars/source.coq.json +17 -21
  82. data/grammars/source.crystal.json +889 -983
  83. data/grammars/source.cs.json +739 -740
  84. data/grammars/source.csound-document.json +69 -73
  85. data/grammars/source.csound-score.json +52 -55
  86. data/grammars/source.csound.json +167 -171
  87. data/grammars/source.css.json +683 -688
  88. data/grammars/source.css.less.json +211 -511
  89. data/grammars/source.css.mss.json +94 -101
  90. data/grammars/source.css.postcss.sugarss.json +260 -0
  91. data/grammars/source.csx.json +4 -7
  92. data/grammars/source.cuda-c++.json +47 -81
  93. data/grammars/source.cwl.json +103 -0
  94. data/grammars/source.cython.json +536 -582
  95. data/grammars/source.d.json +243 -252
  96. data/grammars/source.dart.json +161 -166
  97. data/grammars/source.data-weave.json +901 -905
  98. data/grammars/source.desktop.json +29 -33
  99. data/grammars/source.diff.json +43 -52
  100. data/grammars/source.disasm.json +15 -16
  101. data/grammars/source.ditroff.desc.json +73 -84
  102. data/grammars/source.ditroff.json +60 -61
  103. data/grammars/source.dm.json +202 -213
  104. data/grammars/source.dmf.json +44 -47
  105. data/grammars/source.dockerfile.json +29 -34
  106. data/grammars/source.dot.json +46 -55
  107. data/grammars/source.dylan.json +63 -68
  108. data/grammars/source.ebnf.json +55 -62
  109. data/grammars/source.eiffel.json +57 -62
  110. data/grammars/source.elixir.json +321 -366
  111. data/grammars/source.emacs.lisp.json +458 -249
  112. data/grammars/source.erazor.json +49 -57
  113. data/grammars/source.erlang.json +508 -515
  114. data/grammars/source.essl.json +17 -30
  115. data/grammars/source.factor.json +85 -91
  116. data/grammars/source.fan.json +92 -96
  117. data/grammars/source.fancy.json +93 -118
  118. data/grammars/source.fish.json +74 -98
  119. data/grammars/source.fontforge.json +142 -146
  120. data/grammars/source.forth.json +42 -57
  121. data/grammars/source.fortran.json +193 -231
  122. data/grammars/source.fortran.modern.json +77 -103
  123. data/grammars/source.fsharp.fsi.json +1 -6
  124. data/grammars/source.fsharp.fsl.json +1 -6
  125. data/grammars/source.fsharp.fsx.json +1 -6
  126. data/grammars/source.fsharp.json +148 -153
  127. data/grammars/source.gap.json +60 -70
  128. data/grammars/source.gcode.json +9 -16
  129. data/grammars/source.gdb.json +63 -79
  130. data/grammars/source.gdb.session.json +27 -28
  131. data/grammars/source.gdbregs.json +7 -8
  132. data/grammars/source.gdscript.json +92 -96
  133. data/grammars/source.gerber.json +38 -56
  134. data/grammars/source.gfm.json +447 -462
  135. data/grammars/source.glsl.json +58 -83
  136. data/grammars/source.gn.json +188 -193
  137. data/grammars/source.gnuplot.json +104 -120
  138. data/grammars/source.go.json +169 -181
  139. data/grammars/source.golo.json +82 -87
  140. data/grammars/source.gosu.2.json +58 -68
  141. data/grammars/source.grace.json +266 -270
  142. data/grammars/source.graphql.json +586 -596
  143. data/grammars/source.groovy.gradle.json +18 -22
  144. data/grammars/source.groovy.json +422 -433
  145. data/grammars/source.harbour.json +129 -173
  146. data/grammars/source.haskell.json +871 -772
  147. data/grammars/source.haxe.2.json +402 -413
  148. data/grammars/source.hlsl.json +6 -16
  149. data/grammars/source.hsc2hs.json +1 -4
  150. data/grammars/source.hsig.json +871 -770
  151. data/grammars/source.hss.1.json +122 -144
  152. data/grammars/source.httpspec.json +119 -123
  153. data/grammars/source.hxml.json +8 -15
  154. data/grammars/source.ideal.json +125 -125
  155. data/grammars/source.idl-dlm.json +25 -32
  156. data/grammars/source.idl.json +59 -80
  157. data/grammars/source.idris.json +171 -185
  158. data/grammars/source.inform7.json +117 -121
  159. data/grammars/source.ini.json +37 -43
  160. data/grammars/source.io.json +65 -73
  161. data/grammars/source.ioke.json +72 -78
  162. data/grammars/source.isabelle.root.json +26 -30
  163. data/grammars/source.isabelle.theory.json +46 -50
  164. data/grammars/source.j.json +18 -21
  165. data/grammars/source.jasmin.json +45 -50
  166. data/grammars/source.java-properties.json +31 -41
  167. data/grammars/source.java.json +333 -342
  168. data/grammars/source.jcl.json +15 -18
  169. data/grammars/source.jflex.json +166 -172
  170. data/grammars/source.jison.json +331 -334
  171. data/grammars/source.jisonlex-injection.json +1 -2
  172. data/grammars/source.jisonlex.json +148 -151
  173. data/grammars/source.jolie.json +37 -43
  174. data/grammars/source.jq.json +80 -87
  175. data/grammars/source.js.json +798 -818
  176. data/grammars/source.js.jsx.json +2115 -2225
  177. data/grammars/source.js.objj.json +167 -172
  178. data/grammars/source.js.regexp.json +50 -50
  179. data/grammars/source.js.regexp.replacement.json +7 -7
  180. data/grammars/source.jsdoc.json +94 -94
  181. data/grammars/source.json.json +61 -71
  182. data/grammars/source.julia.console.json +5 -6
  183. data/grammars/source.julia.json +237 -234
  184. data/grammars/source.lean.json +55 -67
  185. data/grammars/source.lid.json +6 -10
  186. data/grammars/source.lilypond.json +181 -195
  187. data/grammars/source.lisp.json +40 -50
  188. data/grammars/source.litcoffee.json +169 -183
  189. data/grammars/source.livescript.json +207 -220
  190. data/grammars/source.llvm.json +28 -38
  191. data/grammars/source.logos.json +7 -14
  192. data/grammars/source.logtalk.json +136 -141
  193. data/grammars/source.loomscript.json +77 -83
  194. data/grammars/source.lsl.json +90 -106
  195. data/grammars/source.lua.json +100 -109
  196. data/grammars/source.makefile.json +181 -188
  197. data/grammars/source.makegen.json +3 -7
  198. data/grammars/source.mask.json +260 -265
  199. data/grammars/source.mata.json +38 -46
  200. data/grammars/source.mathematica.json +155 -167
  201. data/grammars/source.matlab.json +407 -684
  202. data/grammars/source.maxscript.json +293 -281
  203. data/grammars/source.mercury.json +179 -184
  204. data/grammars/source.meson.json +52 -58
  205. data/grammars/source.meta-info.json +64 -74
  206. data/grammars/source.ml.json +107 -113
  207. data/grammars/source.modelica.json +51 -59
  208. data/grammars/source.modula2.json +33 -42
  209. data/grammars/source.monkey.json +234 -241
  210. data/grammars/source.moonscript.json +51 -56
  211. data/grammars/source.mql5.json +74 -101
  212. data/grammars/source.mupad.json +30 -72
  213. data/grammars/source.ncl.json +1 -14
  214. data/grammars/source.ne.json +39 -42
  215. data/grammars/source.nemerle.json +58 -63
  216. data/grammars/source.nesc.json +9 -15
  217. data/grammars/source.netlinx.erb.json +13 -25
  218. data/grammars/source.netlinx.json +231 -292
  219. data/grammars/source.nextflow-groovy.json +1360 -0
  220. data/grammars/source.nextflow.json +74 -0
  221. data/grammars/source.nginx.json +274 -287
  222. data/grammars/source.nim.json +442 -483
  223. data/grammars/source.nim_filter.json +6 -26
  224. data/grammars/source.nimcfg.json +38 -51
  225. data/grammars/source.ninja.json +64 -70
  226. data/grammars/source.nit.json +60 -64
  227. data/grammars/source.nix.json +269 -273
  228. data/grammars/source.nmml.json +31 -37
  229. data/grammars/source.nsis.json +66 -72
  230. data/grammars/source.nu.json +129 -139
  231. data/grammars/source.nut.json +129 -133
  232. data/grammars/source.objc++.json +3 -10
  233. data/grammars/source.objc.json +303 -314
  234. data/grammars/source.objc.platform.json +145 -151
  235. data/grammars/source.ocaml.json +506 -514
  236. data/grammars/source.ocamllex.json +108 -115
  237. data/grammars/source.ocamlyacc.json +116 -123
  238. data/grammars/source.ooc.json +148 -155
  239. data/grammars/source.opa.json +39 -49
  240. data/grammars/source.opal.json +84 -89
  241. data/grammars/source.opalsysdefs.json +9 -13
  242. data/grammars/source.opencobol.json +22 -25
  243. data/grammars/source.opentype.json +148 -152
  244. data/grammars/source.ox.json +36 -44
  245. data/grammars/source.oz.json +31 -38
  246. data/grammars/source.p4.json +49 -59
  247. data/grammars/source.pan.json +273 -278
  248. data/grammars/source.papyrus.skyrim.json +705 -781
  249. data/grammars/source.parrot.pir.json +59 -65
  250. data/grammars/source.pascal.json +54 -61
  251. data/grammars/source.pawn.json +835 -849
  252. data/grammars/source.pcb.board.json +153 -158
  253. data/grammars/source.pcb.schematic.json +134 -138
  254. data/grammars/source.pcb.sexp.json +64 -74
  255. data/grammars/source.pep8.json +28 -32
  256. data/grammars/source.perl.6.json +83 -92
  257. data/grammars/source.perl.json +711 -737
  258. data/grammars/source.perl6fe.json +1204 -1218
  259. data/grammars/source.php.zephir.json +80 -89
  260. data/grammars/source.pic.json +137 -142
  261. data/grammars/source.pig_latin.json +76 -80
  262. data/grammars/source.pike.json +23 -36
  263. data/grammars/source.po.json +74 -84
  264. data/grammars/source.pogoscript.json +23 -29
  265. data/grammars/source.pony.json +98 -108
  266. data/grammars/source.postcss.json +370 -0
  267. data/grammars/source.postscript.json +88 -97
  268. data/grammars/source.pov-ray sdl.json +36 -42
  269. data/grammars/source.powershell.json +175 -197
  270. data/grammars/source.processing.json +236 -249
  271. data/grammars/source.prolog.eclipse.json +33 -38
  272. data/grammars/source.prolog.json +66 -72
  273. data/grammars/source.protobuf.json +88 -94
  274. data/grammars/source.puppet.json +144 -151
  275. data/grammars/source.purescript.json +268 -289
  276. data/grammars/source.pyjade.json +256 -281
  277. data/grammars/source.python.django.json +13 -18
  278. data/grammars/source.python.json +3319 -3367
  279. data/grammars/source.python.salt.json +3 -7
  280. data/grammars/source.qmake.json +83 -90
  281. data/grammars/source.qml.json +57 -78
  282. data/grammars/source.quoting.perl6fe.json +666 -669
  283. data/grammars/source.r.json +75 -84
  284. data/grammars/source.racket.json +17 -38
  285. data/grammars/source.rascal.json +77 -80
  286. data/grammars/source.reason.hover.type.json +1 -1
  287. data/grammars/source.reason.json +1025 -1080
  288. data/grammars/source.rebol.json +167 -177
  289. data/grammars/source.red.json +169 -177
  290. data/grammars/source.regexp.babel.json +74 -77
  291. data/grammars/source.regexp.extended.json +4 -5
  292. data/grammars/source.regexp.json +260 -264
  293. data/grammars/source.regexp.perl6fe.json +108 -111
  294. data/grammars/source.regexp.python.json +210 -215
  295. data/grammars/source.regexp.spin.json +63 -72
  296. data/grammars/source.renpy.json +617 -687
  297. data/grammars/source.rexx.json +25 -32
  298. data/grammars/source.ring.json +84 -114
  299. data/grammars/source.rpm-spec.json +392 -401
  300. data/grammars/source.ruby.gemfile.json +9 -12
  301. data/grammars/source.ruby.json +862 -952
  302. data/grammars/source.ruby.rspec.cucumber.steps.json +90 -103
  303. data/grammars/source.rust.json +223 -281
  304. data/grammars/source.sas.json +88 -105
  305. data/grammars/source.sass.json +100 -108
  306. data/grammars/source.sbt.json +16 -23
  307. data/grammars/source.scad.json +60 -67
  308. data/grammars/source.scala.json +215 -228
  309. data/grammars/source.scaml.json +120 -135
  310. data/grammars/source.scheme.json +119 -136
  311. data/grammars/source.scilab.json +40 -47
  312. data/grammars/source.scss.json +369 -403
  313. data/grammars/source.sdbl.json +14 -25
  314. data/grammars/source.shaderlab.json +24 -27
  315. data/grammars/source.shell.json +409 -440
  316. data/grammars/source.shen.json +75 -94
  317. data/grammars/source.smali.json +232 -293
  318. data/grammars/source.smalltalk.json +60 -75
  319. data/grammars/source.smt.json +67 -82
  320. data/grammars/source.solidity.json +35 -54
  321. data/grammars/source.sp.json +40 -45
  322. data/grammars/source.sparql.json +3 -8
  323. data/grammars/source.spin.json +277 -297
  324. data/grammars/source.sqf.json +34 -44
  325. data/grammars/source.sql.json +142 -156
  326. data/grammars/source.stan.json +201 -160
  327. data/grammars/source.stata.json +57 -68
  328. data/grammars/source.strings.json +26 -30
  329. data/grammars/source.stylus.json +558 -565
  330. data/grammars/source.supercollider.json +33 -40
  331. data/grammars/source.swift.json +999 -1077
  332. data/grammars/source.systemverilog.json +351 -365
  333. data/grammars/source.tcl.json +77 -94
  334. data/grammars/source.tea.json +61 -67
  335. data/grammars/source.terra.json +25 -32
  336. data/grammars/source.terraform.json +68 -88
  337. data/grammars/source.thrift.json +300 -306
  338. data/grammars/source.tl.json +112 -117
  339. data/grammars/source.tla.json +65 -69
  340. data/grammars/source.toc.json +21 -25
  341. data/grammars/source.toml.json +117 -122
  342. data/grammars/source.ts.json +2838 -2774
  343. data/grammars/source.tsx.json +180 -184
  344. data/grammars/source.turing.json +970 -974
  345. data/grammars/source.turtle.json +124 -140
  346. data/grammars/source.txl.json +23 -37
  347. data/grammars/source.ucfconstraints.json +16 -21
  348. data/grammars/source.ur.json +15 -27
  349. data/grammars/source.vala.json +221 -235
  350. data/grammars/source.varnish.vcl.json +117 -129
  351. data/grammars/source.vbnet.json +69 -106
  352. data/grammars/source.verilog.json +101 -107
  353. data/grammars/source.vhdl.json +437 -445
  354. data/grammars/source.viml.json +540 -550
  355. data/grammars/source.wavefront.mtl.json +274 -277
  356. data/grammars/source.wavefront.obj.json +781 -784
  357. data/grammars/source.wdl.json +66 -46
  358. data/grammars/source.webassembly.json +97 -102
  359. data/grammars/source.webidl.json +311 -326
  360. data/grammars/source.x10.json +28 -32
  361. data/grammars/source.x86asm.json +21 -26
  362. data/grammars/source.xc.json +164 -172
  363. data/grammars/source.xq.json +81 -92
  364. data/grammars/source.xtend.json +199 -208
  365. data/grammars/source.yaml-ext.json +118 -124
  366. data/grammars/source.yaml.json +155 -174
  367. data/grammars/source.yaml.salt.json +113 -116
  368. data/grammars/source.yang.json +10 -13
  369. data/grammars/source.yara.json +98 -0
  370. data/grammars/text.bibtex.json +95 -100
  371. data/grammars/text.cfml.basic.json +403 -404
  372. data/grammars/text.elixir.json +18 -23
  373. data/grammars/text.error-list.json +15 -16
  374. data/grammars/text.find-refs.json +487 -488
  375. data/grammars/text.gherkin.feature.json +45 -53
  376. data/grammars/text.haml.json +176 -189
  377. data/grammars/text.hamlc.json +82 -88
  378. data/grammars/text.html.abl.json +16 -21
  379. data/grammars/text.html.asciidoc.json +139 -153
  380. data/grammars/text.html.asdoc.json +145 -155
  381. data/grammars/text.html.asp.json +23 -28
  382. data/grammars/text.html.basic.json +323 -338
  383. data/grammars/text.html.cfm.json +316 -325
  384. data/grammars/text.html.creole.json +177 -189
  385. data/grammars/text.html.django.json +27 -33
  386. data/grammars/text.html.ecr.json +21 -25
  387. data/grammars/text.html.elixir.json +3 -9
  388. data/grammars/text.html.erb.json +81 -85
  389. data/grammars/text.html.erlang.yaws.json +24 -29
  390. data/grammars/text.html.factor.json +5 -11
  391. data/grammars/text.html.ftl.json +16 -25
  392. data/grammars/text.html.handlebars.json +579 -598
  393. data/grammars/text.html.javadoc.json +426 -0
  394. data/grammars/text.html.js.json +11 -17
  395. data/grammars/text.html.jsp.json +377 -384
  396. data/grammars/text.html.liquid.json +8 -18
  397. data/grammars/text.html.mako.json +257 -275
  398. data/grammars/text.html.markdown.source.gfm.apib.json +419 -427
  399. data/grammars/text.html.markdown.source.gfm.mson.json +405 -414
  400. data/grammars/text.html.mediawiki.json +318 -344
  401. data/grammars/text.html.php.blade.json +2134 -2140
  402. data/grammars/text.html.php.json +980 -1013
  403. data/grammars/text.html.slash.json +101 -107
  404. data/grammars/text.html.smarty.json +75 -83
  405. data/grammars/text.html.soy.json +250 -253
  406. data/grammars/text.html.ssp.json +18 -24
  407. data/grammars/text.html.tcl.json +17 -24
  408. data/grammars/text.html.twig.json +712 -718
  409. data/grammars/text.idl-idldoc.json +5 -9
  410. data/grammars/text.jade.json +213 -235
  411. data/grammars/text.junit-test-report.json +25 -28
  412. data/grammars/text.log.latex.json +44 -46
  413. data/grammars/text.marko.json +370 -401
  414. data/grammars/text.python.console.json +3 -7
  415. data/grammars/text.python.traceback.json +2 -5
  416. data/grammars/text.rdoc.json +15 -19
  417. data/grammars/text.restructuredtext.clean.json +8 -11
  418. data/grammars/text.restructuredtext.json +886 -873
  419. data/grammars/text.robot.json +26 -36
  420. data/grammars/text.roff.json +2852 -2915
  421. data/grammars/text.runoff.json +56 -69
  422. data/grammars/text.sfd.json +151 -155
  423. data/grammars/text.shell-session.json +5 -8
  424. data/grammars/text.slim.json +184 -210
  425. data/grammars/text.srt.json +54 -57
  426. data/grammars/text.tex.json +98 -105
  427. data/grammars/text.tex.latex.beamer.json +14 -20
  428. data/grammars/text.tex.latex.haskell.json +883 -782
  429. data/grammars/text.tex.latex.json +281 -291
  430. data/grammars/text.tex.latex.memoir.json +39 -46
  431. data/grammars/text.tex.latex.rd.json +32 -38
  432. data/grammars/text.xml.ant.json +62 -69
  433. data/grammars/text.xml.flex-config.json +1009 -1013
  434. data/grammars/text.xml.genshi.json +10 -16
  435. data/grammars/text.xml.json +117 -130
  436. data/grammars/text.xml.pom.json +235 -240
  437. data/grammars/text.xml.xsl.json +31 -37
  438. data/grammars/text.zone_file.json +24 -29
  439. data/lib/linguist/blob.rb +10 -1
  440. data/lib/linguist/blob_helper.rb +4 -1
  441. data/lib/linguist/file_blob.rb +5 -0
  442. data/lib/linguist/generated.rb +16 -0
  443. data/lib/linguist/heuristics.rb +23 -11
  444. data/lib/linguist/language.rb +3 -6
  445. data/lib/linguist/languages.json +1 -1
  446. data/lib/linguist/languages.yml +74 -12
  447. data/lib/linguist/lazy_blob.rb +15 -1
  448. data/lib/linguist/linguist.bundle +0 -0
  449. data/lib/linguist/samples.json +1666 -3381
  450. data/lib/linguist/shebang.rb +2 -0
  451. data/lib/linguist/strategy/modeline.rb +2 -0
  452. data/lib/linguist/vendor.yml +5 -6
  453. data/lib/linguist/version.rb +1 -1
  454. metadata +12 -11
  455. data/grammars/source.elm.json +0 -381
  456. data/grammars/source.nant-build.json +0 -86
  457. data/grammars/source.octave.json +0 -451
  458. data/grammars/text.html.mediawiki.elm-build-output.json +0 -111
  459. data/grammars/text.html.mediawiki.elm-documentation.json +0 -22
  460. data/grammars/text.html.vue.json +0 -936
@@ -1,9 +1,10 @@
1
1
  {
2
- "firstLineMatch": "^Testsuite:",
3
- "keyEquivalent": "^~J",
4
2
  "name": "JUnit Test Report",
3
+ "scopeName": "text.junit-test-report",
5
4
  "patterns": [
6
5
  {
6
+ "name": "meta.testsuite.name.junit-test-report",
7
+ "match": "(Testsuite:) (.+)$\\n",
7
8
  "captures": {
8
9
  "1": {
9
10
  "name": "meta.testsuite.label.junit-test-report"
@@ -11,11 +12,11 @@
11
12
  "2": {
12
13
  "name": "entity.name.testsuite.junit-test-report"
13
14
  }
14
- },
15
- "match": "(Testsuite:) (.+)$\\n",
16
- "name": "meta.testsuite.name.junit-test-report"
15
+ }
17
16
  },
18
17
  {
18
+ "name": "meta.testcase.name.junit-test-report",
19
+ "match": "(Testcase:) (.+) took ([\\d\\.]+) sec$\\n",
19
20
  "captures": {
20
21
  "1": {
21
22
  "name": "meta.testcase.label.junit-test-report"
@@ -23,20 +24,19 @@
23
24
  "2": {
24
25
  "name": "entity.name.testcase.junit-test-report"
25
26
  }
26
- },
27
- "match": "(Testcase:) (.+) took ([\\d\\.]+) sec$\\n",
28
- "name": "meta.testcase.name.junit-test-report"
27
+ }
29
28
  },
30
29
  {
30
+ "name": "meta.stackframe.junit-test-report",
31
31
  "begin": "at\\s+(?=.+?\\(.+?\\)$)",
32
32
  "end": "$\\n",
33
- "name": "meta.stackframe.junit-test-report",
34
33
  "patterns": [
35
34
  {
36
- "match": "(?<=\\.)[^\\.]+?(?=\\()",
37
- "name": "meta.stackframe.method.junit-test-report"
35
+ "name": "meta.stackframe.method.junit-test-report",
36
+ "match": "(?\u003c=\\.)[^\\.]+?(?=\\()"
38
37
  },
39
38
  {
39
+ "match": "\\((.+)(:)(.+)\\)$",
40
40
  "captures": {
41
41
  "1": {
42
42
  "name": "meta.stackframe.source.junit-test-report"
@@ -44,49 +44,46 @@
44
44
  "3": {
45
45
  "name": "meta.stackframe.source.line.junit-test-report"
46
46
  }
47
- },
48
- "match": "\\((.+)(:)(.+)\\)$"
47
+ }
49
48
  }
50
49
  ]
51
50
  },
52
51
  {
52
+ "name": "meta.section.output.junit-test-report",
53
53
  "begin": "------------- Standard Output ---------------$\\n",
54
54
  "end": "------------- ---------------- ---------------$\\n",
55
- "name": "meta.section.output.junit-test-report",
56
55
  "patterns": [
57
56
  {
57
+ "name": "meta.output.junit-test-report",
58
+ "contentName": "meta.output.content.junit-test-report",
58
59
  "begin": "--Output from (.+?)--$\\n",
60
+ "end": "(?=--Output from|------------- ---------------- ---------------)",
59
61
  "beginCaptures": {
60
62
  "1": {
61
63
  "name": "entity.name.testcase.junit-test-report"
62
64
  }
63
- },
64
- "contentName": "meta.output.content.junit-test-report",
65
- "end": "(?=--Output from|------------- ---------------- ---------------)",
66
- "name": "meta.output.junit-test-report"
65
+ }
67
66
  }
68
67
  ]
69
68
  },
70
69
  {
71
- "begin": "------------- Standard Error -----------------$\\n",
70
+ "name": "meta.section.error.junit-test-report",
72
71
  "contentName": "meta.error.junit-test-report",
72
+ "begin": "------------- Standard Error -----------------$\\n",
73
73
  "end": "------------- ---------------- ---------------$\\n",
74
- "name": "meta.section.error.junit-test-report",
75
74
  "patterns": [
76
75
  {
76
+ "name": "meta.error.junit-test-report",
77
+ "contentName": "meta.error.content.junit-test-report",
77
78
  "begin": "--Output from (.+?)--$\\n",
79
+ "end": "(?=--Output from|------------- ---------------- ---------------)",
78
80
  "beginCaptures": {
79
81
  "1": {
80
82
  "name": "entity.name.testcase.junit-test-report"
81
83
  }
82
- },
83
- "contentName": "meta.error.content.junit-test-report",
84
- "end": "(?=--Output from|------------- ---------------- ---------------)",
85
- "name": "meta.error.junit-test-report"
84
+ }
86
85
  }
87
86
  ]
88
87
  }
89
- ],
90
- "scopeName": "text.junit-test-report",
91
- "uuid": "6F20804D-4BF2-42A7-BC64-A8CD83B7DE0F"
92
- }
88
+ ]
89
+ }
@@ -1,86 +1,84 @@
1
1
  {
2
- "firstLineMatch": "This is (pdf|pdfe)?TeXk?, Version ",
3
2
  "name": "LaTeX Log",
3
+ "scopeName": "text.log.latex",
4
4
  "patterns": [
5
5
  {
6
- "match": ".*Warning:",
7
- "name": "invalid.deprecated"
6
+ "name": "invalid.deprecated",
7
+ "match": ".*Warning:"
8
8
  },
9
9
  {
10
- "match": "[^:]*:\\d*:.*",
11
- "name": "invalid.deprecated"
10
+ "name": "invalid.deprecated",
11
+ "match": "[^:]*:\\d*:.*"
12
12
  },
13
13
  {
14
- "match": ".*Error|^!.*",
15
- "name": "invalid.illegal"
14
+ "name": "invalid.illegal",
15
+ "match": ".*Error|^!.*"
16
16
  },
17
17
  {
18
- "match": ".*\\.sty",
19
- "name": "entity.name.function"
18
+ "name": "entity.name.function",
19
+ "match": ".*\\.sty"
20
20
  },
21
21
  {
22
- "match": ".*\\.cls",
23
- "name": "entity.name.type.class"
22
+ "name": "entity.name.type.class",
23
+ "match": ".*\\.cls"
24
24
  },
25
25
  {
26
- "match": ".*\\.cfg",
27
- "name": "entity.name.tag.configuration"
26
+ "name": "entity.name.tag.configuration",
27
+ "match": ".*\\.cfg"
28
28
  },
29
29
  {
30
- "match": ".*\\.def",
31
- "name": "entity.name.tag.definition"
30
+ "name": "entity.name.tag.definition",
31
+ "match": ".*\\.def"
32
32
  },
33
33
  {
34
- "match": ".*Info.*",
35
- "name": "comment.block.documentation"
34
+ "name": "comment.block.documentation",
35
+ "match": ".*Info.*"
36
36
  },
37
37
  {
38
- "match": ".*FiXme:",
39
- "name": "meta.log.latex.fixme"
38
+ "name": "meta.log.latex.fixme",
39
+ "match": ".*FiXme:"
40
40
  },
41
41
  {
42
+ "name": "meta.log.latex.hyphenation",
42
43
  "begin": "(Overfull|Underfull)",
44
+ "end": "(\\[\\]\\n)",
45
+ "patterns": [
46
+ {
47
+ "name": "variable.parameter.hyphenation.latex2",
48
+ "match": "[0-9]+\\-\\-[0-9]+"
49
+ }
50
+ ],
43
51
  "captures": {
44
52
  "1": {
45
53
  "name": "keyword.control.hyphenation.latex"
46
54
  }
47
- },
48
- "end": "(\\[\\]\\n)",
49
- "name": "meta.log.latex.hyphenation",
55
+ }
56
+ },
57
+ {
58
+ "name": "string.unquoted.other.filename.log.latex",
59
+ "begin": "(\u003c)",
60
+ "end": "(\u003e)",
50
61
  "patterns": [
51
62
  {
52
- "match": "[0-9]+\\-\\-[0-9]+",
53
- "name": "variable.parameter.hyphenation.latex2"
63
+ "name": "support.function.with-arg.latex",
64
+ "match": "(.*/.*\\.pdf)",
65
+ "captures": {
66
+ "1": {
67
+ "name": "entity.name.function.filename.latex"
68
+ }
69
+ }
54
70
  }
55
- ]
56
- },
57
- {
58
- "begin": "(<)",
71
+ ],
59
72
  "beginCaptures": {
60
73
  "0": {
61
74
  "name": "punctuation.definition.string.begin.log.latex"
62
75
  }
63
76
  },
64
- "end": "(>)",
65
77
  "endCaptures": {
66
78
  "0": {
67
79
  "name": "punctuation.definition.string.end.log.latex"
68
80
  }
69
- },
70
- "name": "string.unquoted.other.filename.log.latex",
71
- "patterns": [
72
- {
73
- "captures": {
74
- "1": {
75
- "name": "entity.name.function.filename.latex"
76
- }
77
- },
78
- "match": "(.*/.*\\.pdf)",
79
- "name": "support.function.with-arg.latex"
80
- }
81
- ]
81
+ }
82
82
  }
83
- ],
84
- "scopeName": "text.log.latex",
85
- "uuid": "F68ACE95-7DB3-4DFB-AA8A-89988B116B5C"
86
- }
83
+ ]
84
+ }
@@ -1,8 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "marko"
4
- ],
5
2
  "name": "Marko",
3
+ "scopeName": "text.marko",
6
4
  "patterns": [
7
5
  {
8
6
  "include": "#scriptlet"
@@ -55,8 +53,13 @@
55
53
  ],
56
54
  "repository": {
57
55
  "attr-assignment-concise": {
58
- "applyEndPatternLast": 1,
59
56
  "begin": "(?:\\s+|[,])(?:(ref)|([a-zA-Z][a-zA-Z]*)|(data-[a-zA-Z-]*)|([_a-zA-Z0-9][a-zA-Z0-9:_.-]*))\\s*([=])\\s*",
57
+ "end": "(?=([,;]|\\s|$))",
58
+ "patterns": [
59
+ {
60
+ "include": "#expression"
61
+ }
62
+ ],
60
63
  "beginCaptures": {
61
64
  "1": {
62
65
  "name": "support.function.marko-attribute"
@@ -74,19 +77,19 @@
74
77
  "name": "punctuation.separator.key-value.html"
75
78
  }
76
79
  },
77
- "end": "(?=([,;]|\\s|$))",
78
- "patterns": [
79
- {
80
- "include": "#expression"
81
- }
82
- ]
80
+ "applyEndPatternLast": true
83
81
  },
84
82
  "attr-assignment-html": {
85
- "applyEndPatternLast": 1,
86
83
  "begin": "(?:\\s+|[,])(?:(ref)|([a-zA-Z][a-zA-Z]*)|(data-[a-zA-Z0-9-]*)|([_a-zA-Z0-9][a-zA-Z0-9:_.-]*))\\s*([=])\\s*",
84
+ "end": "(?=[,;]|\\s|/\u003e|\u003e)",
85
+ "patterns": [
86
+ {
87
+ "include": "#expression-no-gt"
88
+ }
89
+ ],
87
90
  "beginCaptures": {
88
91
  "1": {
89
- "name": "support.function.marko-attribute"
92
+ "name": "entity.other.attribute-name.html"
90
93
  },
91
94
  "2": {
92
95
  "name": "entity.other.attribute-name.html"
@@ -95,40 +98,36 @@
95
98
  "name": "entity.other.attribute-name.html"
96
99
  },
97
100
  "4": {
98
- "name": "support.function.marko-attribute"
101
+ "name": "entity.other.attribute-name.html"
99
102
  },
100
103
  "5": {
101
104
  "name": "punctuation.separator.key-value.html"
102
105
  }
103
106
  },
104
- "end": "(?=[,;]|\\s|/>|>)",
105
- "patterns": [
106
- {
107
- "include": "#expression-no-gt"
108
- }
109
- ]
107
+ "applyEndPatternLast": true
110
108
  },
111
109
  "attr-js-block": {
112
- "applyEndPatternLast": 1,
113
110
  "begin": "\\s\\{",
111
+ "end": "\\}",
112
+ "patterns": [
113
+ {
114
+ "include": "#js"
115
+ }
116
+ ],
114
117
  "beginCaptures": {
115
118
  "0": {
116
119
  "name": "punctuation.section.scope.begin.js"
117
120
  }
118
121
  },
119
- "end": "\\}",
120
122
  "endCaptures": {
121
123
  "0": {
122
124
  "name": "punctuation.section.scope.end.js"
123
125
  }
124
126
  },
125
- "patterns": [
126
- {
127
- "include": "#js"
128
- }
129
- ]
127
+ "applyEndPatternLast": true
130
128
  },
131
129
  "attr-no-value": {
130
+ "match": "\\s+(?:([a-zA-Z][a-zA-Z]*)|(data-[a-zA-Z0-9-]*)|([a-zA-Z0-9][a-zA-Z0-9:_.-]+))(?=\\s|/\u003e|\u003e|$)",
132
131
  "captures": {
133
132
  "1": {
134
133
  "name": "entity.other.attribute-name.html"
@@ -137,19 +136,12 @@
137
136
  "name": "entity.other.attribute-name.html"
138
137
  },
139
138
  "3": {
140
- "name": "support.function.marko-attribute"
139
+ "name": "entity.other.attribute-name.html"
141
140
  }
142
- },
143
- "match": "\\s+(?:([a-zA-Z][a-zA-Z]*)|(data-[a-zA-Z0-9-]*)|([a-zA-Z0-9][a-zA-Z0-9:_.-]+))(?=\\s|/>|>|$)"
141
+ }
144
142
  },
145
143
  "attr-semicolon": {
146
- "applyEndPatternLast": 1,
147
144
  "begin": "([;])",
148
- "beginCaptures": {
149
- "1": {
150
- "name": "punctuation.terminator.statement.js"
151
- }
152
- },
153
145
  "end": "(?=\\n)",
154
146
  "patterns": [
155
147
  {
@@ -158,15 +150,21 @@
158
150
  {
159
151
  "include": "#comment-block"
160
152
  }
161
- ]
153
+ ],
154
+ "beginCaptures": {
155
+ "1": {
156
+ "name": "punctuation.terminator.statement.js"
157
+ }
158
+ },
159
+ "applyEndPatternLast": true
162
160
  },
163
161
  "attr-special": {
162
+ "match": "\\s+(else)\\b",
164
163
  "captures": {
165
164
  "1": {
166
165
  "name": "support.function.marko-attribute"
167
166
  }
168
- },
169
- "match": "\\s+(else)\\b"
167
+ }
170
168
  },
171
169
  "attr-stuff-concise": {
172
170
  "patterns": [
@@ -244,8 +242,13 @@
244
242
  ]
245
243
  },
246
244
  "attr-with-arg": {
247
- "applyEndPatternLast": 1,
248
245
  "begin": "\\s+([_a-zA-Z0-9][a-zA-Z0-9:_.-]+)(\\()",
246
+ "end": "\\)",
247
+ "patterns": [
248
+ {
249
+ "include": "#expression"
250
+ }
251
+ ],
249
252
  "beginCaptures": {
250
253
  "1": {
251
254
  "name": "support.function.marko-attribute"
@@ -254,88 +257,82 @@
254
257
  "name": "meta.brace.round.js"
255
258
  }
256
259
  },
257
- "end": "\\)",
258
260
  "endCaptures": {
259
261
  "1": {
260
262
  "name": "meta.brace.round.js"
261
263
  }
262
264
  },
263
- "patterns": [
264
- {
265
- "include": "#expression"
266
- }
267
- ]
265
+ "applyEndPatternLast": true
268
266
  },
269
267
  "cdata": {
270
- "begin": "<!\\[CDATA\\[",
268
+ "name": "string.unquoted.cdata.xml",
269
+ "begin": "\u003c!\\[CDATA\\[",
270
+ "end": "]]\u003e",
271
271
  "beginCaptures": {
272
272
  "0": {
273
273
  "name": "punctuation.definition.string.begin.xml"
274
274
  }
275
275
  },
276
- "end": "]]>",
277
276
  "endCaptures": {
278
277
  "0": {
279
278
  "name": "punctuation.definition.string.end.xml"
280
279
  }
281
- },
282
- "name": "string.unquoted.cdata.xml"
280
+ }
283
281
  },
284
282
  "comment-block": {
283
+ "name": "comment.block.js",
285
284
  "begin": "/\\*",
285
+ "end": "\\*/",
286
286
  "beginCaptures": {
287
287
  "0": {
288
288
  "name": "punctuation.definition.comment.begin.js"
289
289
  }
290
290
  },
291
- "end": "\\*/",
292
291
  "endCaptures": {
293
292
  "0": {
294
293
  "name": "punctuation.definition.comment.end.js"
295
294
  }
296
- },
297
- "name": "comment.block.js"
295
+ }
298
296
  },
299
297
  "comment-concise-block": {
298
+ "name": "comment.block.js",
300
299
  "begin": "^(\\s*)/\\*",
300
+ "end": "\\*/.*",
301
301
  "beginCaptures": {
302
302
  "0": {
303
303
  "name": "punctuation.definition.comment.begin.js"
304
304
  }
305
305
  },
306
- "end": "\\*/.*",
307
306
  "endCaptures": {
308
307
  "0": {
309
308
  "name": "punctuation.definition.comment.end.js"
310
309
  }
311
- },
312
- "name": "comment.block.js"
310
+ }
313
311
  },
314
312
  "comment-concise-line": {
313
+ "name": "comment.line.double-slash.marko",
315
314
  "begin": "^(\\s*)//",
316
- "comment": "Single line comment (concise)",
317
- "end": "$",
318
- "name": "comment.line.double-slash.marko"
315
+ "end": "$"
319
316
  },
320
317
  "comment-html": {
321
- "begin": "\\s*<!--",
318
+ "name": "comment.block.html",
319
+ "begin": "\\s*\u003c!--",
320
+ "end": "--\u003e",
322
321
  "captures": {
323
322
  "0": {
324
323
  "name": "punctuation.definition.comment.html"
325
324
  }
326
- },
327
- "end": "-->",
328
- "name": "comment.block.html"
325
+ }
329
326
  },
330
327
  "comment-line": {
328
+ "name": "comment.line.double-slash.js",
331
329
  "begin": "(//)",
330
+ "end": "(?=\\n)",
332
331
  "beginCaptures": {
333
332
  "1": {
334
333
  "name": "punctuation.definition.comment.js"
335
334
  }
336
- },
337
- "end": "(?=\\n)",
338
- "name": "comment.line.double-slash.js"
335
+ }
339
336
  },
340
337
  "component-style": {
341
338
  "patterns": [
@@ -348,8 +345,13 @@
348
345
  ]
349
346
  },
350
347
  "component-style-css": {
351
- "applyEndPatternLast": 1,
352
348
  "begin": "^(style)(?:\\.([a-z]+))?\\s+(\\{)",
349
+ "end": "\\}",
350
+ "patterns": [
351
+ {
352
+ "include": "source.css"
353
+ }
354
+ ],
353
355
  "beginCaptures": {
354
356
  "1": {
355
357
  "name": "storage.type.marko.css"
@@ -361,21 +363,21 @@
361
363
  "name": "punctuation.section.scope.begin.css"
362
364
  }
363
365
  },
364
- "end": "\\}",
365
366
  "endCaptures": {
366
367
  "0": {
367
368
  "name": "punctuation.section.scope.end.css"
368
369
  }
369
370
  },
370
- "patterns": [
371
- {
372
- "include": "source.css"
373
- }
374
- ]
371
+ "applyEndPatternLast": true
375
372
  },
376
373
  "component-style-less": {
377
- "applyEndPatternLast": 1,
378
374
  "begin": "^(style)\\.(less)\\s+(\\{)",
375
+ "end": "\\}",
376
+ "patterns": [
377
+ {
378
+ "include": "source.css.less"
379
+ }
380
+ ],
379
381
  "beginCaptures": {
380
382
  "1": {
381
383
  "name": "storage.type.marko.less"
@@ -387,48 +389,42 @@
387
389
  "name": "punctuation.section.scope.begin.less"
388
390
  }
389
391
  },
390
- "end": "\\}",
391
392
  "endCaptures": {
392
393
  "0": {
393
394
  "name": "punctuation.section.scope.end.less"
394
395
  }
395
396
  },
396
- "patterns": [
397
- {
398
- "include": "source.css.less"
399
- }
400
- ]
397
+ "applyEndPatternLast": true
401
398
  },
402
399
  "doctype": {
403
- "begin": "<!",
404
- "captures": {
405
- "0": {
406
- "name": "punctuation.definition.marko-tag.html"
407
- }
408
- },
409
- "end": ">",
410
400
  "name": "meta.tag.sgml.html",
401
+ "begin": "\u003c!",
402
+ "end": "\u003e",
411
403
  "patterns": [
412
404
  {
405
+ "name": "meta.tag.sgml.doctype.html",
413
406
  "begin": "(?i:DOCTYPE)",
407
+ "end": "(?=\u003e)",
408
+ "patterns": [
409
+ {
410
+ "name": "string.quoted.double.doctype.identifiers-and-DTDs.html",
411
+ "match": "\"[^\"\u003e]*\""
412
+ }
413
+ ],
414
414
  "captures": {
415
415
  "1": {
416
416
  "name": "entity.name.tag.doctype.html"
417
417
  }
418
- },
419
- "end": "(?=>)",
420
- "name": "meta.tag.sgml.doctype.html",
421
- "patterns": [
422
- {
423
- "match": "\"[^\">]*\"",
424
- "name": "string.quoted.double.doctype.identifiers-and-DTDs.html"
425
- }
426
- ]
418
+ }
427
419
  }
428
- ]
420
+ ],
421
+ "captures": {
422
+ "0": {
423
+ "name": "punctuation.definition.marko-tag.html"
424
+ }
425
+ }
429
426
  },
430
427
  "expression": {
431
- "comment": "A JavaScript expression",
432
428
  "patterns": [
433
429
  {
434
430
  "include": "#expression-common"
@@ -439,7 +435,6 @@
439
435
  ]
440
436
  },
441
437
  "expression-common": {
442
- "comment": "A JavaScript expression",
443
438
  "patterns": [
444
439
  {
445
440
  "include": "#expression-string-single"
@@ -481,6 +476,7 @@
481
476
  "match": "[.]([\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*)\\b"
482
477
  },
483
478
  {
479
+ "match": "\\b(out)[.](global)\\b",
484
480
  "captures": {
485
481
  "1": {
486
482
  "name": "entity.name.type"
@@ -488,10 +484,10 @@
488
484
  "2": {
489
485
  "name": "entity.name.type"
490
486
  }
491
- },
492
- "match": "\\b(out)[.](global)\\b"
487
+ }
493
488
  },
494
489
  {
490
+ "match": "\\b(this)[.](input|state)\\b",
495
491
  "captures": {
496
492
  "1": {
497
493
  "name": "variable.language.js"
@@ -499,18 +495,18 @@
499
495
  "2": {
500
496
  "name": "entity.name.type"
501
497
  }
502
- },
503
- "match": "\\b(this)[.](input|state)\\b"
498
+ }
504
499
  },
505
500
  {
506
- "match": "\\b(input|state|component|JSON|out)\\b",
507
- "name": "entity.name.type"
501
+ "name": "entity.name.type",
502
+ "match": "\\b(input|state|component|JSON|out)\\b"
508
503
  },
509
504
  {
510
- "match": "\\b(let|var|const)\\b",
511
- "name": "storage.type.var.js"
505
+ "name": "storage.type.var.js",
506
+ "match": "\\b(let|var|const)\\b"
512
507
  },
513
508
  {
509
+ "match": "\\b(require)[.](resolve)\\b",
514
510
  "captures": {
515
511
  "1": {
516
512
  "name": "entity.name.type"
@@ -518,16 +514,15 @@
518
514
  "2": {
519
515
  "name": "entity.name.type"
520
516
  }
521
- },
522
- "match": "\\b(require)[.](resolve)\\b"
517
+ }
523
518
  },
524
519
  {
525
- "match": "\\b(console|JSON|event|window|setTimeout|setInterval|require)\\b",
526
- "name": "entity.name.type"
520
+ "name": "entity.name.type",
521
+ "match": "\\b(console|JSON|event|window|setTimeout|setInterval|require)\\b"
527
522
  },
528
523
  {
529
- "match": "\\b(this|arguments)\\b",
530
- "name": "variable.language.js"
524
+ "name": "variable.language.js",
525
+ "match": "\\b(this|arguments)\\b"
531
526
  },
532
527
  {
533
528
  "include": "#expression-special-class"
@@ -535,6 +530,7 @@
535
530
  ]
536
531
  },
537
532
  "expression-constant": {
533
+ "match": "(true)|(false)|(Infinity)|(NaN)|(null)|(undefined)",
538
534
  "captures": {
539
535
  "1": {
540
536
  "name": "constant.language.boolean.true.js"
@@ -554,75 +550,73 @@
554
550
  "6": {
555
551
  "name": "constant.language.undefined.js"
556
552
  }
557
- },
558
- "match": "(true)|(false)|(Infinity)|(NaN)|(null)|(undefined)"
553
+ }
559
554
  },
560
555
  "expression-group-braces": {
561
- "applyEndPatternLast": 1,
562
556
  "begin": "\\{",
557
+ "end": "\\}",
558
+ "patterns": [
559
+ {
560
+ "include": "#expression"
561
+ }
562
+ ],
563
563
  "beginCaptures": {
564
564
  "0": {
565
565
  "name": "punctuation.section.scope.begin.js"
566
566
  }
567
567
  },
568
- "end": "\\}",
569
568
  "endCaptures": {
570
569
  "0": {
571
570
  "name": "punctuation.section.scope.end.js"
572
571
  }
573
572
  },
573
+ "applyEndPatternLast": true
574
+ },
575
+ "expression-group-brackets": {
576
+ "begin": "\\[",
577
+ "end": "\\]",
574
578
  "patterns": [
575
579
  {
576
580
  "include": "#expression"
577
581
  }
578
- ]
579
- },
580
- "expression-group-brackets": {
581
- "applyEndPatternLast": 1,
582
- "begin": "\\[",
582
+ ],
583
583
  "beginCaptures": {
584
584
  "0": {
585
585
  "name": "meta.brace.square.js"
586
586
  }
587
587
  },
588
- "end": "\\]",
589
588
  "endCaptures": {
590
589
  "0": {
591
590
  "name": "meta.brace.square.js"
592
591
  }
593
592
  },
593
+ "applyEndPatternLast": true
594
+ },
595
+ "expression-group-parens": {
596
+ "begin": "\\(",
597
+ "end": "\\)",
594
598
  "patterns": [
595
599
  {
596
600
  "include": "#expression"
597
601
  }
598
- ]
599
- },
600
- "expression-group-parens": {
601
- "applyEndPatternLast": 1,
602
- "begin": "\\(",
602
+ ],
603
603
  "beginCaptures": {
604
604
  "0": {
605
605
  "name": "meta.brace.round.js"
606
606
  }
607
607
  },
608
- "end": "\\)",
609
608
  "endCaptures": {
610
609
  "0": {
611
610
  "name": "meta.brace.round.js"
612
611
  }
613
612
  },
614
- "patterns": [
615
- {
616
- "include": "#expression"
617
- }
618
- ]
613
+ "applyEndPatternLast": true
619
614
  },
620
615
  "expression-hex": {
621
- "match": "\\b0[xX][0-9A-Fa-f]+\\b",
622
- "name": "constant.numeric.hex.js"
616
+ "name": "constant.numeric.hex.js",
617
+ "match": "\\b0[xX][0-9A-Fa-f]+\\b"
623
618
  },
624
619
  "expression-no-gt": {
625
- "comment": "A JavaScript expression",
626
620
  "patterns": [
627
621
  {
628
622
  "include": "#expression-common"
@@ -630,83 +624,73 @@
630
624
  ]
631
625
  },
632
626
  "expression-numeric": {
633
- "match": "(?x)\n\t\t\t\t(?<!\\w)\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t(?>\n\t\t\t\t\t(\n\t\t\t\t\t\t(0|[1-9][0-9]*)(\\.[0-9]*)?\t\t# 0 or 1 or 1. or 1.0\n\t\t\t\t\t | \\.[0-9]+\t\t\t\t\t\t# .1\n\t\t\t\t\t)\n\t\t\t\t\t([eE][+-]?[0-9]+)?\t\t\t\t\t# Exponent\n\t\t\t\t)\n\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t",
634
- "name": "constant.numeric.js"
627
+ "name": "constant.numeric.js",
628
+ "match": "(?x)\n\t\t\t\t(?\u003c!\\w)\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t(?\u003e\n\t\t\t\t\t(\n\t\t\t\t\t\t(0|[1-9][0-9]*)(\\.[0-9]*)?\t\t# 0 or 1 or 1. or 1.0\n\t\t\t\t\t | \\.[0-9]+\t\t\t\t\t\t# .1\n\t\t\t\t\t)\n\t\t\t\t\t([eE][+-]?[0-9]+)?\t\t\t\t\t# Exponent\n\t\t\t\t)\n\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t"
635
629
  },
636
630
  "expression-operator-binary": {
631
+ "match": "(\\s+|\\b)(===|==|!==|!=|\u003c=|\u003c\u003c|\u0026\u0026|\\|\\||\u003c|\\+=|-=|\\*=|/=|%=|[=+*/%|\u0026~^:])(\\s+|\\b)",
637
632
  "captures": {
638
633
  "2": {
639
634
  "name": "keyword.operator.js"
640
635
  }
641
- },
642
- "match": "(\\s+|\\b)(===|==|!==|!=|<=|<<|&&|\\|\\||<|\\+=|-=|\\*=|/=|%=|[=+*/%|&~^:])(\\s+|\\b)"
636
+ }
643
637
  },
644
638
  "expression-operator-gt": {
639
+ "match": "(\\s+|\\b)(\u003e=|\u003e\u003e|\u003e)(\\s+|\\b)",
645
640
  "captures": {
646
641
  "2": {
647
642
  "name": "keyword.operator.js"
648
643
  }
649
- },
650
- "match": "(\\s+|\\b)(>=|>>|>)(\\s+|\\b)"
644
+ }
651
645
  },
652
646
  "expression-operator-special": {
653
- "match": "(?<!\\.|\\$)\\b(delete|in|instanceof|new|typeof\\s*|void|with|from|to|step)\\b(?!\\$)",
654
- "name": "keyword"
647
+ "name": "keyword",
648
+ "match": "(?\u003c!\\.|\\$)\\b(delete|in|instanceof|new|typeof\\s*|void|with|from|to|step)\\b(?!\\$)"
655
649
  },
656
650
  "expression-operator-unary": {
657
- "match": "\\b(!|\\+\\+)\\b|\\b\\-\\-(?<!\\s)",
658
- "name": "keyword.operator.js"
651
+ "name": "keyword.operator.js",
652
+ "match": "\\b(!|\\+\\+)\\b|\\b\\-\\-(?\u003c!\\s)"
659
653
  },
660
654
  "expression-special-class": {
661
- "match": "(?<!\\.|\\$)\\b(Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError)\\b(?!\\$)",
662
- "name": "support.class.js"
655
+ "name": "support.class.js",
656
+ "match": "(?\u003c!\\.|\\$)\\b(Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError)\\b(?!\\$)"
663
657
  },
664
658
  "expression-string-double": {
659
+ "name": "string.quoted.double.js",
665
660
  "begin": "\"",
661
+ "end": "\"",
662
+ "patterns": [
663
+ {
664
+ "name": "constant.character.escape.js",
665
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"
666
+ },
667
+ {
668
+ "include": "#placeholder-patterns"
669
+ }
670
+ ],
666
671
  "beginCaptures": {
667
672
  "0": {
668
673
  "name": "punctuation.definition.string.begin.js"
669
674
  }
670
675
  },
671
- "end": "\"",
672
676
  "endCaptures": {
673
677
  "0": {
674
678
  "name": "punctuation.definition.string.end.js"
675
679
  }
676
- },
677
- "name": "string.quoted.double.js",
678
- "patterns": [
679
- {
680
- "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)",
681
- "name": "constant.character.escape.js"
682
- },
683
- {
684
- "include": "#placeholder-patterns"
685
- }
686
- ]
680
+ }
687
681
  },
688
682
  "expression-string-escapes": {
689
683
  "patterns": [
690
684
  {
691
- "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",
692
- "name": "constant.character.escape.js"
685
+ "name": "constant.character.escape.js",
686
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"
693
687
  }
694
688
  ]
695
689
  },
696
690
  "expression-string-single": {
691
+ "name": "string.quoted.single.js",
697
692
  "begin": "'",
698
- "beginCaptures": {
699
- "0": {
700
- "name": "punctuation.definition.string.begin.js"
701
- }
702
- },
703
693
  "end": "'",
704
- "endCaptures": {
705
- "0": {
706
- "name": "punctuation.definition.string.end.js"
707
- }
708
- },
709
- "name": "string.quoted.single.js",
710
694
  "patterns": [
711
695
  {
712
696
  "include": "#expression-string-escapes"
@@ -714,35 +698,41 @@
714
698
  {
715
699
  "include": "#placeholder-patterns"
716
700
  }
717
- ]
718
- },
719
- "expression-string-template": {
720
- "begin": "`",
701
+ ],
721
702
  "beginCaptures": {
722
703
  "0": {
723
704
  "name": "punctuation.definition.string.begin.js"
724
705
  }
725
706
  },
726
- "end": "`",
727
707
  "endCaptures": {
728
708
  "0": {
729
709
  "name": "punctuation.definition.string.end.js"
730
710
  }
731
- },
711
+ }
712
+ },
713
+ "expression-string-template": {
732
714
  "name": "string.quoted.other.template.js",
715
+ "begin": "`",
716
+ "end": "`",
733
717
  "patterns": [
734
718
  {
735
719
  "include": "#expression-string-escapes"
736
720
  },
737
721
  {
722
+ "name": "meta.embedded.line.js",
723
+ "contentName": "source.js",
738
724
  "begin": "\\$\\{",
725
+ "end": "(\\})",
726
+ "patterns": [
727
+ {
728
+ "include": "#expression"
729
+ }
730
+ ],
739
731
  "beginCaptures": {
740
732
  "0": {
741
733
  "name": "punctuation.section.embedded.begin.js"
742
734
  }
743
735
  },
744
- "contentName": "source.js",
745
- "end": "(\\})",
746
736
  "endCaptures": {
747
737
  "0": {
748
738
  "name": "punctuation.section.embedded.end.js"
@@ -750,20 +740,24 @@
750
740
  "1": {
751
741
  "name": "source.js"
752
742
  }
753
- },
754
- "name": "meta.embedded.line.js",
755
- "patterns": [
756
- {
757
- "include": "#expression"
758
- }
759
- ]
743
+ }
760
744
  }
761
- ]
745
+ ],
746
+ "beginCaptures": {
747
+ "0": {
748
+ "name": "punctuation.definition.string.begin.js"
749
+ }
750
+ },
751
+ "endCaptures": {
752
+ "0": {
753
+ "name": "punctuation.definition.string.end.js"
754
+ }
755
+ }
762
756
  },
763
757
  "expression-ternary-if": {
758
+ "name": "meta.ternary-if.js",
764
759
  "begin": "\\?",
765
760
  "end": ":",
766
- "name": "meta.ternary-if.js",
767
761
  "patterns": [
768
762
  {
769
763
  "include": "$self"
@@ -771,14 +765,9 @@
771
765
  ]
772
766
  },
773
767
  "html-block-concise": {
768
+ "name": "meta.section.marko-html-block",
774
769
  "begin": "(\\s*)(-[-]+)\\n",
775
- "captures": {
776
- "2": {
777
- "name": "keyword.operator.marko"
778
- }
779
- },
780
770
  "end": "^(\\1\\2|(?!(\\1)))",
781
- "name": "meta.section.marko-html-block",
782
771
  "patterns": [
783
772
  {
784
773
  "include": "#cdata"
@@ -798,16 +787,15 @@
798
787
  {
799
788
  "include": "#placeholder-patterns"
800
789
  }
801
- ]
790
+ ],
791
+ "captures": {
792
+ "2": {
793
+ "name": "keyword.operator.marko"
794
+ }
795
+ }
802
796
  },
803
797
  "html-line-block-concise": {
804
- "applyEndPatternLast": 1,
805
798
  "begin": "\\s*([-][-]+)\\n",
806
- "beginCaptures": {
807
- "1": {
808
- "name": "keyword.operator.marko.blah"
809
- }
810
- },
811
799
  "end": "(?!\\2)|(\\2\\1)",
812
800
  "patterns": [
813
801
  {
@@ -822,15 +810,16 @@
822
810
  {
823
811
  "include": "#placeholder-patterns"
824
812
  }
825
- ]
826
- },
827
- "html-line-concise": {
828
- "begin": "\\s*([-][-]+)",
813
+ ],
829
814
  "beginCaptures": {
830
815
  "1": {
831
- "name": "keyword.operator.marko"
816
+ "name": "keyword.operator.marko.blah"
832
817
  }
833
818
  },
819
+ "applyEndPatternLast": true
820
+ },
821
+ "html-line-concise": {
822
+ "begin": "\\s*([-][-]+)",
834
823
  "end": "(?=\\n)",
835
824
  "patterns": [
836
825
  {
@@ -845,7 +834,12 @@
845
834
  {
846
835
  "include": "#placeholder-patterns"
847
836
  }
848
- ]
837
+ ],
838
+ "beginCaptures": {
839
+ "1": {
840
+ "name": "keyword.operator.marko"
841
+ }
842
+ }
849
843
  },
850
844
  "js": {
851
845
  "patterns": [
@@ -856,64 +850,64 @@
856
850
  "include": "#comment-block"
857
851
  },
858
852
  {
859
- "applyEndPatternLast": 1,
860
853
  "begin": "\\{",
854
+ "end": "\\}",
855
+ "patterns": [
856
+ {
857
+ "include": "#js"
858
+ }
859
+ ],
861
860
  "beginCaptures": {
862
861
  "0": {
863
862
  "name": "punctuation.section.scope.begin.js"
864
863
  }
865
864
  },
866
- "end": "\\}",
867
865
  "endCaptures": {
868
866
  "0": {
869
867
  "name": "punctuation.section.scope.end.js"
870
868
  }
871
869
  },
870
+ "applyEndPatternLast": true
871
+ },
872
+ {
873
+ "begin": "\\(",
874
+ "end": "\\)",
872
875
  "patterns": [
873
876
  {
874
877
  "include": "#js"
875
878
  }
876
- ]
877
- },
878
- {
879
- "applyEndPatternLast": 1,
880
- "begin": "\\(",
879
+ ],
881
880
  "beginCaptures": {
882
881
  "0": {
883
882
  "name": "punctuation.section.scope.begin.js"
884
883
  }
885
884
  },
886
- "end": "\\)",
887
885
  "endCaptures": {
888
886
  "0": {
889
887
  "name": "punctuation.section.scope.end.js"
890
888
  }
891
889
  },
890
+ "applyEndPatternLast": true
891
+ },
892
+ {
893
+ "begin": "\\[",
894
+ "end": "\\]",
892
895
  "patterns": [
893
896
  {
894
897
  "include": "#js"
895
898
  }
896
- ]
897
- },
898
- {
899
- "applyEndPatternLast": 1,
900
- "begin": "\\[",
899
+ ],
901
900
  "beginCaptures": {
902
901
  "0": {
903
902
  "name": "punctuation.section.scope.begin.js"
904
903
  }
905
904
  },
906
- "end": "\\]",
907
905
  "endCaptures": {
908
906
  "0": {
909
907
  "name": "punctuation.section.scope.end.js"
910
908
  }
911
909
  },
912
- "patterns": [
913
- {
914
- "include": "#js"
915
- }
916
- ]
910
+ "applyEndPatternLast": true
917
911
  },
918
912
  {
919
913
  "match": "[.]([\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*)\\b"
@@ -922,31 +916,33 @@
922
916
  "include": "#expression"
923
917
  },
924
918
  {
925
- "match": "\\b(break|case|catch|continue|default|do|else|export|finally|for|if|return|switch|throw|try|while|with|import|from|await|async)\\b",
926
- "name": "keyword.control.js"
919
+ "name": "keyword.control.js",
920
+ "match": "\\b(break|case|catch|continue|default|do|else|export|finally|for|if|return|switch|throw|try|while|with|import|from|await|async)\\b"
927
921
  },
928
922
  {
929
- "match": "(\\s+|\\b)(\\=\\>)(\\s+|\\b)",
930
- "name": "storage.type.function.arrow.js"
923
+ "name": "storage.type.function.arrow.js",
924
+ "match": "(\\s+|\\b)(\\=\\\u003e)(\\s+|\\b)"
931
925
  },
932
926
  {
933
- "match": "\\;",
934
- "name": "punctuation.terminator.statement.js"
927
+ "name": "punctuation.terminator.statement.js",
928
+ "match": "\\;"
935
929
  },
936
930
  {
937
- "match": "\\b(function)\\b",
938
- "name": "storage.type.function.js"
931
+ "name": "storage.type.function.js",
932
+ "match": "\\b(function)\\b"
939
933
  },
940
934
  {
941
- "match": "\\b(class)\\b",
942
- "name": "entity.name.type.class.js"
935
+ "name": "entity.name.type.class.js",
936
+ "match": "\\b(class)\\b"
943
937
  },
944
938
  {
945
- "match": "\\bextends\\b",
946
- "name": "entity.other.inherited-class.js"
939
+ "name": "entity.other.inherited-class.js",
940
+ "match": "\\bextends\\b"
947
941
  },
948
942
  {
943
+ "name": "meta.method.js",
949
944
  "begin": "([\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*)\\s*(\\()(?=(?:[^\\(\\)]*)?\\)\\s*\\{)",
945
+ "end": "\\)",
950
946
  "beginCaptures": {
951
947
  "1": {
952
948
  "name": "entity.name.function.js"
@@ -955,41 +951,33 @@
955
951
  "name": "punctuation.definition.parameters.begin.js"
956
952
  }
957
953
  },
958
- "end": "\\)",
959
954
  "endCaptures": {
960
955
  "0": {
961
956
  "name": "punctuation.definition.parameters.END.js"
962
957
  }
963
- },
964
- "name": "meta.method.js"
958
+ }
965
959
  }
966
960
  ]
967
961
  },
968
962
  "js-code-block": {
969
- "applyEndPatternLast": 1,
970
- "begin": "^\\s*([$])\\s",
971
- "beginCaptures": {
972
- "1": {
973
- "name": "storage.modifier.embedded.js"
974
- }
975
- },
976
963
  "contentName": "source.js.embedded",
964
+ "begin": "^\\s*([$])\\s",
977
965
  "end": "(?=\\n)",
978
966
  "patterns": [
979
967
  {
980
968
  "include": "#js"
981
969
  }
982
- ]
983
- },
984
- "open-tag-end": {
985
- "begin": "(>)",
970
+ ],
986
971
  "beginCaptures": {
987
972
  "1": {
988
- "name": "punctuation.definition.tag.end.open.html"
973
+ "name": "storage.modifier.embedded.js"
989
974
  }
990
975
  },
991
- "comment": "Concise style tag with CSS code.",
992
- "end": "(?=</)",
976
+ "applyEndPatternLast": true
977
+ },
978
+ "open-tag-end": {
979
+ "begin": "(\u003e)",
980
+ "end": "(?=\u003c/)",
993
981
  "patterns": [
994
982
  {
995
983
  "include": "#cdata"
@@ -1009,17 +997,16 @@
1009
997
  {
1010
998
  "include": "#placeholder-patterns"
1011
999
  }
1012
- ]
1013
- },
1014
- "open-tag-end-script": {
1015
- "begin": "(>)",
1000
+ ],
1016
1001
  "beginCaptures": {
1017
1002
  "1": {
1018
1003
  "name": "punctuation.definition.tag.end.open.html"
1019
1004
  }
1020
- },
1021
- "comment": "Concise style tag with CSS code.",
1022
- "end": "(?=</)",
1005
+ }
1006
+ },
1007
+ "open-tag-end-script": {
1008
+ "begin": "(\u003e)",
1009
+ "end": "(?=\u003c/)",
1023
1010
  "patterns": [
1024
1011
  {
1025
1012
  "include": "#placeholder-patterns"
@@ -1027,17 +1014,16 @@
1027
1014
  {
1028
1015
  "include": "#js"
1029
1016
  }
1030
- ]
1031
- },
1032
- "open-tag-end-style": {
1033
- "begin": "(>)",
1017
+ ],
1034
1018
  "beginCaptures": {
1035
1019
  "1": {
1036
1020
  "name": "punctuation.definition.tag.end.open.html"
1037
1021
  }
1038
- },
1039
- "comment": "Concise style tag with CSS code.",
1040
- "end": "(?=</)",
1022
+ }
1023
+ },
1024
+ "open-tag-end-style": {
1025
+ "begin": "(\u003e)",
1026
+ "end": "(?=\u003c/)",
1041
1027
  "patterns": [
1042
1028
  {
1043
1029
  "include": "#placeholder-patterns"
@@ -1045,31 +1031,33 @@
1045
1031
  {
1046
1032
  "include": "source.css"
1047
1033
  }
1048
- ]
1034
+ ],
1035
+ "beginCaptures": {
1036
+ "1": {
1037
+ "name": "punctuation.definition.tag.end.open.html"
1038
+ }
1039
+ }
1049
1040
  },
1050
1041
  "placeholder": {
1051
- "applyEndPatternLast": 1,
1042
+ "name": "meta.section.marko-placeholder",
1052
1043
  "begin": "[$][!]?\\{",
1053
- "captures": {
1054
- "0": {
1055
- "name": "keyword.operator.marko"
1056
- }
1057
- },
1058
- "comment": "${ } placeholder note: should be punctuation.section.embedded.js",
1059
1044
  "end": "\\}",
1060
- "name": "meta.section.marko-placeholder",
1061
1045
  "patterns": [
1062
1046
  {
1063
1047
  "include": "#expression"
1064
1048
  }
1065
- ]
1049
+ ],
1050
+ "captures": {
1051
+ "0": {
1052
+ "name": "keyword.operator.marko"
1053
+ }
1054
+ },
1055
+ "applyEndPatternLast": true
1066
1056
  },
1067
1057
  "placeholder-escaped": {
1068
- "comment": "\\${",
1069
1058
  "match": "\\\\[$][!]?[{]"
1070
1059
  },
1071
1060
  "placeholder-escaped-escaped": {
1072
- "comment": "\\\\${",
1073
1061
  "match": "\\\\\\\\(?=[$][!]?[{])"
1074
1062
  },
1075
1063
  "placeholder-patterns": {
@@ -1086,24 +1074,29 @@
1086
1074
  ]
1087
1075
  },
1088
1076
  "scriptlet": {
1089
- "applyEndPatternLast": 1,
1090
- "begin": "<%",
1077
+ "begin": "\u003c%",
1078
+ "end": "%\u003e",
1079
+ "patterns": [
1080
+ {
1081
+ "include": "#js"
1082
+ }
1083
+ ],
1091
1084
  "captures": {
1092
1085
  "0": {
1093
1086
  "name": "keyword.operator.scriptlet.marko"
1094
1087
  }
1095
1088
  },
1096
- "comment": "Scriptlet block",
1097
- "end": "%>",
1089
+ "applyEndPatternLast": true
1090
+ },
1091
+ "special-js-tags": {
1092
+ "contentName": "source.js.embedded",
1093
+ "begin": "^\\s*(?:(class)|(static)|(import))\\s",
1094
+ "end": "(?=\\n)",
1098
1095
  "patterns": [
1099
1096
  {
1100
1097
  "include": "#js"
1101
1098
  }
1102
- ]
1103
- },
1104
- "special-js-tags": {
1105
- "applyEndPatternLast": 1,
1106
- "begin": "^\\s*(?:(class)|(static)|(import))\\s",
1099
+ ],
1107
1100
  "beginCaptures": {
1108
1101
  "1": {
1109
1102
  "name": "storage.type.class.js"
@@ -1115,13 +1108,7 @@
1115
1108
  "name": "storage.modifier.marko"
1116
1109
  }
1117
1110
  },
1118
- "contentName": "source.js.embedded",
1119
- "end": "(?=\\n)",
1120
- "patterns": [
1121
- {
1122
- "include": "#js"
1123
- }
1124
- ]
1111
+ "applyEndPatternLast": true
1125
1112
  },
1126
1113
  "tag-concise": {
1127
1114
  "patterns": [
@@ -1134,7 +1121,6 @@
1134
1121
  ]
1135
1122
  },
1136
1123
  "tag-html": {
1137
- "comment": "HTML tag within the non-concise syntax",
1138
1124
  "patterns": [
1139
1125
  {
1140
1126
  "include": "#tag-name-open-tag-only-html"
@@ -1160,8 +1146,19 @@
1160
1146
  ]
1161
1147
  },
1162
1148
  "tag-name-concise": {
1163
- "applyEndPatternLast": 1,
1164
1149
  "begin": "^\\s*(([a-zA-Z0-9_-]+)([.#][a-zA-Z0-9_.#-]*)?)(?=(\\s+(?![=])|$|\\())",
1150
+ "end": "(?=\\n)",
1151
+ "patterns": [
1152
+ {
1153
+ "include": "#html-line-block-concise"
1154
+ },
1155
+ {
1156
+ "include": "#html-line-concise"
1157
+ },
1158
+ {
1159
+ "include": "#attr-stuff-concise"
1160
+ }
1161
+ ],
1165
1162
  "beginCaptures": {
1166
1163
  "1": {
1167
1164
  "name": "entity.name.tag.concise"
@@ -1170,41 +1167,37 @@
1170
1167
  "name": "entity.other.attribute-name.shorthand"
1171
1168
  }
1172
1169
  },
1173
- "comment": "A concise tag name",
1170
+ "applyEndPatternLast": true
1171
+ },
1172
+ "tag-name-custom-concise": {
1173
+ "begin": "^\\s*(for|if|unless|else-if|else|var|assign|macro|invoke|include|app|await|[a-zA-Z0-9_]+([:-])[a-zA-Z0-9_:-]*|[@][a-zA-Z0-9_-]+)(?=(\\s+(?![=])|$|[(]))",
1174
1174
  "end": "(?=\\n)",
1175
1175
  "patterns": [
1176
- {
1177
- "include": "#html-line-block-concise"
1178
- },
1179
1176
  {
1180
1177
  "include": "#html-line-concise"
1181
1178
  },
1182
1179
  {
1183
1180
  "include": "#attr-stuff-concise"
1184
1181
  }
1185
- ]
1186
- },
1187
- "tag-name-custom-concise": {
1188
- "applyEndPatternLast": 1,
1189
- "begin": "^\\s*(for|if|unless|else-if|else|var|assign|macro|invoke|include|app|await|[a-zA-Z0-9_]+([:-])[a-zA-Z0-9_:-]*|[@][a-zA-Z0-9_-]+)(?=(\\s+(?![=])|$|[(]))",
1182
+ ],
1190
1183
  "beginCaptures": {
1191
1184
  "1": {
1192
1185
  "name": "support.function.marko-tag.concise"
1193
1186
  }
1194
1187
  },
1195
- "comment": "A concise custom tag name",
1196
- "end": "(?=\\n)",
1188
+ "applyEndPatternLast": true
1189
+ },
1190
+ "tag-name-custom-html": {
1191
+ "begin": "(\u003c)(for|if|unless|else-if|else|var|assign|macro|invoke|include|app|await|[a-zA-Z0-9_]+[-:][a-zA-Z0-9\\-_:]*|[@][a-zA-Z0-9_-]+)(?=(\u003e|/\u003e|\\s|\\())",
1192
+ "end": "(\u003c/)(\\2)?(\u003e)|(/\u003e)",
1197
1193
  "patterns": [
1198
1194
  {
1199
- "include": "#html-line-concise"
1195
+ "include": "#attr-stuff-html"
1200
1196
  },
1201
1197
  {
1202
- "include": "#attr-stuff-concise"
1198
+ "include": "#open-tag-end"
1203
1199
  }
1204
- ]
1205
- },
1206
- "tag-name-custom-html": {
1207
- "begin": "(<)(for|if|unless|else-if|else|var|assign|macro|invoke|include|app|await|[a-zA-Z0-9_]+[-:][a-zA-Z0-9\\-_:]*|[@][a-zA-Z0-9_-]+)(?=(>|/>|\\s|\\())",
1200
+ ],
1208
1201
  "beginCaptures": {
1209
1202
  "1": {
1210
1203
  "name": "punctuation.definition.tag.begin.open.html"
@@ -1213,8 +1206,6 @@
1213
1206
  "name": "support.function.marko-tag.open.html"
1214
1207
  }
1215
1208
  },
1216
- "comment": "The beginning of a custom/special HTML tag",
1217
- "end": "(</)(\\2)?(>)|(/>)",
1218
1209
  "endCaptures": {
1219
1210
  "1": {
1220
1211
  "name": "punctuation.definition.tag.begin.close.html"
@@ -1228,7 +1219,11 @@
1228
1219
  "4": {
1229
1220
  "name": "punctuation.definition.tag.end.self-close.html"
1230
1221
  }
1231
- },
1222
+ }
1223
+ },
1224
+ "tag-name-html": {
1225
+ "begin": "(\u003c)([a-zA-Z0-9]+)(?=(\u003e|/\u003e|\\s|\\())",
1226
+ "end": "(\u003c/)(\\2)?(\u003e)|(/\u003e)",
1232
1227
  "patterns": [
1233
1228
  {
1234
1229
  "include": "#attr-stuff-html"
@@ -1236,10 +1231,7 @@
1236
1231
  {
1237
1232
  "include": "#open-tag-end"
1238
1233
  }
1239
- ]
1240
- },
1241
- "tag-name-html": {
1242
- "begin": "(<)([a-zA-Z0-9]+)(?=(>|/>|\\s|\\())",
1234
+ ],
1243
1235
  "beginCaptures": {
1244
1236
  "1": {
1245
1237
  "name": "punctuation.definition.tag.begin.open.html"
@@ -1248,8 +1240,6 @@
1248
1240
  "name": "entity.name.tag.open.html"
1249
1241
  }
1250
1242
  },
1251
- "comment": "The beginning of a regular HTML tag in non-concise mode",
1252
- "end": "(</)(\\2)?(>)|(/>)",
1253
1243
  "endCaptures": {
1254
1244
  "1": {
1255
1245
  "name": "punctuation.definition.tag.begin.close.html"
@@ -1263,18 +1253,16 @@
1263
1253
  "4": {
1264
1254
  "name": "punctuation.definition.tag.end.self-close.html"
1265
1255
  }
1266
- },
1256
+ }
1257
+ },
1258
+ "tag-name-open-tag-only-html": {
1259
+ "begin": "(\u003c)(base|br|col|hr|embed|img|input|keygen|link|meta|param|source|track|wbr|lasso-img)(?=(\u003e|/\u003e|\\s|\\())",
1260
+ "end": "(\u003e|/\u003e)",
1267
1261
  "patterns": [
1268
1262
  {
1269
1263
  "include": "#attr-stuff-html"
1270
- },
1271
- {
1272
- "include": "#open-tag-end"
1273
1264
  }
1274
- ]
1275
- },
1276
- "tag-name-open-tag-only-html": {
1277
- "begin": "(<)(base|br|col|hr|embed|img|input|keygen|link|meta|param|source|track|wbr|lasso-img)(?=(>|/>|\\s|\\())",
1265
+ ],
1278
1266
  "beginCaptures": {
1279
1267
  "1": {
1280
1268
  "name": "punctuation.definition.tag.begin.open.html"
@@ -1283,21 +1271,23 @@
1283
1271
  "name": "entity.name.tag.open.html"
1284
1272
  }
1285
1273
  },
1286
- "comment": "HTML tags that are open tag only",
1287
- "end": "(>|/>)",
1288
1274
  "endCaptures": {
1289
1275
  "1": {
1290
1276
  "name": "punctuation.definition.tag.end.self-close.html"
1291
1277
  }
1292
- },
1278
+ }
1279
+ },
1280
+ "tag-name-script-html": {
1281
+ "begin": "(\u003c)(script)(?=(\u003e|/\u003e|\\s|\\())",
1282
+ "end": "(\u003c/)(script)?(\u003e)|/\u003e",
1293
1283
  "patterns": [
1294
1284
  {
1295
1285
  "include": "#attr-stuff-html"
1286
+ },
1287
+ {
1288
+ "include": "#open-tag-end-script"
1296
1289
  }
1297
- ]
1298
- },
1299
- "tag-name-script-html": {
1300
- "begin": "(<)(script)(?=(>|/>|\\s|\\())",
1290
+ ],
1301
1291
  "beginCaptures": {
1302
1292
  "1": {
1303
1293
  "name": "punctuation.definition.tag.begin.open.html"
@@ -1306,8 +1296,6 @@
1306
1296
  "name": "entity.name.tag.script.open.html"
1307
1297
  }
1308
1298
  },
1309
- "comment": "HTML style tag",
1310
- "end": "(</)(script)?(>)|/>",
1311
1299
  "endCaptures": {
1312
1300
  "1": {
1313
1301
  "name": "punctuation.definition.tag.begin.close.html"
@@ -1321,18 +1309,19 @@
1321
1309
  "4": {
1322
1310
  "name": "punctuation.definition.tag.end.self-close.html"
1323
1311
  }
1324
- },
1312
+ }
1313
+ },
1314
+ "tag-name-shorthand-html": {
1315
+ "begin": "(\u003c)(([a-zA-Z0-9_-]+)([#.][a-zA-Z0-9_#.:-]+))(?=(\u003e|/\u003e|\\s+(?![=])|\\())",
1316
+ "end": "(\u003c/)((\\3)(\\4)?)?(\u003e)|(/\u003e)",
1325
1317
  "patterns": [
1326
1318
  {
1327
1319
  "include": "#attr-stuff-html"
1328
1320
  },
1329
1321
  {
1330
- "include": "#open-tag-end-script"
1322
+ "include": "#open-tag-end"
1331
1323
  }
1332
- ]
1333
- },
1334
- "tag-name-shorthand-html": {
1335
- "begin": "(<)(([a-zA-Z0-9_-]+)([#.][a-zA-Z0-9_#.:-]+))(?=(>|/>|\\s+(?![=])|\\())",
1324
+ ],
1336
1325
  "beginCaptures": {
1337
1326
  "1": {
1338
1327
  "name": "punctuation.definition.tag.begin.open.html"
@@ -1344,8 +1333,6 @@
1344
1333
  "name": "entity.other.attribute-name.shorthand"
1345
1334
  }
1346
1335
  },
1347
- "comment": "HTML tag with shorthand ID/class parts",
1348
- "end": "(</)((\\3)(\\4)?)?(>)|(/>)",
1349
1336
  "endCaptures": {
1350
1337
  "1": {
1351
1338
  "name": "punctuation.definition.tag.begin.close.html"
@@ -1362,7 +1349,11 @@
1362
1349
  "6": {
1363
1350
  "name": "punctuation.definition.tag.end.self-close.html"
1364
1351
  }
1365
- },
1352
+ }
1353
+ },
1354
+ "tag-name-shorthand-no-tag-name-html": {
1355
+ "begin": "(\u003c)([#.][a-zA-Z0-9_#.:-]+)(?=(\u003e|/\u003e|\\s|\\())",
1356
+ "end": "(\u003c/)(\\2|div)(\u003e)|(/\u003e)",
1366
1357
  "patterns": [
1367
1358
  {
1368
1359
  "include": "#attr-stuff-html"
@@ -1370,10 +1361,7 @@
1370
1361
  {
1371
1362
  "include": "#open-tag-end"
1372
1363
  }
1373
- ]
1374
- },
1375
- "tag-name-shorthand-no-tag-name-html": {
1376
- "begin": "(<)([#.][a-zA-Z0-9_#.:-]+)(?=(>|/>|\\s|\\())",
1364
+ ],
1377
1365
  "beginCaptures": {
1378
1366
  "1": {
1379
1367
  "name": "punctuation.definition.tag.begin.open.html"
@@ -1382,8 +1370,6 @@
1382
1370
  "name": "entity.other.attribute-name.shorthand"
1383
1371
  }
1384
1372
  },
1385
- "comment": "HTML style tag",
1386
- "end": "(</)(\\2|div)(>)|(/>)",
1387
1373
  "endCaptures": {
1388
1374
  "1": {
1389
1375
  "name": "punctuation.definition.tag.begin.close.html"
@@ -1397,18 +1383,19 @@
1397
1383
  "4": {
1398
1384
  "name": "punctuation.definition.tag.end.self-close.html"
1399
1385
  }
1400
- },
1386
+ }
1387
+ },
1388
+ "tag-name-style-html": {
1389
+ "begin": "(\u003c)(style)(?=(\u003e|/\u003e|\\s|\\())",
1390
+ "end": "(\u003c/)(style)?(\u003e)|(/\u003e)",
1401
1391
  "patterns": [
1402
1392
  {
1403
1393
  "include": "#attr-stuff-html"
1404
1394
  },
1405
1395
  {
1406
- "include": "#open-tag-end"
1396
+ "include": "#open-tag-end-style"
1407
1397
  }
1408
- ]
1409
- },
1410
- "tag-name-style-html": {
1411
- "begin": "(<)(style)(?=(>|/>|\\s|\\())",
1398
+ ],
1412
1399
  "beginCaptures": {
1413
1400
  "1": {
1414
1401
  "name": "punctuation.definition.tag.begin.open.html"
@@ -1417,8 +1404,6 @@
1417
1404
  "name": "entity.name.tag.style.open.html"
1418
1405
  }
1419
1406
  },
1420
- "comment": "HTML style tag",
1421
- "end": "(</)(style)?(>)|(/>)",
1422
1407
  "endCaptures": {
1423
1408
  "1": {
1424
1409
  "name": "punctuation.definition.tag.begin.close.html"
@@ -1432,19 +1417,10 @@
1432
1417
  "4": {
1433
1418
  "name": "punctuation.definition.tag.end.self-close.html"
1434
1419
  }
1435
- },
1436
- "patterns": [
1437
- {
1438
- "include": "#attr-stuff-html"
1439
- },
1440
- {
1441
- "include": "#open-tag-end-style"
1442
- }
1443
- ]
1420
+ }
1444
1421
  },
1445
1422
  "tag-script-body-block": {
1446
1423
  "begin": "(\\s*-[-]+)",
1447
- "comment": "HTML script tag with nested JavaScript code",
1448
1424
  "end": "(\\1)[.]*$",
1449
1425
  "patterns": [
1450
1426
  {
@@ -1454,7 +1430,6 @@
1454
1430
  },
1455
1431
  "tag-script-body-line": {
1456
1432
  "begin": "\\s+-[-]+\\s",
1457
- "comment": "HTML script tag with nested JavaScript code",
1458
1433
  "end": "(?=\\n)",
1459
1434
  "patterns": [
1460
1435
  {
@@ -1463,14 +1438,7 @@
1463
1438
  ]
1464
1439
  },
1465
1440
  "tag-script-concise": {
1466
- "applyEndPatternLast": 1,
1467
1441
  "begin": "^(\\s*)(script)(?=(\\s|$|\\())",
1468
- "beginCaptures": {
1469
- "2": {
1470
- "name": "entity.name.tag.script.marko.concise"
1471
- }
1472
- },
1473
- "comment": "HTML script tag with nested JavaScript code",
1474
1442
  "end": "^(?!(\\1\\s)|\\s*$)",
1475
1443
  "patterns": [
1476
1444
  {
@@ -1482,11 +1450,16 @@
1482
1450
  {
1483
1451
  "include": "#tag-script-body-block"
1484
1452
  }
1485
- ]
1453
+ ],
1454
+ "beginCaptures": {
1455
+ "2": {
1456
+ "name": "entity.name.tag.script.marko.concise"
1457
+ }
1458
+ },
1459
+ "applyEndPatternLast": true
1486
1460
  },
1487
1461
  "tag-style-body-block": {
1488
1462
  "begin": "(\\s*[-][-]+)",
1489
- "comment": "HTML script tag with nested CSS code",
1490
1463
  "end": "(\\1)[.]*$",
1491
1464
  "patterns": [
1492
1465
  {
@@ -1496,7 +1469,6 @@
1496
1469
  },
1497
1470
  "tag-style-body-line": {
1498
1471
  "begin": "\\s[-][-]+\\s",
1499
- "comment": "HTML style tag with nested CSS code",
1500
1472
  "end": "(?=\\n)",
1501
1473
  "patterns": [
1502
1474
  {
@@ -1505,16 +1477,9 @@
1505
1477
  ]
1506
1478
  },
1507
1479
  "tag-style-concise": {
1508
- "applyEndPatternLast": 1,
1480
+ "name": "meta.tag.other.style",
1509
1481
  "begin": "^(\\s*)(style)(?=(\\s|$|\\())",
1510
- "beginCaptures": {
1511
- "2": {
1512
- "name": "entity.name.tag.style.marko.concise"
1513
- }
1514
- },
1515
- "comment": "style tag with CSS code.",
1516
1482
  "end": "^(?!(\\1\\s)|\\s*$)",
1517
- "name": "meta.tag.other.style",
1518
1483
  "patterns": [
1519
1484
  {
1520
1485
  "include": "#attr-stuff-concise"
@@ -1525,9 +1490,13 @@
1525
1490
  {
1526
1491
  "include": "#tag-style-body-block"
1527
1492
  }
1528
- ]
1493
+ ],
1494
+ "beginCaptures": {
1495
+ "2": {
1496
+ "name": "entity.name.tag.style.marko.concise"
1497
+ }
1498
+ },
1499
+ "applyEndPatternLast": true
1529
1500
  }
1530
- },
1531
- "scopeName": "text.marko",
1532
- "uuid": "BC8F1816-9AB4-4571-97E8-787F6C925E07"
1533
- }
1501
+ }
1502
+ }