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,49 +1,43 @@
1
1
  {
2
- "fileTypes": [
3
- "ssp"
4
- ],
5
- "foldingStartMarker": "(?x)\n\t\t(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\\b.*?>\n\t\t|<!--(?!.*-->)\n\t\t|\\{\\s*($|\\?>\\s*$|//|/\\*(.*\\*/\\s*$|(?!.*?\\*/)))\n\t\t)",
6
- "foldingStopMarker": "(?x)\n\t\t(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>\n\t\t|^\\s*-->\n\t\t|(^|\\s)\\}\n\t\t)",
7
2
  "name": "Ssp (Scalate)",
3
+ "scopeName": "text.html.ssp",
8
4
  "patterns": [
9
5
  {
10
- "begin": "<%+#",
6
+ "name": "comment.block.ssp",
7
+ "begin": "\u003c%+#",
8
+ "end": "%\u003e",
11
9
  "captures": {
12
10
  "0": {
13
11
  "name": "punctuation.definition.comment.ssp"
14
12
  }
15
- },
16
- "end": "%>",
17
- "name": "comment.block.ssp"
13
+ }
18
14
  },
19
15
  {
20
- "begin": "<%+(?!>)[-=]?",
21
- "captures": {
22
- "0": {
23
- "name": "punctuation.section.embedded.scala"
24
- }
25
- },
26
- "end": "-?%>",
27
16
  "name": "source.scala.embedded.html",
17
+ "begin": "\u003c%+(?!\u003e)[-=]?",
18
+ "end": "-?%\u003e",
28
19
  "patterns": [
29
20
  {
21
+ "name": "comment.line.number-sign.scala",
22
+ "match": "(#).*?(?=-?%\u003e)",
30
23
  "captures": {
31
24
  "1": {
32
25
  "name": "punctuation.definition.comment.scala"
33
26
  }
34
- },
35
- "match": "(#).*?(?=-?%>)",
36
- "name": "comment.line.number-sign.scala"
27
+ }
37
28
  },
38
29
  {
39
30
  "include": "source.scala"
40
31
  }
41
- ]
32
+ ],
33
+ "captures": {
34
+ "0": {
35
+ "name": "punctuation.section.embedded.scala"
36
+ }
37
+ }
42
38
  },
43
39
  {
44
40
  "include": "text.html.basic"
45
41
  }
46
- ],
47
- "scopeName": "text.html.ssp",
48
- "uuid": "1869C69F-D37C-4F69-86F3-9D7213CB57C7"
49
- }
42
+ ]
43
+ }
@@ -1,21 +1,26 @@
1
1
  {
2
- "fileTypes": [
3
- "tcl",
4
- "adp",
5
- "inc"
6
- ],
7
- "keyEquivalent": "^~T",
8
2
  "name": "HTML (Tcl)",
3
+ "scopeName": "text.html.tcl",
9
4
  "patterns": [
10
5
  {
11
- "begin": "<%",
6
+ "name": "meta.embedded.line.tcl",
7
+ "contentName": "source.tcl",
8
+ "begin": "\u003c%",
9
+ "end": "(%)\u003e",
10
+ "patterns": [
11
+ {
12
+ "name": "keyword.other.tcl.aolserver",
13
+ "match": "(env|ns_adp_argc|ns_adp_argv|ns_adp_bind_args|ns_adp_break|ns_adp_debug|ns_adp_dir|ns_adp_dump|ns_adp_eval|ns_adp_exception|ns_adp_include|ns_adp_parse|ns_adp_puts|ns_adp_registertag|ns_adp_return|ns_adp_stream|ns_adp_tell|ns_adp_trunc|ns_atclose|ns_atexit|ns_atshutdown|ns_atsignal|ns_cache_flush|ns_cache_names|ns_cache_size|ns_cache_stats|ns_checkurl|ns_chmod|ns_cond|ns_config|ns_configsection|ns_configsections|ns_conn|ns_conncptofp|ns_connsendfp|ns_cp|ns_cpfp|ns_critsec|ns_crypt|ns_db|ns_dbconfigpath|ns_dberror|ns_dbformvalue|ns_dbformvalueput|ns_dbquotename|ns_dbquotevalue|ns_deleterow|ns_eval|ns_event|ns_ext|ns_findrowbyid|ns_fmttime|ns_ftruncate|ns_getcsv|ns_getform|ns_get_multipart_formdata|ns_geturl|ns_gifsize|ns_gmtime|ns_guesstype|ns_hostbyaddr|ns_hrefs|ns_httpget|ns_httpopen|ns_httptime|ns_info|ns_insertrow|ns_jpegsize|ns_kill|ns_library|ns_link|ns_localsqltimestamp|ns_localtime|ns_log|ns_logroll|ns_markfordelete|ns_mkdir|ns_mktemp|ns_modulepath|ns_mutex|ns_normalizepath|ns_param|ns_parseheader|ns_parsehttptime|ns_parsequery|ns_passwordcheck|ns_perm|ns_permpasswd|ns_pooldescription|ns_puts|ns_queryexists|ns_queryget|ns_querygetall|ns_quotehtml|ns_rand|ns_register_adptag|ns_register_filter|ns_register_proc|ns_register_trace|ns_rename|ns_requestauthorize|ns_respond|ns_return|ns_returnredirect|ns_rmdir|ns_rollfile|ns_rwlock|ns_schedule_daily|ns_schedule_proc|ns_schedule_weekly|ns_section|ns_sema|ns_sendmail|ns_server|ns_set|ns_setexpires|ns_set_precision|ns_share|ns_shutdown|ns_sleep|ns_sockaccept|ns_sockblocking|ns_sockcallback|ns_sockcheck|ns_socketpair|ns_socklistencallback|ns_socknonblocking|ns_socknread|ns_sockopen|ns_sockselect|ns_striphtml|ns_symlink|ns_thread|ns_time|ns_tmpnam|ns_truncate|ns_unlink|ns_unschedule_proc|ns_url2file|ns_urldecode|ns_urlencode|ns_uudecode|ns_uuencode|ns_write|ns_writecontent|ns_writefp|nsv_incr)\\b"
14
+ },
15
+ {
16
+ "include": "source.tcl"
17
+ }
18
+ ],
12
19
  "beginCaptures": {
13
20
  "0": {
14
21
  "name": "punctuation.section.embedded.begin.tcl"
15
22
  }
16
23
  },
17
- "contentName": "source.tcl",
18
- "end": "(%)>",
19
24
  "endCaptures": {
20
25
  "0": {
21
26
  "name": "punctuation.section.embedded.end.tcl"
@@ -23,22 +28,10 @@
23
28
  "1": {
24
29
  "name": "source.tcl"
25
30
  }
26
- },
27
- "name": "meta.embedded.line.tcl",
28
- "patterns": [
29
- {
30
- "match": "(env|ns_adp_argc|ns_adp_argv|ns_adp_bind_args|ns_adp_break|ns_adp_debug|ns_adp_dir|ns_adp_dump|ns_adp_eval|ns_adp_exception|ns_adp_include|ns_adp_parse|ns_adp_puts|ns_adp_registertag|ns_adp_return|ns_adp_stream|ns_adp_tell|ns_adp_trunc|ns_atclose|ns_atexit|ns_atshutdown|ns_atsignal|ns_cache_flush|ns_cache_names|ns_cache_size|ns_cache_stats|ns_checkurl|ns_chmod|ns_cond|ns_config|ns_configsection|ns_configsections|ns_conn|ns_conncptofp|ns_connsendfp|ns_cp|ns_cpfp|ns_critsec|ns_crypt|ns_db|ns_dbconfigpath|ns_dberror|ns_dbformvalue|ns_dbformvalueput|ns_dbquotename|ns_dbquotevalue|ns_deleterow|ns_eval|ns_event|ns_ext|ns_findrowbyid|ns_fmttime|ns_ftruncate|ns_getcsv|ns_getform|ns_get_multipart_formdata|ns_geturl|ns_gifsize|ns_gmtime|ns_guesstype|ns_hostbyaddr|ns_hrefs|ns_httpget|ns_httpopen|ns_httptime|ns_info|ns_insertrow|ns_jpegsize|ns_kill|ns_library|ns_link|ns_localsqltimestamp|ns_localtime|ns_log|ns_logroll|ns_markfordelete|ns_mkdir|ns_mktemp|ns_modulepath|ns_mutex|ns_normalizepath|ns_param|ns_parseheader|ns_parsehttptime|ns_parsequery|ns_passwordcheck|ns_perm|ns_permpasswd|ns_pooldescription|ns_puts|ns_queryexists|ns_queryget|ns_querygetall|ns_quotehtml|ns_rand|ns_register_adptag|ns_register_filter|ns_register_proc|ns_register_trace|ns_rename|ns_requestauthorize|ns_respond|ns_return|ns_returnredirect|ns_rmdir|ns_rollfile|ns_rwlock|ns_schedule_daily|ns_schedule_proc|ns_schedule_weekly|ns_section|ns_sema|ns_sendmail|ns_server|ns_set|ns_setexpires|ns_set_precision|ns_share|ns_shutdown|ns_sleep|ns_sockaccept|ns_sockblocking|ns_sockcallback|ns_sockcheck|ns_socketpair|ns_socklistencallback|ns_socknonblocking|ns_socknread|ns_sockopen|ns_sockselect|ns_striphtml|ns_symlink|ns_thread|ns_time|ns_tmpnam|ns_truncate|ns_unlink|ns_unschedule_proc|ns_url2file|ns_urldecode|ns_urlencode|ns_uudecode|ns_uuencode|ns_write|ns_writecontent|ns_writefp|nsv_incr)\\b",
31
- "name": "keyword.other.tcl.aolserver"
32
- },
33
- {
34
- "include": "source.tcl"
35
- }
36
- ]
31
+ }
37
32
  },
38
33
  {
39
34
  "include": "text.html.basic"
40
35
  }
41
- ],
42
- "scopeName": "text.html.tcl",
43
- "uuid": "42F00A35-6D17-44B8-8C9B-438F9FE9E241"
44
- }
36
+ ]
37
+ }
@@ -1,13 +1,16 @@
1
1
  {
2
- "fileTypes": [
3
- "twig",
4
- "html.twig"
5
- ],
6
- "keyEquivalent": "^~T",
7
2
  "name": "HTML (Twig)",
3
+ "scopeName": "text.html.twig",
8
4
  "patterns": [
9
5
  {
10
- "begin": "(<)([a-zA-Z0-9:]++)(?=[^>]*></\\2>)",
6
+ "name": "meta.tag.any.html",
7
+ "begin": "(\u003c)([a-zA-Z0-9:]++)(?=[^\u003e]*\u003e\u003c/\\2\u003e)",
8
+ "end": "(\u003e(\u003c)/)(\\2)(\u003e)",
9
+ "patterns": [
10
+ {
11
+ "include": "#tag-stuff"
12
+ }
13
+ ],
11
14
  "beginCaptures": {
12
15
  "1": {
13
16
  "name": "punctuation.definition.tag.html"
@@ -16,7 +19,6 @@
16
19
  "name": "entity.name.tag.html"
17
20
  }
18
21
  },
19
- "end": "(>(<)/)(\\2)(>)",
20
22
  "endCaptures": {
21
23
  "1": {
22
24
  "name": "punctuation.definition.tag.html"
@@ -30,26 +32,12 @@
30
32
  "4": {
31
33
  "name": "punctuation.definition.tag.html"
32
34
  }
33
- },
34
- "name": "meta.tag.any.html",
35
- "patterns": [
36
- {
37
- "include": "#tag-stuff"
38
- }
39
- ]
35
+ }
40
36
  },
41
37
  {
42
- "begin": "(<\\?)(xml)",
43
- "captures": {
44
- "1": {
45
- "name": "punctuation.definition.tag.html"
46
- },
47
- "2": {
48
- "name": "entity.name.tag.xml.html"
49
- }
50
- },
51
- "end": "(\\?>)",
52
38
  "name": "meta.tag.preprocessor.xml.html",
39
+ "begin": "(\u003c\\?)(xml)",
40
+ "end": "(\\?\u003e)",
53
41
  "patterns": [
54
42
  {
55
43
  "include": "#tag-generic-attribute"
@@ -60,94 +48,86 @@
60
48
  {
61
49
  "include": "#string-single-quoted"
62
50
  }
63
- ]
64
- },
65
- {
66
- "begin": "<!--",
51
+ ],
67
52
  "captures": {
68
- "0": {
69
- "name": "punctuation.definition.comment.html"
53
+ "1": {
54
+ "name": "punctuation.definition.tag.html"
55
+ },
56
+ "2": {
57
+ "name": "entity.name.tag.xml.html"
70
58
  }
71
- },
72
- "end": "--\\s*>",
59
+ }
60
+ },
61
+ {
73
62
  "name": "comment.block.html",
63
+ "begin": "\u003c!--",
64
+ "end": "--\\s*\u003e",
74
65
  "patterns": [
75
66
  {
76
- "match": "--",
77
- "name": "invalid.illegal.bad-comments-or-CDATA.html"
67
+ "name": "invalid.illegal.bad-comments-or-CDATA.html",
68
+ "match": "--"
78
69
  },
79
70
  {
80
71
  "include": "#embedded-code"
81
72
  }
82
- ]
83
- },
84
- {
85
- "begin": "<!",
73
+ ],
86
74
  "captures": {
87
75
  "0": {
88
- "name": "punctuation.definition.tag.html"
76
+ "name": "punctuation.definition.comment.html"
89
77
  }
90
- },
91
- "end": ">",
78
+ }
79
+ },
80
+ {
92
81
  "name": "meta.tag.sgml.html",
82
+ "begin": "\u003c!",
83
+ "end": "\u003e",
93
84
  "patterns": [
94
85
  {
86
+ "name": "meta.tag.sgml.doctype.html",
95
87
  "begin": "(?i:DOCTYPE)",
88
+ "end": "(?=\u003e)",
89
+ "patterns": [
90
+ {
91
+ "name": "string.quoted.double.doctype.identifiers-and-DTDs.html",
92
+ "match": "\"[^\"\u003e]*\""
93
+ }
94
+ ],
96
95
  "captures": {
97
96
  "1": {
98
97
  "name": "entity.name.tag.doctype.html"
99
98
  }
100
- },
101
- "end": "(?=>)",
102
- "name": "meta.tag.sgml.doctype.html",
103
- "patterns": [
104
- {
105
- "match": "\"[^\">]*\"",
106
- "name": "string.quoted.double.doctype.identifiers-and-DTDs.html"
107
- }
108
- ]
99
+ }
109
100
  },
110
101
  {
102
+ "name": "constant.other.inline-data.html",
111
103
  "begin": "\\[CDATA\\[",
112
- "end": "]](?=>)",
113
- "name": "constant.other.inline-data.html"
104
+ "end": "]](?=\u003e)"
114
105
  },
115
106
  {
116
- "match": "(\\s*)(?!--|>)\\S(\\s*)",
117
- "name": "invalid.illegal.bad-comments-or-CDATA.html"
107
+ "name": "invalid.illegal.bad-comments-or-CDATA.html",
108
+ "match": "(\\s*)(?!--|\u003e)\\S(\\s*)"
118
109
  }
119
- ]
110
+ ],
111
+ "captures": {
112
+ "0": {
113
+ "name": "punctuation.definition.tag.html"
114
+ }
115
+ }
120
116
  },
121
117
  {
122
118
  "include": "#embedded-code"
123
119
  },
124
120
  {
125
- "begin": "(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)",
126
- "captures": {
127
- "1": {
128
- "name": "punctuation.definition.tag.html"
129
- },
130
- "2": {
131
- "name": "entity.name.tag.style.html"
132
- },
133
- "3": {
134
- "name": "punctuation.definition.tag.html"
135
- }
136
- },
137
- "end": "(</)((?i:style))(>)(?:\\s*\\n)?",
138
121
  "name": "source.css.embedded.html",
122
+ "begin": "(?:^\\s+)?(\u003c)((?i:style))\\b(?![^\u003e]*/\u003e)",
123
+ "end": "(\u003c/)((?i:style))(\u003e)(?:\\s*\\n)?",
139
124
  "patterns": [
140
125
  {
141
126
  "include": "#tag-stuff"
142
127
  },
143
128
  {
144
- "begin": "(>)",
145
- "beginCaptures": {
146
- "1": {
147
- "name": "punctuation.definition.tag.html"
148
- }
149
- },
150
- "end": "(?=</(?i:style))",
129
+ "begin": "(\u003e)",
130
+ "end": "(?=\u003c/(?i:style))",
151
131
  "patterns": [
152
132
  {
153
133
  "include": "#embedded-code"
@@ -155,61 +135,56 @@
155
135
  {
156
136
  "include": "source.css"
157
137
  }
158
- ]
138
+ ],
139
+ "beginCaptures": {
140
+ "1": {
141
+ "name": "punctuation.definition.tag.html"
142
+ }
143
+ }
159
144
  }
160
- ]
161
- },
162
- {
163
- "begin": "(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)",
164
- "beginCaptures": {
145
+ ],
146
+ "captures": {
165
147
  "1": {
166
148
  "name": "punctuation.definition.tag.html"
167
149
  },
168
150
  "2": {
169
- "name": "entity.name.tag.script.html"
170
- }
171
- },
172
- "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",
173
- "endCaptures": {
174
- "2": {
151
+ "name": "entity.name.tag.style.html"
152
+ },
153
+ "3": {
175
154
  "name": "punctuation.definition.tag.html"
176
155
  }
177
- },
156
+ }
157
+ },
158
+ {
178
159
  "name": "source.js.embedded.html",
160
+ "begin": "(?:^\\s+)?(\u003c)((?i:script))\\b(?![^\u003e]*/\u003e)",
161
+ "end": "(?\u003c=\u003c/(script|SCRIPT))(\u003e)(?:\\s*\\n)?",
179
162
  "patterns": [
180
163
  {
181
164
  "include": "#tag-stuff"
182
165
  },
183
166
  {
184
- "begin": "(?<!</(?:script|SCRIPT))(>)",
185
- "captures": {
186
- "1": {
187
- "name": "punctuation.definition.tag.html"
188
- },
189
- "2": {
190
- "name": "entity.name.tag.script.html"
191
- }
192
- },
193
- "end": "(</)((?i:script))",
167
+ "begin": "(?\u003c!\u003c/(?:script|SCRIPT))(\u003e)",
168
+ "end": "(\u003c/)((?i:script))",
194
169
  "patterns": [
195
170
  {
171
+ "name": "comment.line.double-slash.js",
172
+ "match": "(//).*?((?=\u003c/script)|$\\n?)",
196
173
  "captures": {
197
174
  "1": {
198
175
  "name": "punctuation.definition.comment.js"
199
176
  }
200
- },
201
- "match": "(//).*?((?=</script)|$\\n?)",
202
- "name": "comment.line.double-slash.js"
177
+ }
203
178
  },
204
179
  {
180
+ "name": "comment.block.js",
205
181
  "begin": "/\\*",
182
+ "end": "\\*/|(?=\u003c/script)",
206
183
  "captures": {
207
184
  "0": {
208
185
  "name": "punctuation.definition.comment.js"
209
186
  }
210
- },
211
- "end": "\\*/|(?=</script)",
212
- "name": "comment.block.js"
187
+ }
213
188
  },
214
189
  {
215
190
  "include": "#php"
@@ -226,30 +201,58 @@
226
201
  {
227
202
  "include": "source.js"
228
203
  }
229
- ]
204
+ ],
205
+ "captures": {
206
+ "1": {
207
+ "name": "punctuation.definition.tag.html"
208
+ },
209
+ "2": {
210
+ "name": "entity.name.tag.script.html"
211
+ }
212
+ }
230
213
  }
231
- ]
232
- },
233
- {
234
- "begin": "(</?)((?i:body|head|html)\\b)",
235
- "captures": {
214
+ ],
215
+ "beginCaptures": {
236
216
  "1": {
237
217
  "name": "punctuation.definition.tag.html"
238
218
  },
239
219
  "2": {
240
- "name": "entity.name.tag.structure.any.html"
220
+ "name": "entity.name.tag.script.html"
241
221
  }
242
222
  },
243
- "end": "(>)",
223
+ "endCaptures": {
224
+ "2": {
225
+ "name": "punctuation.definition.tag.html"
226
+ }
227
+ }
228
+ },
229
+ {
244
230
  "name": "meta.tag.structure.any.html",
231
+ "begin": "(\u003c/?)((?i:body|head|html)\\b)",
232
+ "end": "(\u003e)",
245
233
  "patterns": [
246
234
  {
247
235
  "include": "#tag-stuff"
248
236
  }
249
- ]
237
+ ],
238
+ "captures": {
239
+ "1": {
240
+ "name": "punctuation.definition.tag.html"
241
+ },
242
+ "2": {
243
+ "name": "entity.name.tag.structure.any.html"
244
+ }
245
+ }
250
246
  },
251
247
  {
252
- "begin": "(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)",
248
+ "name": "meta.tag.block.any.html",
249
+ "begin": "(\u003c/?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)",
250
+ "end": "(\u003e)",
251
+ "patterns": [
252
+ {
253
+ "include": "#tag-stuff"
254
+ }
255
+ ],
253
256
  "beginCaptures": {
254
257
  "1": {
255
258
  "name": "punctuation.definition.tag.begin.html"
@@ -258,21 +261,21 @@
258
261
  "name": "entity.name.tag.block.any.html"
259
262
  }
260
263
  },
261
- "end": "(>)",
262
264
  "endCaptures": {
263
265
  "1": {
264
266
  "name": "punctuation.definition.tag.end.html"
265
267
  }
266
- },
267
- "name": "meta.tag.block.any.html",
268
+ }
269
+ },
270
+ {
271
+ "name": "meta.tag.inline.any.html",
272
+ "begin": "(\u003c/?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)",
273
+ "end": "((?: ?/)?\u003e)",
268
274
  "patterns": [
269
275
  {
270
276
  "include": "#tag-stuff"
271
277
  }
272
- ]
273
- },
274
- {
275
- "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)",
278
+ ],
276
279
  "beginCaptures": {
277
280
  "1": {
278
281
  "name": "punctuation.definition.tag.begin.html"
@@ -281,21 +284,21 @@
281
284
  "name": "entity.name.tag.inline.any.html"
282
285
  }
283
286
  },
284
- "end": "((?: ?/)?>)",
285
287
  "endCaptures": {
286
288
  "1": {
287
289
  "name": "punctuation.definition.tag.end.html"
288
290
  }
289
- },
290
- "name": "meta.tag.inline.any.html",
291
+ }
292
+ },
293
+ {
294
+ "name": "meta.tag.other.html",
295
+ "begin": "(\u003c/?)([a-zA-Z0-9:]+)",
296
+ "end": "(\u003e)",
291
297
  "patterns": [
292
298
  {
293
299
  "include": "#tag-stuff"
294
300
  }
295
- ]
296
- },
297
- {
298
- "begin": "(</?)([a-zA-Z0-9:]+)",
301
+ ],
299
302
  "beginCaptures": {
300
303
  "1": {
301
304
  "name": "punctuation.definition.tag.begin.html"
@@ -304,29 +307,22 @@
304
307
  "name": "entity.name.tag.other.html"
305
308
  }
306
309
  },
307
- "end": "(>)",
308
310
  "endCaptures": {
309
311
  "1": {
310
312
  "name": "punctuation.definition.tag.end.html"
311
313
  }
312
- },
313
- "name": "meta.tag.other.html",
314
- "patterns": [
315
- {
316
- "include": "#tag-stuff"
317
- }
318
- ]
314
+ }
319
315
  },
320
316
  {
321
317
  "include": "#entities"
322
318
  },
323
319
  {
324
- "match": "<>",
325
- "name": "invalid.illegal.incomplete.html"
320
+ "name": "invalid.illegal.incomplete.html",
321
+ "match": "\u003c\u003e"
326
322
  },
327
323
  {
328
- "match": "<",
329
- "name": "invalid.illegal.bad-angle-bracket.html"
324
+ "name": "invalid.illegal.bad-angle-bracket.html",
325
+ "match": "\u003c"
330
326
  },
331
327
  {
332
328
  "include": "#twig-print-tag"
@@ -364,6 +360,8 @@
364
360
  "entities": {
365
361
  "patterns": [
366
362
  {
363
+ "name": "constant.character.entity.html",
364
+ "match": "(\u0026)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
367
365
  "captures": {
368
366
  "1": {
369
367
  "name": "punctuation.definition.entity.html"
@@ -371,98 +369,243 @@
371
369
  "3": {
372
370
  "name": "punctuation.definition.entity.html"
373
371
  }
374
- },
375
- "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
376
- "name": "constant.character.entity.html"
372
+ }
377
373
  },
378
374
  {
379
- "match": "&",
380
- "name": "invalid.illegal.bad-ampersand.html"
375
+ "name": "invalid.illegal.bad-ampersand.html",
376
+ "match": "\u0026"
381
377
  }
382
378
  ]
383
379
  },
384
- "twig-print-tag": {
385
- "begin": "\\{\\{-?",
386
- "beginCaptures": {
387
- "0": {
388
- "name": "punctuation.section.tag.twig"
389
- }
390
- },
391
- "end": "-?\\}\\}",
392
- "endCaptures": {
393
- "0": {
394
- "name": "punctuation.section.tag.twig"
395
- }
396
- },
397
- "name": "meta.tag.template.value.twig",
380
+ "php": {
381
+ "begin": "(?=(^\\s*)?\u003c\\?)",
382
+ "end": "(?!(^\\s*)?\u003c\\?)",
398
383
  "patterns": [
399
384
  {
400
- "include": "#twig-constants"
401
- },
402
- {
403
- "include": "#twig-operators"
404
- },
385
+ "include": "text.html.php"
386
+ }
387
+ ]
388
+ },
389
+ "python": {
390
+ "name": "source.python.embedded.html",
391
+ "begin": "(?:^\\s*)\u003c\\?python(?!.*\\?\u003e)",
392
+ "end": "\\?\u003e(?:\\s*$\\n)?",
393
+ "patterns": [
405
394
  {
406
- "include": "#twig-functions-warg"
407
- },
395
+ "include": "source.python"
396
+ }
397
+ ]
398
+ },
399
+ "ruby": {
400
+ "patterns": [
408
401
  {
409
- "include": "#twig-functions"
402
+ "name": "comment.block.erb",
403
+ "begin": "\u003c%+#",
404
+ "end": "%\u003e",
405
+ "captures": {
406
+ "0": {
407
+ "name": "punctuation.definition.comment.erb"
408
+ }
409
+ }
410
410
  },
411
411
  {
412
- "include": "#twig-macros"
412
+ "name": "source.ruby.embedded.html",
413
+ "begin": "\u003c%+(?!\u003e)=?",
414
+ "end": "-?%\u003e",
415
+ "patterns": [
416
+ {
417
+ "name": "comment.line.number-sign.ruby",
418
+ "match": "(#).*?(?=-?%\u003e)",
419
+ "captures": {
420
+ "1": {
421
+ "name": "punctuation.definition.comment.ruby"
422
+ }
423
+ }
424
+ },
425
+ {
426
+ "include": "source.ruby"
427
+ }
428
+ ],
429
+ "captures": {
430
+ "0": {
431
+ "name": "punctuation.section.embedded.ruby"
432
+ }
433
+ }
413
434
  },
414
435
  {
415
- "include": "#twig-objects"
416
- },
436
+ "name": "source.ruby.nitro.embedded.html",
437
+ "begin": "\u003c\\?r(?!\u003e)=?",
438
+ "end": "-?\\?\u003e",
439
+ "patterns": [
440
+ {
441
+ "name": "comment.line.number-sign.ruby.nitro",
442
+ "match": "(#).*?(?=-?\\?\u003e)",
443
+ "captures": {
444
+ "1": {
445
+ "name": "punctuation.definition.comment.ruby.nitro"
446
+ }
447
+ }
448
+ },
449
+ {
450
+ "include": "source.ruby"
451
+ }
452
+ ],
453
+ "captures": {
454
+ "0": {
455
+ "name": "punctuation.section.embedded.ruby.nitro"
456
+ }
457
+ }
458
+ }
459
+ ]
460
+ },
461
+ "string-double-quoted": {
462
+ "name": "string.quoted.double.html",
463
+ "begin": "\"",
464
+ "end": "\"",
465
+ "patterns": [
417
466
  {
418
- "include": "#twig-properties"
467
+ "include": "#embedded-code"
419
468
  },
420
469
  {
421
- "include": "#twig-filters-warg"
470
+ "include": "#entities"
471
+ }
472
+ ],
473
+ "beginCaptures": {
474
+ "0": {
475
+ "name": "punctuation.definition.string.begin.html"
476
+ }
477
+ },
478
+ "endCaptures": {
479
+ "0": {
480
+ "name": "punctuation.definition.string.end.html"
481
+ }
482
+ }
483
+ },
484
+ "string-single-quoted": {
485
+ "name": "string.quoted.single.html",
486
+ "begin": "'",
487
+ "end": "'",
488
+ "patterns": [
489
+ {
490
+ "include": "#embedded-code"
422
491
  },
423
492
  {
424
- "include": "#twig-filters"
493
+ "include": "#entities"
494
+ }
495
+ ],
496
+ "beginCaptures": {
497
+ "0": {
498
+ "name": "punctuation.definition.string.begin.html"
499
+ }
500
+ },
501
+ "endCaptures": {
502
+ "0": {
503
+ "name": "punctuation.definition.string.end.html"
504
+ }
505
+ }
506
+ },
507
+ "tag-generic-attribute": {
508
+ "name": "entity.other.attribute-name.html",
509
+ "match": "\\b([a-zA-Z\\-:]+)"
510
+ },
511
+ "tag-id-attribute": {
512
+ "name": "meta.attribute-with-value.id.html",
513
+ "begin": "\\b(id)\\b\\s*(=)",
514
+ "end": "(?\u003c='|\")",
515
+ "patterns": [
516
+ {
517
+ "name": "string.quoted.double.html",
518
+ "contentName": "meta.toc-list.id.html",
519
+ "begin": "\"",
520
+ "end": "\"",
521
+ "patterns": [
522
+ {
523
+ "include": "#embedded-code"
524
+ },
525
+ {
526
+ "include": "#entities"
527
+ }
528
+ ],
529
+ "beginCaptures": {
530
+ "0": {
531
+ "name": "punctuation.definition.string.begin.html"
532
+ }
533
+ },
534
+ "endCaptures": {
535
+ "0": {
536
+ "name": "punctuation.definition.string.end.html"
537
+ }
538
+ }
425
539
  },
426
540
  {
427
- "include": "#twig-filters-warg-ud"
541
+ "name": "string.quoted.single.html",
542
+ "contentName": "meta.toc-list.id.html",
543
+ "begin": "'",
544
+ "end": "'",
545
+ "patterns": [
546
+ {
547
+ "include": "#embedded-code"
548
+ },
549
+ {
550
+ "include": "#entities"
551
+ }
552
+ ],
553
+ "beginCaptures": {
554
+ "0": {
555
+ "name": "punctuation.definition.string.begin.html"
556
+ }
557
+ },
558
+ "endCaptures": {
559
+ "0": {
560
+ "name": "punctuation.definition.string.end.html"
561
+ }
562
+ }
563
+ }
564
+ ],
565
+ "captures": {
566
+ "1": {
567
+ "name": "entity.other.attribute-name.id.html"
568
+ },
569
+ "2": {
570
+ "name": "punctuation.separator.key-value.html"
571
+ }
572
+ }
573
+ },
574
+ "tag-stuff": {
575
+ "patterns": [
576
+ {
577
+ "include": "#tag-id-attribute"
428
578
  },
429
579
  {
430
- "include": "#twig-filters-ud"
580
+ "include": "#tag-generic-attribute"
431
581
  },
432
582
  {
433
- "include": "#twig-strings"
583
+ "include": "#string-double-quoted"
434
584
  },
435
585
  {
436
- "include": "#twig-arrays"
586
+ "include": "#string-single-quoted"
437
587
  },
438
588
  {
439
- "include": "#twig-hashes"
589
+ "include": "#embedded-code"
440
590
  }
441
591
  ]
442
592
  },
443
- "twig-statement-tag": {
444
- "begin": "\\{%-?",
445
- "beginCaptures": {
446
- "0": {
447
- "name": "punctuation.section.tag.twig"
448
- }
449
- },
450
- "end": "-?%\\}",
451
- "endCaptures": {
452
- "0": {
453
- "name": "punctuation.section.tag.twig"
454
- }
455
- },
456
- "name": "meta.tag.template.block.twig",
593
+ "twig-arrays": {
594
+ "name": "meta.array.twig",
595
+ "begin": "(?\u003c=[\\s\\(\\{\\[:,])\\[",
596
+ "end": "\\]",
457
597
  "patterns": [
458
598
  {
459
- "include": "#twig-constants"
599
+ "include": "#twig-arrays"
460
600
  },
461
601
  {
462
- "include": "#twig-keywords"
602
+ "include": "#twig-hashes"
463
603
  },
464
604
  {
465
- "include": "#twig-operators"
605
+ "include": "#twig-constants"
606
+ },
607
+ {
608
+ "include": "#twig-strings"
466
609
  },
467
610
  {
468
611
  "include": "#twig-functions-warg"
@@ -474,295 +617,149 @@
474
617
  "include": "#twig-macros"
475
618
  },
476
619
  {
477
- "include": "#twig-filters-warg"
478
- },
479
- {
480
- "include": "#twig-filters"
481
- },
482
- {
483
- "include": "#twig-filters-warg-ud"
620
+ "include": "#twig-objects"
484
621
  },
485
622
  {
486
- "include": "#twig-filters-ud"
623
+ "include": "#twig-properties"
487
624
  },
488
625
  {
489
- "include": "#twig-objects"
626
+ "include": "#twig-filters-warg"
490
627
  },
491
628
  {
492
- "include": "#twig-properties"
629
+ "include": "#twig-filters"
493
630
  },
494
631
  {
495
- "include": "#twig-strings"
632
+ "include": "#twig-filters-warg-ud"
496
633
  },
497
634
  {
498
- "include": "#twig-arrays"
635
+ "include": "#twig-filters-ud"
499
636
  },
500
637
  {
501
- "include": "#twig-hashes"
638
+ "name": "punctuation.separator.object.twig",
639
+ "match": ","
502
640
  }
503
- ]
641
+ ],
642
+ "beginCaptures": {
643
+ "0": {
644
+ "name": "punctuation.section.array.begin.twig"
645
+ }
646
+ },
647
+ "endCaptures": {
648
+ "0": {
649
+ "name": "punctuation.section.array.end.twig"
650
+ }
651
+ }
504
652
  },
505
653
  "twig-comment-tag": {
654
+ "name": "comment.block.twig",
506
655
  "begin": "\\{#-?",
656
+ "end": "-?#\\}",
507
657
  "beginCaptures": {
508
658
  "0": {
509
659
  "name": "punctuation.definition.comment.begin.twig"
510
660
  }
511
661
  },
512
- "end": "-?#\\}",
513
662
  "endCaptures": {
514
663
  "0": {
515
664
  "name": "punctuation.definition.comment.end.twig"
516
665
  }
517
- },
518
- "name": "comment.block.twig"
666
+ }
519
667
  },
520
668
  "twig-constants": {
521
669
  "patterns": [
522
670
  {
523
- "match": "(?i)(?<=[\\s\\[\\(\\{:,])(?:true|false|null|none)(?=[\\s\\)\\]\\}\\,])",
524
- "name": "constant.language.twig"
671
+ "name": "constant.language.twig",
672
+ "match": "(?i)(?\u003c=[\\s\\[\\(\\{:,])(?:true|false|null|none)(?=[\\s\\)\\]\\}\\,])"
525
673
  },
526
674
  {
527
- "match": "(?<=[\\s\\[\\(\\{:,]|\\.\\.|\\*\\*)[0-9]+(?:\\.[0-9]+)?(?=[\\s\\)\\]\\}\\,]|\\.\\.|\\*\\*)",
528
- "name": "constant.numeric.twig"
675
+ "name": "constant.numeric.twig",
676
+ "match": "(?\u003c=[\\s\\[\\(\\{:,]|\\.\\.|\\*\\*)[0-9]+(?:\\.[0-9]+)?(?=[\\s\\)\\]\\}\\,]|\\.\\.|\\*\\*)"
529
677
  }
530
678
  ]
531
679
  },
532
- "twig-operators": {
680
+ "twig-filters": {
681
+ "match": "(?\u003c=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\s\\|\\]\\}\\):,]|\\.\\.|\\*\\*)",
682
+ "captures": {
683
+ "1": {
684
+ "name": "support.function.twig"
685
+ }
686
+ }
687
+ },
688
+ "twig-filters-ud": {
689
+ "match": "(?\u003c=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)",
690
+ "captures": {
691
+ "1": {
692
+ "name": "meta.function-call.other.twig"
693
+ }
694
+ }
695
+ },
696
+ "twig-filters-warg": {
697
+ "contentName": "meta.function.arguments.twig",
698
+ "begin": "(?\u003c=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\()",
699
+ "end": "\\)",
533
700
  "patterns": [
534
701
  {
535
- "captures": {
536
- "1": {
537
- "name": "keyword.operator.arithmetic.twig"
538
- }
539
- },
540
- "match": "(?<=\\s)(\\+|-|//?|%|\\*\\*?)(?=\\s)"
702
+ "include": "#twig-constants"
541
703
  },
542
704
  {
543
- "captures": {
544
- "1": {
545
- "name": "keyword.operator.assignment.twig"
546
- }
547
- },
548
- "match": "(?<=\\s)(=|~)(?=\\s)"
705
+ "include": "#twig-functions-warg"
549
706
  },
550
707
  {
551
- "captures": {
552
- "1": {
553
- "name": "keyword.operator.bitwise.twig"
554
- }
555
- },
556
- "match": "(?<=\\s)(b-(?:and|or|xor))(?=\\s)"
708
+ "include": "#twig-functions"
557
709
  },
558
710
  {
559
- "captures": {
560
- "1": {
561
- "name": "keyword.operator.comparison.twig"
562
- }
563
- },
564
- "match": "(?<=\\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\s)"
711
+ "include": "#twig-macros"
565
712
  },
566
713
  {
567
- "captures": {
568
- "1": {
569
- "name": "keyword.operator.logical.twig"
570
- }
571
- },
572
- "match": "(?<=\\s)(\\?|:|and|not|or)(?=\\s)"
714
+ "include": "#twig-objects"
573
715
  },
574
716
  {
575
- "captures": {
576
- "0": {
577
- "name": "keyword.operator.other.twig"
578
- }
579
- },
580
- "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)'\"])\\.\\.(?=[a-zA-Z0-9_\\x{7f}-\\x{ff}'\"])"
717
+ "include": "#twig-properties"
581
718
  },
582
719
  {
583
- "captures": {
584
- "0": {
585
- "name": "keyword.operator.other.twig"
586
- }
587
- },
588
- "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\}\\)'\"])\\|(?=[a-zA-Z_\\x{7f}-\\x{ff}])"
720
+ "include": "#twig-filters-warg"
721
+ },
722
+ {
723
+ "include": "#twig-filters"
724
+ },
725
+ {
726
+ "include": "#twig-filters-warg-ud"
727
+ },
728
+ {
729
+ "include": "#twig-filters-ud"
730
+ },
731
+ {
732
+ "include": "#twig-strings"
733
+ },
734
+ {
735
+ "include": "#twig-arrays"
736
+ },
737
+ {
738
+ "include": "#twig-hashes"
589
739
  }
590
- ]
591
- },
592
- "twig-objects": {
593
- "captures": {
740
+ ],
741
+ "beginCaptures": {
594
742
  "1": {
595
- "name": "variable.other.twig"
743
+ "name": "support.function.twig"
744
+ },
745
+ "2": {
746
+ "name": "punctuation.definition.parameters.begin.twig"
596
747
  }
597
748
  },
598
- "match": "(?<=[\\s\\{\\[\\(:,])([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?=[\\s\\}\\[\\]\\(\\)\\.\\|,:])"
749
+ "endCaptures": {
750
+ "0": {
751
+ "name": "punctuation.definition.parameters.end.twig"
752
+ }
753
+ }
599
754
  },
600
- "twig-properties": {
601
- "patterns": [
602
- {
603
- "captures": {
604
- "1": {
605
- "name": "punctuation.separator.property.twig"
606
- },
607
- "2": {
608
- "name": "variable.other.property.twig"
609
- }
610
- },
611
- "match": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?=[\\.\\s\\|\\[\\)\\]\\}:,])\n "
612
- },
613
- {
614
- "begin": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (\\()\n ",
615
- "beginCaptures": {
616
- "1": {
617
- "name": "punctuation.separator.property.twig"
618
- },
619
- "2": {
620
- "name": "variable.other.property.twig"
621
- },
622
- "3": {
623
- "name": "punctuation.definition.parameters.begin.twig"
624
- }
625
- },
626
- "end": "\\)",
627
- "endCaptures": {
628
- "0": {
629
- "name": "punctuation.definition.parameters.end.twig"
630
- }
631
- },
632
- "patterns": [
633
- {
634
- "include": "#twig-constants"
635
- },
636
- {
637
- "include": "#twig-functions-warg"
638
- },
639
- {
640
- "include": "#twig-functions"
641
- },
642
- {
643
- "include": "#twig-macros"
644
- },
645
- {
646
- "include": "#twig-objects"
647
- },
648
- {
649
- "include": "#twig-properties"
650
- },
651
- {
652
- "include": "#twig-filters-warg"
653
- },
654
- {
655
- "include": "#twig-filters"
656
- },
657
- {
658
- "include": "#twig-filters-warg-ud"
659
- },
660
- {
661
- "include": "#twig-filters-ud"
662
- },
663
- {
664
- "include": "#twig-strings"
665
- },
666
- {
667
- "include": "#twig-arrays"
668
- }
669
- ],
670
- "contentName": "meta.function.arguments.twig"
671
- },
672
- {
673
- "captures": {
674
- "1": {
675
- "name": "punctuation.section.array.begin.twig"
676
- },
677
- "2": {
678
- "name": "variable.other.property.twig"
679
- },
680
- "3": {
681
- "name": "punctuation.section.array.end.twig"
682
- },
683
- "4": {
684
- "name": "punctuation.section.array.begin.twig"
685
- },
686
- "5": {
687
- "name": "variable.other.property.twig"
688
- },
689
- "6": {
690
- "name": "punctuation.section.array.end.twig"
691
- },
692
- "7": {
693
- "name": "punctuation.section.array.begin.twig"
694
- },
695
- "8": {
696
- "name": "variable.other.property.twig"
697
- },
698
- "9": {
699
- "name": "punctuation.section.array.end.twig"
700
- }
701
- },
702
- "match": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]])\n (?:\n (\\[)('[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*')(\\])\n |(\\[)(\"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\")(\\])\n |(\\[)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\])\n )\n "
703
- }
704
- ]
705
- },
706
- "twig-strings": {
707
- "patterns": [
708
- {
709
- "begin": "(?:(?<!\\\\)|(?<=\\\\\\\\))'",
710
- "beginCaptures": {
711
- "0": {
712
- "name": "punctuation.definition.string.begin.twig"
713
- }
714
- },
715
- "end": "(?:(?<!\\\\)|(?<=\\\\\\\\))'",
716
- "endCaptures": {
717
- "0": {
718
- "name": "punctuation.definition.string.end.twig"
719
- }
720
- },
721
- "name": "string.quoted.single.twig"
722
- },
723
- {
724
- "begin": "(?:(?<!\\\\)|(?<=\\\\\\\\))\"",
725
- "beginCaptures": {
726
- "0": {
727
- "name": "punctuation.definition.string.begin.twig"
728
- }
729
- },
730
- "end": "(?:(?<!\\\\)|(?<=\\\\\\\\))\"",
731
- "endCaptures": {
732
- "0": {
733
- "name": "punctuation.definition.string.end.twig"
734
- }
735
- },
736
- "name": "string.quoted.double.twig"
737
- }
738
- ]
739
- },
740
- "twig-arrays": {
741
- "begin": "(?<=[\\s\\(\\{\\[:,])\\[",
742
- "beginCaptures": {
743
- "0": {
744
- "name": "punctuation.section.array.begin.twig"
745
- }
746
- },
747
- "end": "\\]",
748
- "endCaptures": {
749
- "0": {
750
- "name": "punctuation.section.array.end.twig"
751
- }
752
- },
755
+ "twig-filters-warg-ud": {
756
+ "contentName": "meta.function.arguments.twig",
757
+ "begin": "(?\u003c=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\()",
758
+ "end": "\\)",
753
759
  "patterns": [
754
- {
755
- "include": "#twig-arrays"
756
- },
757
- {
758
- "include": "#twig-hashes"
759
- },
760
760
  {
761
761
  "include": "#twig-constants"
762
762
  },
763
- {
764
- "include": "#twig-strings"
765
- },
766
763
  {
767
764
  "include": "#twig-functions-warg"
768
765
  },
@@ -791,38 +788,45 @@
791
788
  "include": "#twig-filters-ud"
792
789
  },
793
790
  {
794
- "match": ",",
795
- "name": "punctuation.separator.object.twig"
791
+ "include": "#twig-strings"
792
+ },
793
+ {
794
+ "include": "#twig-arrays"
795
+ },
796
+ {
797
+ "include": "#twig-hashes"
796
798
  }
797
799
  ],
798
- "name": "meta.array.twig"
799
- },
800
- "twig-hashes": {
801
- "begin": "(?<=[\\s\\(\\{\\[:,])\\{",
802
800
  "beginCaptures": {
803
- "0": {
804
- "name": "punctuation.section.hash.begin.twig"
801
+ "1": {
802
+ "name": "meta.function-call.other.twig"
803
+ },
804
+ "2": {
805
+ "name": "punctuation.definition.parameters.begin.twig"
805
806
  }
806
807
  },
807
- "end": "\\}",
808
808
  "endCaptures": {
809
809
  "0": {
810
- "name": "punctuation.section.hash.end.twig"
810
+ "name": "punctuation.definition.parameters.end.twig"
811
811
  }
812
- },
812
+ }
813
+ },
814
+ "twig-functions": {
815
+ "match": "(?\u003c=is\\s)(defined|empty|even|iterable|odd)",
816
+ "captures": {
817
+ "1": {
818
+ "name": "support.function.twig"
819
+ }
820
+ }
821
+ },
822
+ "twig-functions-warg": {
823
+ "contentName": "meta.function.arguments.twig",
824
+ "begin": "(?\u003c=[\\s\\(\\[\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\()",
825
+ "end": "\\)",
813
826
  "patterns": [
814
- {
815
- "include": "#twig-hashes"
816
- },
817
- {
818
- "include": "#twig-arrays"
819
- },
820
827
  {
821
828
  "include": "#twig-constants"
822
829
  },
823
- {
824
- "include": "#twig-strings"
825
- },
826
830
  {
827
831
  "include": "#twig-functions-warg"
828
832
  },
@@ -851,22 +855,12 @@
851
855
  "include": "#twig-filters-ud"
852
856
  },
853
857
  {
854
- "match": ":",
855
- "name": "punctuation.separator.key-value.twig"
858
+ "include": "#twig-strings"
856
859
  },
857
860
  {
858
- "match": ",",
859
- "name": "punctuation.separator.object.twig"
861
+ "include": "#twig-arrays"
860
862
  }
861
863
  ],
862
- "name": "meta.hash.twig"
863
- },
864
- "twig-keywords": {
865
- "match": "(?<=\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\s)",
866
- "name": "keyword.control.twig"
867
- },
868
- "twig-functions-warg": {
869
- "begin": "(?<=[\\s\\(\\[\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\()",
870
864
  "beginCaptures": {
871
865
  "1": {
872
866
  "name": "support.function.twig"
@@ -875,16 +869,29 @@
875
869
  "name": "punctuation.definition.parameters.begin.twig"
876
870
  }
877
871
  },
878
- "end": "\\)",
879
872
  "endCaptures": {
880
873
  "0": {
881
874
  "name": "punctuation.definition.parameters.end.twig"
882
875
  }
883
- },
876
+ }
877
+ },
878
+ "twig-hashes": {
879
+ "name": "meta.hash.twig",
880
+ "begin": "(?\u003c=[\\s\\(\\{\\[:,])\\{",
881
+ "end": "\\}",
884
882
  "patterns": [
883
+ {
884
+ "include": "#twig-hashes"
885
+ },
886
+ {
887
+ "include": "#twig-arrays"
888
+ },
885
889
  {
886
890
  "include": "#twig-constants"
887
891
  },
892
+ {
893
+ "include": "#twig-strings"
894
+ },
888
895
  {
889
896
  "include": "#twig-functions-warg"
890
897
  },
@@ -913,44 +920,33 @@
913
920
  "include": "#twig-filters-ud"
914
921
  },
915
922
  {
916
- "include": "#twig-strings"
923
+ "name": "punctuation.separator.key-value.twig",
924
+ "match": ":"
917
925
  },
918
926
  {
919
- "include": "#twig-arrays"
927
+ "name": "punctuation.separator.object.twig",
928
+ "match": ","
920
929
  }
921
930
  ],
922
- "contentName": "meta.function.arguments.twig"
923
- },
924
- "twig-functions": {
925
- "captures": {
926
- "1": {
927
- "name": "support.function.twig"
928
- }
929
- },
930
- "match": "(?<=is\\s)(defined|empty|even|iterable|odd)"
931
- },
932
- "twig-macros": {
933
- "begin": "(?x)\n (?<=[\\s\\(\\[\\{:,])\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?:\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?\n (\\()\n ",
934
931
  "beginCaptures": {
935
- "1": {
936
- "name": "meta.function-call.twig"
937
- },
938
- "2": {
939
- "name": "punctuation.separator.property.twig"
940
- },
941
- "3": {
942
- "name": "variable.other.property.twig"
943
- },
944
- "4": {
945
- "name": "punctuation.definition.parameters.begin.twig"
932
+ "0": {
933
+ "name": "punctuation.section.hash.begin.twig"
946
934
  }
947
935
  },
948
- "end": "\\)",
949
936
  "endCaptures": {
950
937
  "0": {
951
- "name": "punctuation.definition.parameters.end.twig"
938
+ "name": "punctuation.section.hash.end.twig"
952
939
  }
953
- },
940
+ }
941
+ },
942
+ "twig-keywords": {
943
+ "name": "keyword.control.twig",
944
+ "match": "(?\u003c=\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\s)"
945
+ },
946
+ "twig-macros": {
947
+ "contentName": "meta.function.arguments.twig",
948
+ "begin": "(?x)\n (?\u003c=[\\s\\(\\[\\{:,])\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?:\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?\n (\\()\n ",
949
+ "end": "\\)",
954
950
  "patterns": [
955
951
  {
956
952
  "include": "#twig-constants"
@@ -995,95 +991,105 @@
995
991
  "include": "#twig-hashes"
996
992
  }
997
993
  ],
998
- "contentName": "meta.function.arguments.twig"
999
- },
1000
- "twig-filters-warg": {
1001
- "begin": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\()",
1002
994
  "beginCaptures": {
1003
995
  "1": {
1004
- "name": "support.function.twig"
996
+ "name": "meta.function-call.twig"
1005
997
  },
1006
998
  "2": {
999
+ "name": "punctuation.separator.property.twig"
1000
+ },
1001
+ "3": {
1002
+ "name": "variable.other.property.twig"
1003
+ },
1004
+ "4": {
1007
1005
  "name": "punctuation.definition.parameters.begin.twig"
1008
1006
  }
1009
1007
  },
1010
- "end": "\\)",
1011
1008
  "endCaptures": {
1012
1009
  "0": {
1013
1010
  "name": "punctuation.definition.parameters.end.twig"
1014
1011
  }
1015
- },
1016
- "patterns": [
1017
- {
1018
- "include": "#twig-constants"
1019
- },
1020
- {
1021
- "include": "#twig-functions-warg"
1022
- },
1023
- {
1024
- "include": "#twig-functions"
1025
- },
1026
- {
1027
- "include": "#twig-macros"
1028
- },
1029
- {
1030
- "include": "#twig-objects"
1031
- },
1032
- {
1033
- "include": "#twig-properties"
1034
- },
1012
+ }
1013
+ },
1014
+ "twig-objects": {
1015
+ "match": "(?\u003c=[\\s\\{\\[\\(:,])([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?=[\\s\\}\\[\\]\\(\\)\\.\\|,:])",
1016
+ "captures": {
1017
+ "1": {
1018
+ "name": "variable.other.twig"
1019
+ }
1020
+ }
1021
+ },
1022
+ "twig-operators": {
1023
+ "patterns": [
1035
1024
  {
1036
- "include": "#twig-filters-warg"
1025
+ "match": "(?\u003c=\\s)(\\+|-|//?|%|\\*\\*?)(?=\\s)",
1026
+ "captures": {
1027
+ "1": {
1028
+ "name": "keyword.operator.arithmetic.twig"
1029
+ }
1030
+ }
1037
1031
  },
1038
1032
  {
1039
- "include": "#twig-filters"
1033
+ "match": "(?\u003c=\\s)(=|~)(?=\\s)",
1034
+ "captures": {
1035
+ "1": {
1036
+ "name": "keyword.operator.assignment.twig"
1037
+ }
1038
+ }
1040
1039
  },
1041
1040
  {
1042
- "include": "#twig-filters-warg-ud"
1041
+ "match": "(?\u003c=\\s)(b-(?:and|or|xor))(?=\\s)",
1042
+ "captures": {
1043
+ "1": {
1044
+ "name": "keyword.operator.bitwise.twig"
1045
+ }
1046
+ }
1043
1047
  },
1044
1048
  {
1045
- "include": "#twig-filters-ud"
1049
+ "match": "(?\u003c=\\s)((?:!|=)=|\u003c=?|\u003e=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\s)",
1050
+ "captures": {
1051
+ "1": {
1052
+ "name": "keyword.operator.comparison.twig"
1053
+ }
1054
+ }
1046
1055
  },
1047
1056
  {
1048
- "include": "#twig-strings"
1057
+ "match": "(?\u003c=\\s)(\\?|:|and|not|or)(?=\\s)",
1058
+ "captures": {
1059
+ "1": {
1060
+ "name": "keyword.operator.logical.twig"
1061
+ }
1062
+ }
1049
1063
  },
1050
1064
  {
1051
- "include": "#twig-arrays"
1065
+ "match": "(?\u003c=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)'\"])\\.\\.(?=[a-zA-Z0-9_\\x{7f}-\\x{ff}'\"])",
1066
+ "captures": {
1067
+ "0": {
1068
+ "name": "keyword.operator.other.twig"
1069
+ }
1070
+ }
1052
1071
  },
1053
1072
  {
1054
- "include": "#twig-hashes"
1055
- }
1056
- ],
1057
- "contentName": "meta.function.arguments.twig"
1058
- },
1059
- "twig-filters": {
1060
- "captures": {
1061
- "1": {
1062
- "name": "support.function.twig"
1073
+ "match": "(?\u003c=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\}\\)'\"])\\|(?=[a-zA-Z_\\x{7f}-\\x{ff}])",
1074
+ "captures": {
1075
+ "0": {
1076
+ "name": "keyword.operator.other.twig"
1077
+ }
1078
+ }
1063
1079
  }
1064
- },
1065
- "match": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\s\\|\\]\\}\\):,]|\\.\\.|\\*\\*)"
1080
+ ]
1066
1081
  },
1067
- "twig-filters-warg-ud": {
1068
- "begin": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\()",
1069
- "beginCaptures": {
1070
- "1": {
1071
- "name": "meta.function-call.other.twig"
1072
- },
1073
- "2": {
1074
- "name": "punctuation.definition.parameters.begin.twig"
1075
- }
1076
- },
1077
- "end": "\\)",
1078
- "endCaptures": {
1079
- "0": {
1080
- "name": "punctuation.definition.parameters.end.twig"
1081
- }
1082
- },
1082
+ "twig-print-tag": {
1083
+ "name": "meta.tag.template.value.twig",
1084
+ "begin": "\\{\\{-?",
1085
+ "end": "-?\\}\\}",
1083
1086
  "patterns": [
1084
1087
  {
1085
1088
  "include": "#twig-constants"
1086
1089
  },
1090
+ {
1091
+ "include": "#twig-operators"
1092
+ },
1087
1093
  {
1088
1094
  "include": "#twig-functions-warg"
1089
1095
  },
@@ -1121,230 +1127,218 @@
1121
1127
  "include": "#twig-hashes"
1122
1128
  }
1123
1129
  ],
1124
- "contentName": "meta.function.arguments.twig"
1125
- },
1126
- "twig-filters-ud": {
1127
- "captures": {
1128
- "1": {
1129
- "name": "meta.function-call.other.twig"
1130
+ "beginCaptures": {
1131
+ "0": {
1132
+ "name": "punctuation.section.tag.twig"
1130
1133
  }
1131
1134
  },
1132
- "match": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)"
1133
- },
1134
- "php": {
1135
- "begin": "(?=(^\\s*)?<\\?)",
1136
- "end": "(?!(^\\s*)?<\\?)",
1137
- "patterns": [
1138
- {
1139
- "include": "text.html.php"
1140
- }
1141
- ]
1142
- },
1143
- "python": {
1144
- "begin": "(?:^\\s*)<\\?python(?!.*\\?>)",
1145
- "end": "\\?>(?:\\s*$\\n)?",
1146
- "name": "source.python.embedded.html",
1147
- "patterns": [
1148
- {
1149
- "include": "source.python"
1135
+ "endCaptures": {
1136
+ "0": {
1137
+ "name": "punctuation.section.tag.twig"
1150
1138
  }
1151
- ]
1139
+ }
1152
1140
  },
1153
- "ruby": {
1141
+ "twig-properties": {
1154
1142
  "patterns": [
1155
1143
  {
1156
- "begin": "<%+#",
1144
+ "match": "(?x)\n (?\u003c=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?=[\\.\\s\\|\\[\\)\\]\\}:,])\n ",
1157
1145
  "captures": {
1158
- "0": {
1159
- "name": "punctuation.definition.comment.erb"
1146
+ "1": {
1147
+ "name": "punctuation.separator.property.twig"
1148
+ },
1149
+ "2": {
1150
+ "name": "variable.other.property.twig"
1160
1151
  }
1161
- },
1162
- "end": "%>",
1163
- "name": "comment.block.erb"
1152
+ }
1164
1153
  },
1165
1154
  {
1166
- "begin": "<%+(?!>)=?",
1167
- "captures": {
1168
- "0": {
1169
- "name": "punctuation.section.embedded.ruby"
1170
- }
1171
- },
1172
- "end": "-?%>",
1173
- "name": "source.ruby.embedded.html",
1155
+ "contentName": "meta.function.arguments.twig",
1156
+ "begin": "(?x)\n (?\u003c=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (\\()\n ",
1157
+ "end": "\\)",
1174
1158
  "patterns": [
1175
1159
  {
1176
- "captures": {
1177
- "1": {
1178
- "name": "punctuation.definition.comment.ruby"
1179
- }
1180
- },
1181
- "match": "(#).*?(?=-?%>)",
1182
- "name": "comment.line.number-sign.ruby"
1160
+ "include": "#twig-constants"
1183
1161
  },
1184
1162
  {
1185
- "include": "source.ruby"
1163
+ "include": "#twig-functions-warg"
1164
+ },
1165
+ {
1166
+ "include": "#twig-functions"
1167
+ },
1168
+ {
1169
+ "include": "#twig-macros"
1170
+ },
1171
+ {
1172
+ "include": "#twig-objects"
1173
+ },
1174
+ {
1175
+ "include": "#twig-properties"
1176
+ },
1177
+ {
1178
+ "include": "#twig-filters-warg"
1179
+ },
1180
+ {
1181
+ "include": "#twig-filters"
1182
+ },
1183
+ {
1184
+ "include": "#twig-filters-warg-ud"
1185
+ },
1186
+ {
1187
+ "include": "#twig-filters-ud"
1188
+ },
1189
+ {
1190
+ "include": "#twig-strings"
1191
+ },
1192
+ {
1193
+ "include": "#twig-arrays"
1186
1194
  }
1187
- ]
1195
+ ],
1196
+ "beginCaptures": {
1197
+ "1": {
1198
+ "name": "punctuation.separator.property.twig"
1199
+ },
1200
+ "2": {
1201
+ "name": "variable.other.property.twig"
1202
+ },
1203
+ "3": {
1204
+ "name": "punctuation.definition.parameters.begin.twig"
1205
+ }
1206
+ },
1207
+ "endCaptures": {
1208
+ "0": {
1209
+ "name": "punctuation.definition.parameters.end.twig"
1210
+ }
1211
+ }
1188
1212
  },
1189
1213
  {
1190
- "begin": "<\\?r(?!>)=?",
1214
+ "match": "(?x)\n (?\u003c=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]])\n (?:\n (\\[)('[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*')(\\])\n |(\\[)(\"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\")(\\])\n |(\\[)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\])\n )\n ",
1191
1215
  "captures": {
1192
- "0": {
1193
- "name": "punctuation.section.embedded.ruby.nitro"
1194
- }
1195
- },
1196
- "end": "-?\\?>",
1197
- "name": "source.ruby.nitro.embedded.html",
1198
- "patterns": [
1199
- {
1200
- "captures": {
1201
- "1": {
1202
- "name": "punctuation.definition.comment.ruby.nitro"
1203
- }
1204
- },
1205
- "match": "(#).*?(?=-?\\?>)",
1206
- "name": "comment.line.number-sign.ruby.nitro"
1216
+ "1": {
1217
+ "name": "punctuation.section.array.begin.twig"
1207
1218
  },
1208
- {
1209
- "include": "source.ruby"
1219
+ "2": {
1220
+ "name": "variable.other.property.twig"
1221
+ },
1222
+ "3": {
1223
+ "name": "punctuation.section.array.end.twig"
1224
+ },
1225
+ "4": {
1226
+ "name": "punctuation.section.array.begin.twig"
1227
+ },
1228
+ "5": {
1229
+ "name": "variable.other.property.twig"
1230
+ },
1231
+ "6": {
1232
+ "name": "punctuation.section.array.end.twig"
1233
+ },
1234
+ "7": {
1235
+ "name": "punctuation.section.array.begin.twig"
1236
+ },
1237
+ "8": {
1238
+ "name": "variable.other.property.twig"
1239
+ },
1240
+ "9": {
1241
+ "name": "punctuation.section.array.end.twig"
1210
1242
  }
1211
- ]
1243
+ }
1212
1244
  }
1213
1245
  ]
1214
1246
  },
1215
- "string-double-quoted": {
1216
- "begin": "\"",
1217
- "beginCaptures": {
1218
- "0": {
1219
- "name": "punctuation.definition.string.begin.html"
1220
- }
1221
- },
1222
- "end": "\"",
1223
- "endCaptures": {
1224
- "0": {
1225
- "name": "punctuation.definition.string.end.html"
1226
- }
1227
- },
1228
- "name": "string.quoted.double.html",
1247
+ "twig-statement-tag": {
1248
+ "name": "meta.tag.template.block.twig",
1249
+ "begin": "\\{%-?",
1250
+ "end": "-?%\\}",
1229
1251
  "patterns": [
1230
1252
  {
1231
- "include": "#embedded-code"
1253
+ "include": "#twig-constants"
1232
1254
  },
1233
1255
  {
1234
- "include": "#entities"
1256
+ "include": "#twig-keywords"
1257
+ },
1258
+ {
1259
+ "include": "#twig-operators"
1260
+ },
1261
+ {
1262
+ "include": "#twig-functions-warg"
1263
+ },
1264
+ {
1265
+ "include": "#twig-functions"
1266
+ },
1267
+ {
1268
+ "include": "#twig-macros"
1269
+ },
1270
+ {
1271
+ "include": "#twig-filters-warg"
1272
+ },
1273
+ {
1274
+ "include": "#twig-filters"
1275
+ },
1276
+ {
1277
+ "include": "#twig-filters-warg-ud"
1278
+ },
1279
+ {
1280
+ "include": "#twig-filters-ud"
1281
+ },
1282
+ {
1283
+ "include": "#twig-objects"
1284
+ },
1285
+ {
1286
+ "include": "#twig-properties"
1287
+ },
1288
+ {
1289
+ "include": "#twig-strings"
1290
+ },
1291
+ {
1292
+ "include": "#twig-arrays"
1293
+ },
1294
+ {
1295
+ "include": "#twig-hashes"
1235
1296
  }
1236
- ]
1237
- },
1238
- "string-single-quoted": {
1239
- "begin": "'",
1297
+ ],
1240
1298
  "beginCaptures": {
1241
1299
  "0": {
1242
- "name": "punctuation.definition.string.begin.html"
1300
+ "name": "punctuation.section.tag.twig"
1243
1301
  }
1244
1302
  },
1245
- "end": "'",
1246
1303
  "endCaptures": {
1247
1304
  "0": {
1248
- "name": "punctuation.definition.string.end.html"
1249
- }
1250
- },
1251
- "name": "string.quoted.single.html",
1252
- "patterns": [
1253
- {
1254
- "include": "#embedded-code"
1255
- },
1256
- {
1257
- "include": "#entities"
1305
+ "name": "punctuation.section.tag.twig"
1258
1306
  }
1259
- ]
1307
+ }
1260
1308
  },
1261
- "tag-generic-attribute": {
1262
- "match": "\\b([a-zA-Z\\-:]+)",
1263
- "name": "entity.other.attribute-name.html"
1264
- },
1265
- "tag-id-attribute": {
1266
- "begin": "\\b(id)\\b\\s*(=)",
1267
- "captures": {
1268
- "1": {
1269
- "name": "entity.other.attribute-name.id.html"
1270
- },
1271
- "2": {
1272
- "name": "punctuation.separator.key-value.html"
1273
- }
1274
- },
1275
- "end": "(?<='|\")",
1276
- "name": "meta.attribute-with-value.id.html",
1309
+ "twig-strings": {
1277
1310
  "patterns": [
1278
1311
  {
1279
- "begin": "\"",
1312
+ "name": "string.quoted.single.twig",
1313
+ "begin": "(?:(?\u003c!\\\\)|(?\u003c=\\\\\\\\))'",
1314
+ "end": "(?:(?\u003c!\\\\)|(?\u003c=\\\\\\\\))'",
1280
1315
  "beginCaptures": {
1281
1316
  "0": {
1282
- "name": "punctuation.definition.string.begin.html"
1317
+ "name": "punctuation.definition.string.begin.twig"
1283
1318
  }
1284
1319
  },
1285
- "contentName": "meta.toc-list.id.html",
1286
- "end": "\"",
1287
1320
  "endCaptures": {
1288
1321
  "0": {
1289
- "name": "punctuation.definition.string.end.html"
1290
- }
1291
- },
1292
- "name": "string.quoted.double.html",
1293
- "patterns": [
1294
- {
1295
- "include": "#embedded-code"
1296
- },
1297
- {
1298
- "include": "#entities"
1322
+ "name": "punctuation.definition.string.end.twig"
1299
1323
  }
1300
- ]
1324
+ }
1301
1325
  },
1302
1326
  {
1303
- "begin": "'",
1327
+ "name": "string.quoted.double.twig",
1328
+ "begin": "(?:(?\u003c!\\\\)|(?\u003c=\\\\\\\\))\"",
1329
+ "end": "(?:(?\u003c!\\\\)|(?\u003c=\\\\\\\\))\"",
1304
1330
  "beginCaptures": {
1305
1331
  "0": {
1306
- "name": "punctuation.definition.string.begin.html"
1332
+ "name": "punctuation.definition.string.begin.twig"
1307
1333
  }
1308
1334
  },
1309
- "contentName": "meta.toc-list.id.html",
1310
- "end": "'",
1311
1335
  "endCaptures": {
1312
1336
  "0": {
1313
- "name": "punctuation.definition.string.end.html"
1314
- }
1315
- },
1316
- "name": "string.quoted.single.html",
1317
- "patterns": [
1318
- {
1319
- "include": "#embedded-code"
1320
- },
1321
- {
1322
- "include": "#entities"
1337
+ "name": "punctuation.definition.string.end.twig"
1323
1338
  }
1324
- ]
1325
- }
1326
- ]
1327
- },
1328
- "tag-stuff": {
1329
- "patterns": [
1330
- {
1331
- "include": "#tag-id-attribute"
1332
- },
1333
- {
1334
- "include": "#tag-generic-attribute"
1335
- },
1336
- {
1337
- "include": "#string-double-quoted"
1338
- },
1339
- {
1340
- "include": "#string-single-quoted"
1341
- },
1342
- {
1343
- "include": "#embedded-code"
1339
+ }
1344
1340
  }
1345
1341
  ]
1346
1342
  }
1347
- },
1348
- "scopeName": "text.html.twig",
1349
- "uuid": "C220B028-86FF-44CB-8A59-27937FC83730"
1350
- }
1343
+ }
1344
+ }