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,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
+ }