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
@@ -0,0 +1,98 @@
1
+ {
2
+ "name": "YARA",
3
+ "scopeName": "source.yara",
4
+ "patterns": [
5
+ {
6
+ "name": "comment.block.yara",
7
+ "begin": "/\\*",
8
+ "end": "\\*/",
9
+ "captures": {
10
+ "0": {
11
+ "name": "punctuation.definition.comment.yara"
12
+ }
13
+ }
14
+ },
15
+ {
16
+ "name": "comment.line.yara",
17
+ "begin": "//",
18
+ "end": "$\\n?",
19
+ "patterns": [
20
+ {
21
+ "name": "punctuation.separator.continuation.yara",
22
+ "match": "(?\u003e\\\\\\s*\\n)"
23
+ }
24
+ ],
25
+ "beginCaptures": {
26
+ "0": {
27
+ "name": "punctuation.definition.comment.yara"
28
+ }
29
+ }
30
+ },
31
+ {
32
+ "name": "keyword.yara",
33
+ "match": "\\b(true|false|private|global|rule|strings|meta|condition|and|or|not|filesize|in|at|of|for|all|any|nocase|fullword|wide|ascii|entrypoint|them|int8|int16|int32|uint8|uint16|uint32|include|import|matches|contains)\\b"
34
+ },
35
+ {
36
+ "name": "constant.numeric.yara",
37
+ "match": "\\b(0(x|X)[0-9a-fA-F]+)(MB|KB)?\\b"
38
+ },
39
+ {
40
+ "name": "variable.other.yara",
41
+ "match": "(\\$|#|@)[a-zA-Z0-9_*]*"
42
+ },
43
+ {
44
+ "name": "string.quoted.double.yara",
45
+ "begin": "\"",
46
+ "end": "\"",
47
+ "patterns": [
48
+ {
49
+ "include": "#string_escaped_char"
50
+ }
51
+ ],
52
+ "beginCaptures": {
53
+ "0": {
54
+ "name": "punctuation.definition.string.begin.yara"
55
+ }
56
+ },
57
+ "endCaptures": {
58
+ "0": {
59
+ "name": "punctuation.definition.string.end.yara"
60
+ }
61
+ }
62
+ },
63
+ {
64
+ "name": "string.quoted.double.yara",
65
+ "begin": "/",
66
+ "end": "/",
67
+ "patterns": [
68
+ {
69
+ "include": "#string_escaped_char"
70
+ }
71
+ ],
72
+ "beginCaptures": {
73
+ "0": {
74
+ "name": "punctuation.definition.string.begin.yara"
75
+ }
76
+ },
77
+ "endCaptures": {
78
+ "0": {
79
+ "name": "punctuation.definition.string.end.yara"
80
+ }
81
+ }
82
+ }
83
+ ],
84
+ "repository": {
85
+ "string_escaped_char": {
86
+ "patterns": [
87
+ {
88
+ "name": "constant.character.escape.yara",
89
+ "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})"
90
+ },
91
+ {
92
+ "name": "invalid.illegal.unknown-escape.yara",
93
+ "match": "\\\\."
94
+ }
95
+ ]
96
+ }
97
+ }
98
+ }
@@ -1,22 +1,26 @@
1
1
  {
2
- "comment": "Grammar based on description from http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#comment\n\t\n\tTODO: Does not support @preamble\n\t",
3
- "fileTypes": [
4
- "bib"
5
- ],
6
2
  "name": "BibTeX",
3
+ "scopeName": "text.bibtex",
7
4
  "patterns": [
8
5
  {
6
+ "name": "comment.line.at-sign.bibtex",
9
7
  "begin": "@Comment",
8
+ "end": "$\\n?",
10
9
  "beginCaptures": {
11
10
  "0": {
12
11
  "name": "punctuation.definition.comment.bibtex"
13
12
  }
14
- },
15
- "end": "$\\n?",
16
- "name": "comment.line.at-sign.bibtex"
13
+ }
17
14
  },
18
15
  {
16
+ "name": "meta.string-constant.braces.bibtex",
19
17
  "begin": "((@)String)\\s*(\\{)\\s*([a-zA-Z]*)",
18
+ "end": "\\}",
19
+ "patterns": [
20
+ {
21
+ "include": "#string_content"
22
+ }
23
+ ],
20
24
  "beginCaptures": {
21
25
  "1": {
22
26
  "name": "keyword.other.string-constant.bibtex"
@@ -31,21 +35,21 @@
31
35
  "name": "variable.other.bibtex"
32
36
  }
33
37
  },
34
- "end": "\\}",
35
38
  "endCaptures": {
36
39
  "0": {
37
40
  "name": "punctuation.section.string-constant.end.bibtex"
38
41
  }
39
- },
40
- "name": "meta.string-constant.braces.bibtex",
42
+ }
43
+ },
44
+ {
45
+ "name": "meta.string-constant.parenthesis.bibtex",
46
+ "begin": "((@)String)\\s*(\\()\\s*([a-zA-Z]*)",
47
+ "end": "\\)",
41
48
  "patterns": [
42
49
  {
43
50
  "include": "#string_content"
44
51
  }
45
- ]
46
- },
47
- {
48
- "begin": "((@)String)\\s*(\\()\\s*([a-zA-Z]*)",
52
+ ],
49
53
  "beginCaptures": {
50
54
  "1": {
51
55
  "name": "keyword.other.string-constant.bibtex"
@@ -60,21 +64,39 @@
60
64
  "name": "variable.other.bibtex"
61
65
  }
62
66
  },
63
- "end": "\\)",
64
67
  "endCaptures": {
65
68
  "0": {
66
69
  "name": "punctuation.section.string-constant.end.bibtex"
67
70
  }
68
- },
69
- "name": "meta.string-constant.parenthesis.bibtex",
70
- "patterns": [
71
- {
72
- "include": "#string_content"
73
- }
74
- ]
71
+ }
75
72
  },
76
73
  {
74
+ "name": "meta.entry.braces.bibtex",
77
75
  "begin": "((@)[a-zA-Z]+)\\s*(\\{)\\s*([^\\s,]*)",
76
+ "end": "\\}",
77
+ "patterns": [
78
+ {
79
+ "name": "meta.key-assignment.bibtex",
80
+ "begin": "([a-zA-Z0-9\\!\\$\\\u0026\\*\\+\\-\\.\\/\\:\\;\\\u003c\\\u003e\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",
81
+ "end": "(?=[,}])",
82
+ "patterns": [
83
+ {
84
+ "include": "#string_content"
85
+ },
86
+ {
87
+ "include": "#integer"
88
+ }
89
+ ],
90
+ "beginCaptures": {
91
+ "1": {
92
+ "name": "string.unquoted.key.bibtex"
93
+ },
94
+ "2": {
95
+ "name": "punctuation.separator.key-value.bibtex"
96
+ }
97
+ }
98
+ }
99
+ ],
78
100
  "beginCaptures": {
79
101
  "1": {
80
102
  "name": "keyword.other.entry-type.bibtex"
@@ -89,26 +111,21 @@
89
111
  "name": "entity.name.type.entry-key.bibtex"
90
112
  }
91
113
  },
92
- "end": "\\}",
93
114
  "endCaptures": {
94
115
  "0": {
95
116
  "name": "punctuation.section.entry.end.bibtex"
96
117
  }
97
- },
98
- "name": "meta.entry.braces.bibtex",
118
+ }
119
+ },
120
+ {
121
+ "name": "meta.entry.parenthesis.bibtex",
122
+ "begin": "((@)[a-zA-Z]+)\\s*(\\()\\s*([^\\s,]*)",
123
+ "end": "\\)",
99
124
  "patterns": [
100
125
  {
101
- "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",
102
- "beginCaptures": {
103
- "1": {
104
- "name": "string.unquoted.key.bibtex"
105
- },
106
- "2": {
107
- "name": "punctuation.separator.key-value.bibtex"
108
- }
109
- },
110
- "end": "(?=[,}])",
111
126
  "name": "meta.key-assignment.bibtex",
127
+ "begin": "([a-zA-Z0-9\\!\\$\\\u0026\\*\\+\\-\\.\\/\\:\\;\\\u003c\\\u003e\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",
128
+ "end": "(?=[,)])",
112
129
  "patterns": [
113
130
  {
114
131
  "include": "#string_content"
@@ -116,12 +133,17 @@
116
133
  {
117
134
  "include": "#integer"
118
135
  }
119
- ]
136
+ ],
137
+ "beginCaptures": {
138
+ "1": {
139
+ "name": "string.unquoted.key.bibtex"
140
+ },
141
+ "2": {
142
+ "name": "punctuation.separator.key-value.bibtex"
143
+ }
144
+ }
120
145
  }
121
- ]
122
- },
123
- {
124
- "begin": "((@)[a-zA-Z]+)\\s*(\\()\\s*([^\\s,]*)",
146
+ ],
125
147
  "beginCaptures": {
126
148
  "1": {
127
149
  "name": "keyword.other.entry-type.bibtex"
@@ -136,116 +158,89 @@
136
158
  "name": "entity.name.type.entry-key.bibtex"
137
159
  }
138
160
  },
139
- "end": "\\)",
140
161
  "endCaptures": {
141
162
  "0": {
142
163
  "name": "punctuation.section.entry.end.bibtex"
143
164
  }
144
- },
145
- "name": "meta.entry.parenthesis.bibtex",
146
- "patterns": [
147
- {
148
- "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",
149
- "beginCaptures": {
150
- "1": {
151
- "name": "string.unquoted.key.bibtex"
152
- },
153
- "2": {
154
- "name": "punctuation.separator.key-value.bibtex"
155
- }
156
- },
157
- "end": "(?=[,)])",
158
- "name": "meta.key-assignment.bibtex",
159
- "patterns": [
160
- {
161
- "include": "#string_content"
162
- },
163
- {
164
- "include": "#integer"
165
- }
166
- ]
167
- }
168
- ]
165
+ }
169
166
  },
170
167
  {
168
+ "name": "comment.block.bibtex",
171
169
  "begin": "[^@\\n]",
172
- "end": "(?=@)",
173
- "name": "comment.block.bibtex"
170
+ "end": "(?=@)"
174
171
  }
175
172
  ],
176
173
  "repository": {
177
174
  "integer": {
178
- "match": "\\d+",
179
- "name": "constant.numeric.bibtex"
175
+ "name": "constant.numeric.bibtex",
176
+ "match": "\\d+"
180
177
  },
181
178
  "nested_braces": {
182
179
  "begin": "\\{",
180
+ "end": "\\}",
181
+ "patterns": [
182
+ {
183
+ "include": "#nested_braces"
184
+ }
185
+ ],
183
186
  "beginCaptures": {
184
187
  "0": {
185
188
  "name": "punctuation.definition.group.begin.bibtex"
186
189
  }
187
190
  },
188
- "end": "\\}",
189
191
  "endCaptures": {
190
192
  "0": {
191
193
  "name": "punctuation.definition.group.end.bibtex"
192
194
  }
193
- },
194
- "patterns": [
195
- {
196
- "include": "#nested_braces"
197
- }
198
- ]
195
+ }
199
196
  },
200
197
  "string_content": {
201
198
  "patterns": [
202
199
  {
200
+ "name": "string.quoted.double.bibtex",
203
201
  "begin": "\"",
202
+ "end": "\"",
203
+ "patterns": [
204
+ {
205
+ "include": "#nested_braces"
206
+ }
207
+ ],
204
208
  "beginCaptures": {
205
209
  "0": {
206
210
  "name": "punctuation.definition.string.begin.bibtex"
207
211
  }
208
212
  },
209
- "end": "\"",
210
213
  "endCaptures": {
211
214
  "0": {
212
215
  "name": "punctuation.definition.string.end.bibtex"
213
216
  }
214
- },
215
- "name": "string.quoted.double.bibtex",
217
+ }
218
+ },
219
+ {
220
+ "name": "string.quoted.other.braces.bibtex",
221
+ "begin": "\\{",
222
+ "end": "\\}",
216
223
  "patterns": [
224
+ {
225
+ "name": "invalid.illegal.at-sign.bibtex",
226
+ "match": "@"
227
+ },
217
228
  {
218
229
  "include": "#nested_braces"
219
230
  }
220
- ]
221
- },
222
- {
223
- "begin": "\\{",
231
+ ],
224
232
  "beginCaptures": {
225
233
  "0": {
226
234
  "name": "punctuation.definition.string.begin.bibtex"
227
235
  }
228
236
  },
229
- "end": "\\}",
230
237
  "endCaptures": {
231
238
  "0": {
232
239
  "name": "punctuation.definition.string.end.bibtex"
233
240
  }
234
- },
235
- "name": "string.quoted.other.braces.bibtex",
236
- "patterns": [
237
- {
238
- "match": "@",
239
- "name": "invalid.illegal.at-sign.bibtex"
240
- },
241
- {
242
- "include": "#nested_braces"
243
- }
244
- ]
241
+ }
245
242
  }
246
243
  ]
247
244
  }
248
- },
249
- "scopeName": "text.bibtex",
250
- "uuid": "47F30BA1-6B1D-11D9-9A60-000D93589AF6"
251
- }
245
+ }
246
+ }
@@ -1,26 +1,20 @@
1
1
  {
2
2
  "name": "CFML (do not use)",
3
+ "scopeName": "text.cfml.basic",
3
4
  "patterns": [
4
5
  {
5
- "begin": "(?:^\\s+)?(<)((?i:cfscript))(?![^>]*/>)",
6
- "captures": {
7
- "0": {
8
- "name": "meta.tag.block.cf.script.cfml"
9
- },
10
- "1": {
11
- "name": "punctuation.definition.tag.begin.cfml"
12
- },
13
- "2": {
14
- "name": "entity.name.tag.cf.script.cfml"
15
- },
16
- "3": {
17
- "name": "punctuation.definition.tag.end.cfml"
18
- }
19
- },
20
- "end": "(</)((?i:cfscript))(>)(?:\\s*\\n)?",
6
+ "begin": "(?:^\\s+)?(\u003c)((?i:cfscript))(?![^\u003e]*/\u003e)",
7
+ "end": "(\u003c/)((?i:cfscript))(\u003e)(?:\\s*\\n)?",
21
8
  "patterns": [
22
9
  {
23
- "begin": "(>)",
10
+ "contentName": "source.cfscript.embedded.cfml",
11
+ "begin": "(\u003e)",
12
+ "end": "(?=\u003c/(?i:cfscript))",
13
+ "patterns": [
14
+ {
15
+ "include": "source.cfscript"
16
+ }
17
+ ],
24
18
  "beginCaptures": {
25
19
  "0": {
26
20
  "name": "meta.tag.block.cf.script.cfml"
@@ -28,34 +22,28 @@
28
22
  "1": {
29
23
  "name": "punctuation.definition.tag.end.cfml"
30
24
  }
31
- },
32
- "contentName": "source.cfscript.embedded.cfml",
33
- "end": "(?=</(?i:cfscript))",
34
- "patterns": [
35
- {
36
- "include": "source.cfscript"
37
- }
38
- ]
25
+ }
39
26
  }
40
- ]
41
- },
42
- {
43
- "begin": "(</?)((?i:cffunction))\\b",
44
- "beginCaptures": {
27
+ ],
28
+ "captures": {
29
+ "0": {
30
+ "name": "meta.tag.block.cf.script.cfml"
31
+ },
45
32
  "1": {
46
33
  "name": "punctuation.definition.tag.begin.cfml"
47
34
  },
48
35
  "2": {
49
- "name": "entity.name.tag.cf.function.cfml"
50
- }
51
- },
52
- "end": "(>)",
53
- "endCaptures": {
54
- "1": {
36
+ "name": "entity.name.tag.cf.script.cfml"
37
+ },
38
+ "3": {
55
39
  "name": "punctuation.definition.tag.end.cfml"
56
40
  }
57
- },
41
+ }
42
+ },
43
+ {
58
44
  "name": "meta.tag.block.cf.function.cfml",
45
+ "begin": "(\u003c/?)((?i:cffunction))\\b",
46
+ "end": "(\u003e)",
59
47
  "patterns": [
60
48
  {
61
49
  "include": "#func-name-attribute"
@@ -63,26 +51,26 @@
63
51
  {
64
52
  "include": "#tag-stuff"
65
53
  }
66
- ]
67
- },
68
- {
69
- "begin": "(<)(?i:(cfset|cfreturn))\\b",
54
+ ],
70
55
  "beginCaptures": {
71
56
  "1": {
72
57
  "name": "punctuation.definition.tag.begin.cfml"
73
58
  },
74
59
  "2": {
75
- "name": "entity.name.tag.cf.inline.declaration.cfml"
60
+ "name": "entity.name.tag.cf.function.cfml"
76
61
  }
77
62
  },
78
- "end": "((?:\\s?/)?>)",
79
63
  "endCaptures": {
80
64
  "1": {
81
65
  "name": "punctuation.definition.tag.end.cfml"
82
66
  }
83
- },
67
+ }
68
+ },
69
+ {
84
70
  "name": "meta.tag.inline.cf.any.cfml",
85
71
  "contentName": "source.cfscript.embedded.cfml",
72
+ "begin": "(\u003c)(?i:(cfset|cfreturn))\\b",
73
+ "end": "((?:\\s?/)?\u003e)",
86
74
  "patterns": [
87
75
  {
88
76
  "include": "#cfcomments"
@@ -90,53 +78,52 @@
90
78
  {
91
79
  "include": "source.cfscript"
92
80
  }
93
- ]
94
- },
95
- {
96
- "begin": "(?x)\n\t\t\t\t(<)\n\t\t\t\t\t(?i:\n\t\t\t\t\t\t(cf(queryparam|location|forward|import|param|break|abort|flush\n\t\t\t\t\t\t\t|setting|test|dump|content|include|catch|continue\n\t\t\t\t\t\t\t|file|log|object|invoke|throw|property|htmlhead\n\t\t\t\t\t\t\t|header|argument|exit|trace)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t)\n\t\t\t",
81
+ ],
97
82
  "beginCaptures": {
98
83
  "1": {
99
84
  "name": "punctuation.definition.tag.begin.cfml"
100
85
  },
101
86
  "2": {
102
- "name": "entity.name.tag.cf.inline.other.cfml"
87
+ "name": "entity.name.tag.cf.inline.declaration.cfml"
103
88
  }
104
89
  },
105
- "end": "((?:\\s?/)?>)",
106
90
  "endCaptures": {
107
91
  "1": {
108
92
  "name": "punctuation.definition.tag.end.cfml"
109
93
  }
110
- },
94
+ }
95
+ },
96
+ {
111
97
  "name": "meta.tag.inline.cf.any.cfml",
98
+ "begin": "(?x)\n\t\t\t\t(\u003c)\n\t\t\t\t\t(?i:\n\t\t\t\t\t\t(cf(queryparam|location|forward|import|param|break|abort|flush\n\t\t\t\t\t\t\t|setting|test|dump|content|include|catch|continue\n\t\t\t\t\t\t\t|file|log|object|invoke|throw|property|htmlhead\n\t\t\t\t\t\t\t|header|argument|exit|trace)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t)\n\t\t\t",
99
+ "end": "((?:\\s?/)?\u003e)",
112
100
  "patterns": [
113
101
  {
114
102
  "include": "#tag-stuff"
115
103
  }
116
- ]
117
- },
118
- {
119
- "begin": "(?:^\\s+)?(<)((?i:cfquery))\\b(?![^>]*/>)",
120
- "captures": {
121
- "0": {
122
- "name": "meta.tag.block.cf.query.cfml"
123
- },
104
+ ],
105
+ "beginCaptures": {
124
106
  "1": {
125
107
  "name": "punctuation.definition.tag.begin.cfml"
126
108
  },
127
109
  "2": {
128
- "name": "entity.name.tag.cf.query.cfml"
129
- },
130
- "3": {
131
- "name": "punctuation.definition.tag.end.cfml"
110
+ "name": "entity.name.tag.cf.inline.other.cfml"
132
111
  }
133
112
  },
134
- "end": "(</)((?i:cfquery))(>)(?:\\s*\\n)?",
113
+ "endCaptures": {
114
+ "1": {
115
+ "name": "punctuation.definition.tag.end.cfml"
116
+ }
117
+ }
118
+ },
119
+ {
120
+ "begin": "(?:^\\s+)?(\u003c)((?i:cfquery))\\b(?![^\u003e]*/\u003e)",
121
+ "end": "(\u003c/)((?i:cfquery))(\u003e)(?:\\s*\\n)?",
135
122
  "patterns": [
136
123
  {
137
- "begin": "(?<=cfquery)\\s",
138
- "end": "(?=>)",
139
124
  "name": "meta.tag.block.cf.output.cfml",
125
+ "begin": "(?\u003c=cfquery)\\s",
126
+ "end": "(?=\u003e)",
140
127
  "patterns": [
141
128
  {
142
129
  "include": "#qry-name-attribute"
@@ -147,17 +134,9 @@
147
134
  ]
148
135
  },
149
136
  {
150
- "begin": "(>)",
151
- "beginCaptures": {
152
- "0": {
153
- "name": "meta.tag.block.cf.query.cfml"
154
- },
155
- "1": {
156
- "name": "punctuation.definition.tag.end.cfml"
157
- }
158
- },
159
137
  "contentName": "source.sql.embedded.cfml",
160
- "end": "(?=</(?i:cfquery))",
138
+ "begin": "(\u003e)",
139
+ "end": "(?=\u003c/(?i:cfquery))",
161
140
  "patterns": [
162
141
  {
163
142
  "include": "#string-double-quoted"
@@ -169,7 +148,14 @@
169
148
  "include": "#embedded-tags"
170
149
  },
171
150
  {
172
- "begin": "(</?)((?i:(?:cfqueryparam))\\b)",
151
+ "name": "meta.tag.inline.cf.query-param.cfml",
152
+ "begin": "(\u003c/?)((?i:(?:cfqueryparam))\\b)",
153
+ "end": "((?:\\s?/)?\u003e)",
154
+ "patterns": [
155
+ {
156
+ "include": "#tag-stuff"
157
+ }
158
+ ],
173
159
  "beginCaptures": {
174
160
  "1": {
175
161
  "name": "punctuation.definition.tag.begin.cfml"
@@ -178,18 +164,11 @@
178
164
  "name": "entity.name.tag.cf.inline.param.cfml"
179
165
  }
180
166
  },
181
- "end": "((?:\\s?/)?>)",
182
167
  "endCaptures": {
183
168
  "1": {
184
169
  "name": "punctuation.definition.tag.end.cfml"
185
170
  }
186
- },
187
- "name": "meta.tag.inline.cf.query-param.cfml",
188
- "patterns": [
189
- {
190
- "include": "#tag-stuff"
191
- }
192
- ]
171
+ }
193
172
  },
194
173
  {
195
174
  "include": "#nest-hash"
@@ -197,15 +176,44 @@
197
176
  {
198
177
  "include": "source.sql"
199
178
  }
200
- ]
179
+ ],
180
+ "beginCaptures": {
181
+ "0": {
182
+ "name": "meta.tag.block.cf.query.cfml"
183
+ },
184
+ "1": {
185
+ "name": "punctuation.definition.tag.end.cfml"
186
+ }
187
+ }
201
188
  }
202
- ]
189
+ ],
190
+ "captures": {
191
+ "0": {
192
+ "name": "meta.tag.block.cf.query.cfml"
193
+ },
194
+ "1": {
195
+ "name": "punctuation.definition.tag.begin.cfml"
196
+ },
197
+ "2": {
198
+ "name": "entity.name.tag.cf.query.cfml"
199
+ },
200
+ "3": {
201
+ "name": "punctuation.definition.tag.end.cfml"
202
+ }
203
+ }
203
204
  },
204
205
  {
205
206
  "include": "#embedded-tags"
206
207
  },
207
208
  {
208
- "begin": "(?x)\n\t\t\t\t(</?)\n\t\t\t\t(?i:\n\t\t\t\t\t(cf((output)|(savecontent)|([\\w\\-_.]+)))\n\t\t\t\t)\n\t\t\t\t\\b\n\t\t\t",
209
+ "name": "meta.tag.block.cf.other.cfml",
210
+ "begin": "(?x)\n\t\t\t\t(\u003c/?)\n\t\t\t\t(?i:\n\t\t\t\t\t(cf((output)|(savecontent)|([\\w\\-_.]+)))\n\t\t\t\t)\n\t\t\t\t\\b\n\t\t\t",
211
+ "end": "(\u003e)",
212
+ "patterns": [
213
+ {
214
+ "include": "#tag-stuff"
215
+ }
216
+ ],
209
217
  "beginCaptures": {
210
218
  "1": {
211
219
  "name": "punctuation.definition.tag.begin.cfml"
@@ -214,166 +222,124 @@
214
222
  "name": "entity.name.tag.cf.block.other.cfml"
215
223
  }
216
224
  },
217
- "end": "(>)",
218
225
  "endCaptures": {
219
226
  "1": {
220
227
  "name": "punctuation.definition.tag.end.cfml"
221
228
  }
222
- },
223
- "name": "meta.tag.block.cf.other.cfml",
224
- "patterns": [
225
- {
226
- "include": "#tag-stuff"
227
- }
228
- ]
229
+ }
229
230
  }
230
231
  ],
231
232
  "repository": {
232
- "embedded-tags": {
233
+ "cfcomments": {
233
234
  "patterns": [
234
235
  {
235
- "include": "#cfcomments"
236
- },
237
- {
238
- "include": "#conditionals"
239
- },
240
- {
241
- "include": "#flow-control"
242
- },
243
- {
244
- "include": "#exception-handling"
245
- },
246
- {
247
- "include": "#cfoutput"
236
+ "name": "comment.line.cfml",
237
+ "match": "\u003c!---.*?---\u003e"
248
238
  },
249
239
  {
250
- "include": "#cfmail"
240
+ "name": "comment.block.cfml",
241
+ "begin": "\u003c!---",
242
+ "end": "---\u003e",
243
+ "patterns": [
244
+ {
245
+ "include": "#cfcomments"
246
+ }
247
+ ],
248
+ "captures": {
249
+ "0": {
250
+ "name": "punctuation.definition.comment.cfml"
251
+ }
252
+ }
251
253
  }
252
254
  ]
253
255
  },
254
- "flow-control": {
256
+ "cfmail": {
257
+ "begin": "(?:^\\s+)?(\u003c)((?i:cfmail))\\b(?![^\u003e]*/\u003e)",
258
+ "end": "(\u003c/)((?i:cfmail))(\u003e)(?:\\s*\\n)?",
255
259
  "patterns": [
256
260
  {
257
- "begin": "(?x)\n\t\t\t\t\t\t(</?)\n\t\t\t\t\t\t(?i:\n\t\t\t\t\t\t\t(cfloop)|(cfswitch)|(cf(?:default)?case)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t",
258
- "beginCaptures": {
259
- "1": {
260
- "name": "punctuation.definition.tag.begin.cfml"
261
- },
262
- "2": {
263
- "name": "entity.name.tag.cf.flow-control.loop.cfml"
264
- },
265
- "3": {
266
- "name": "entity.name.tag.cf.flow-control.switch.cfml"
267
- },
268
- "4": {
269
- "name": "entity.name.tag.cf.flow-control.case.cfml"
270
- }
271
- },
272
- "end": "(>)",
273
- "endCaptures": {
274
- "1": {
275
- "name": "punctuation.definition.tag.end.cfml"
276
- }
277
- },
278
- "name": "meta.tag.block.cf.flow-control.cfml",
261
+ "name": "meta.tag.block.cf.mail.cfml",
262
+ "begin": "(?\u003c=cfmail)\\s",
263
+ "end": "(?=\u003e)",
279
264
  "patterns": [
280
265
  {
281
266
  "include": "#tag-stuff"
282
267
  }
283
268
  ]
284
- }
285
- ]
286
- },
287
- "exception-handling": {
288
- "patterns": [
269
+ },
289
270
  {
290
- "begin": "(?x)\n\t\t\t\t\t\t(</?)\n\t\t\t\t\t\t(?i:\n\t\t\t\t\t\t\t(cftry)|(cfcatch)|(cflock)|(cffinally|cferror|cfrethrow|cfthrow)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t",
291
- "beginCaptures": {
292
- "1": {
293
- "name": "punctuation.definition.tag.begin.cfml"
294
- },
295
- "2": {
296
- "name": "entity.name.tag.cf.exception.try.cfml"
297
- },
298
- "3": {
299
- "name": "entity.name.tag.cf.exception.catch.cfml"
300
- },
301
- "4": {
302
- "name": "entity.name.tag.cf.lock.cfml"
271
+ "contentName": "meta.scope.between-mail-tags.cfml",
272
+ "begin": "(\u003e)",
273
+ "end": "(?=\u003c/(?i:cfmail))",
274
+ "patterns": [
275
+ {
276
+ "include": "#nest-hash"
303
277
  },
304
- "5": {
305
- "name": "entity.name.tag.cf.exception.other.cfml"
278
+ {
279
+ "include": "text.html.cfm"
306
280
  }
307
- },
308
- "end": "(>)",
309
- "endCaptures": {
281
+ ],
282
+ "beginCaptures": {
283
+ "0": {
284
+ "name": "meta.tag.block.cf.mail.cfml"
285
+ },
310
286
  "1": {
311
287
  "name": "punctuation.definition.tag.end.cfml"
312
288
  }
313
- },
314
- "name": "meta.tag.block.cf.exceptions.cfml",
315
- "patterns": [
316
- {
317
- "include": "#tag-stuff"
318
- }
319
- ]
289
+ }
320
290
  }
321
- ]
291
+ ],
292
+ "captures": {
293
+ "0": {
294
+ "name": "meta.tag.block.cf.mail.cfml"
295
+ },
296
+ "1": {
297
+ "name": "punctuation.definition.tag.begin.cfml"
298
+ },
299
+ "2": {
300
+ "name": "entity.name.tag.cf.mail.cfml"
301
+ },
302
+ "3": {
303
+ "name": "punctuation.definition.tag.end.cfml"
304
+ }
305
+ }
322
306
  },
323
- "conditionals": {
307
+ "cfoutput": {
308
+ "begin": "(?:^\\s+)?(\u003c)((?i:cfoutput))\\b(?![^\u003e]*/\u003e)",
309
+ "end": "(\u003c/)((?i:cfoutput))(\u003e)(?:\\s*\\n)?",
324
310
  "patterns": [
325
311
  {
326
- "begin": "(</?)((?i:cfif))\\b",
327
- "beginCaptures": {
328
- "1": {
329
- "name": "punctuation.definition.tag.begin.cfml"
330
- },
331
- "2": {
332
- "name": "entity.name.tag.cf.conditional.cfml"
333
- }
334
- },
335
- "end": "(>)",
336
- "endCaptures": {
337
- "1": {
338
- "name": "punctuation.definition.tag.end.cfml"
339
- }
340
- },
341
- "name": "meta.tag.block.cf.conditional.cfml",
342
- "contentName": "source.cfscript.embedded.cfml",
312
+ "name": "meta.tag.block.cf.output.cfml",
313
+ "begin": "(?\u003c=cfoutput)\\s",
314
+ "end": "(?=\u003e)",
343
315
  "patterns": [
344
316
  {
345
- "include": "source.cfscript"
317
+ "include": "#tag-stuff"
346
318
  }
347
319
  ]
348
320
  },
349
321
  {
350
- "begin": "(</?)(?i:(cfelseif|cfelse))",
351
- "captures": {
352
- "1": {
353
- "name": "punctuation.definition.tag.begin.cfml"
322
+ "contentName": "meta.scope.between-output-tags.cfml",
323
+ "begin": "(\u003e)",
324
+ "end": "(?=\u003c/(?i:cfoutput))",
325
+ "patterns": [
326
+ {
327
+ "include": "#nest-hash"
354
328
  },
355
- "2": {
356
- "name": "entity.name.tag.cf.conditional.cfml"
329
+ {
330
+ "include": "text.html.cfm"
357
331
  }
358
- },
359
- "end": "(>)",
360
- "endCaptures": {
332
+ ],
333
+ "beginCaptures": {
334
+ "0": {
335
+ "name": "meta.tag.block.cf.output.cfml"
336
+ },
361
337
  "1": {
362
338
  "name": "punctuation.definition.tag.end.cfml"
363
339
  }
364
- },
365
- "name": "meta.tag.inline.cf.conditional.cfml",
366
- "contentName": "source.cfscript.embedded.cfml",
367
- "patterns": [
368
- {
369
- "include": "source.cfscript"
370
- }
371
- ]
340
+ }
372
341
  }
373
- ]
374
- },
375
- "cfoutput": {
376
- "begin": "(?:^\\s+)?(<)((?i:cfoutput))\\b(?![^>]*/>)",
342
+ ],
377
343
  "captures": {
378
344
  "0": {
379
345
  "name": "meta.tag.block.cf.output.cfml"
@@ -387,152 +353,219 @@
387
353
  "3": {
388
354
  "name": "punctuation.definition.tag.end.cfml"
389
355
  }
390
- },
391
- "end": "(</)((?i:cfoutput))(>)(?:\\s*\\n)?",
356
+ }
357
+ },
358
+ "conditionals": {
392
359
  "patterns": [
393
360
  {
394
- "begin": "(?<=cfoutput)\\s",
395
- "end": "(?=>)",
396
- "name": "meta.tag.block.cf.output.cfml",
361
+ "name": "meta.tag.block.cf.conditional.cfml",
362
+ "contentName": "source.cfscript.embedded.cfml",
363
+ "begin": "(\u003c/?)((?i:cfif))\\b",
364
+ "end": "(\u003e)",
397
365
  "patterns": [
398
366
  {
399
- "include": "#tag-stuff"
367
+ "include": "source.cfscript"
400
368
  }
401
- ]
402
- },
403
- {
404
- "begin": "(>)",
369
+ ],
405
370
  "beginCaptures": {
406
- "0": {
407
- "name": "meta.tag.block.cf.output.cfml"
371
+ "1": {
372
+ "name": "punctuation.definition.tag.begin.cfml"
408
373
  },
374
+ "2": {
375
+ "name": "entity.name.tag.cf.conditional.cfml"
376
+ }
377
+ },
378
+ "endCaptures": {
409
379
  "1": {
410
380
  "name": "punctuation.definition.tag.end.cfml"
411
381
  }
412
- },
413
- "end": "(?=</(?i:cfoutput))",
414
- "contentName": "meta.scope.between-output-tags.cfml",
382
+ }
383
+ },
384
+ {
385
+ "name": "meta.tag.inline.cf.conditional.cfml",
386
+ "contentName": "source.cfscript.embedded.cfml",
387
+ "begin": "(\u003c/?)(?i:(cfelseif|cfelse))",
388
+ "end": "(\u003e)",
415
389
  "patterns": [
416
390
  {
417
- "include": "#nest-hash"
391
+ "include": "source.cfscript"
392
+ }
393
+ ],
394
+ "captures": {
395
+ "1": {
396
+ "name": "punctuation.definition.tag.begin.cfml"
418
397
  },
419
- {
420
- "include": "text.html.cfm"
398
+ "2": {
399
+ "name": "entity.name.tag.cf.conditional.cfml"
421
400
  }
422
- ]
401
+ },
402
+ "endCaptures": {
403
+ "1": {
404
+ "name": "punctuation.definition.tag.end.cfml"
405
+ }
406
+ }
423
407
  }
424
408
  ]
425
409
  },
426
- "cfmail": {
427
- "begin": "(?:^\\s+)?(<)((?i:cfmail))\\b(?![^>]*/>)",
428
- "captures": {
429
- "0": {
430
- "name": "meta.tag.block.cf.mail.cfml"
410
+ "embedded-tags": {
411
+ "patterns": [
412
+ {
413
+ "include": "#cfcomments"
431
414
  },
432
- "1": {
433
- "name": "punctuation.definition.tag.begin.cfml"
415
+ {
416
+ "include": "#conditionals"
434
417
  },
435
- "2": {
436
- "name": "entity.name.tag.cf.mail.cfml"
418
+ {
419
+ "include": "#flow-control"
437
420
  },
438
- "3": {
439
- "name": "punctuation.definition.tag.end.cfml"
421
+ {
422
+ "include": "#exception-handling"
423
+ },
424
+ {
425
+ "include": "#cfoutput"
426
+ },
427
+ {
428
+ "include": "#cfmail"
440
429
  }
441
- },
442
- "end": "(</)((?i:cfmail))(>)(?:\\s*\\n)?",
430
+ ]
431
+ },
432
+ "entities": {
443
433
  "patterns": [
444
434
  {
445
- "begin": "(?<=cfmail)\\s",
446
- "end": "(?=>)",
447
- "name": "meta.tag.block.cf.mail.cfml",
435
+ "name": "constant.character.entity.cfml",
436
+ "match": "(\u0026)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
437
+ "captures": {
438
+ "1": {
439
+ "name": "punctuation.definition.entity.cfml"
440
+ },
441
+ "3": {
442
+ "name": "punctuation.definition.entity.cfml"
443
+ }
444
+ }
445
+ },
446
+ {
447
+ "name": "invalid.illegal.bad-ampersand.cfml",
448
+ "match": "\u0026"
449
+ }
450
+ ]
451
+ },
452
+ "exception-handling": {
453
+ "patterns": [
454
+ {
455
+ "name": "meta.tag.block.cf.exceptions.cfml",
456
+ "begin": "(?x)\n\t\t\t\t\t\t(\u003c/?)\n\t\t\t\t\t\t(?i:\n\t\t\t\t\t\t\t(cftry)|(cfcatch)|(cflock)|(cffinally|cferror|cfrethrow|cfthrow)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t",
457
+ "end": "(\u003e)",
448
458
  "patterns": [
449
459
  {
450
460
  "include": "#tag-stuff"
451
461
  }
452
- ]
453
- },
454
- {
455
- "begin": "(>)",
462
+ ],
456
463
  "beginCaptures": {
457
- "0": {
458
- "name": "meta.tag.block.cf.mail.cfml"
464
+ "1": {
465
+ "name": "punctuation.definition.tag.begin.cfml"
466
+ },
467
+ "2": {
468
+ "name": "entity.name.tag.cf.exception.try.cfml"
469
+ },
470
+ "3": {
471
+ "name": "entity.name.tag.cf.exception.catch.cfml"
459
472
  },
473
+ "4": {
474
+ "name": "entity.name.tag.cf.lock.cfml"
475
+ },
476
+ "5": {
477
+ "name": "entity.name.tag.cf.exception.other.cfml"
478
+ }
479
+ },
480
+ "endCaptures": {
460
481
  "1": {
461
482
  "name": "punctuation.definition.tag.end.cfml"
462
483
  }
463
- },
464
- "end": "(?=</(?i:cfmail))",
465
- "contentName": "meta.scope.between-mail-tags.cfml",
484
+ }
485
+ }
486
+ ]
487
+ },
488
+ "flow-control": {
489
+ "patterns": [
490
+ {
491
+ "name": "meta.tag.block.cf.flow-control.cfml",
492
+ "begin": "(?x)\n\t\t\t\t\t\t(\u003c/?)\n\t\t\t\t\t\t(?i:\n\t\t\t\t\t\t\t(cfloop)|(cfswitch)|(cf(?:default)?case)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t",
493
+ "end": "(\u003e)",
466
494
  "patterns": [
467
495
  {
468
- "include": "#nest-hash"
496
+ "include": "#tag-stuff"
497
+ }
498
+ ],
499
+ "beginCaptures": {
500
+ "1": {
501
+ "name": "punctuation.definition.tag.begin.cfml"
469
502
  },
470
- {
471
- "include": "text.html.cfm"
503
+ "2": {
504
+ "name": "entity.name.tag.cf.flow-control.loop.cfml"
505
+ },
506
+ "3": {
507
+ "name": "entity.name.tag.cf.flow-control.switch.cfml"
508
+ },
509
+ "4": {
510
+ "name": "entity.name.tag.cf.flow-control.case.cfml"
472
511
  }
473
- ]
512
+ },
513
+ "endCaptures": {
514
+ "1": {
515
+ "name": "punctuation.definition.tag.end.cfml"
516
+ }
517
+ }
474
518
  }
475
519
  ]
476
520
  },
477
521
  "func-name-attribute": {
478
- "begin": "\\b(name)\\b\\s*(=)",
479
- "captures": {
480
- "1": {
481
- "name": "entity.other.attribute-name.cfml"
482
- },
483
- "2": {
484
- "name": "punctuation.separator.key-value.cfml"
485
- }
486
- },
487
- "end": "(?<='|\")",
488
522
  "name": "meta.attribute-with-value.name.cfml",
523
+ "begin": "\\b(name)\\b\\s*(=)",
524
+ "end": "(?\u003c='|\")",
489
525
  "patterns": [
490
526
  {
527
+ "name": "string.quoted.double.cfml",
528
+ "contentName": "meta.toc-list.function.cfml",
491
529
  "begin": "\"",
530
+ "end": "\"",
531
+ "patterns": [
532
+ {
533
+ "include": "#entities"
534
+ }
535
+ ],
492
536
  "beginCaptures": {
493
537
  "0": {
494
538
  "name": "punctuation.definition.string.begin.cfml"
495
539
  }
496
540
  },
497
- "contentName": "meta.toc-list.function.cfml",
498
- "end": "\"",
499
541
  "endCaptures": {
500
542
  "0": {
501
543
  "name": "punctuation.definition.string.end.cfml"
502
544
  }
503
- },
504
- "name": "string.quoted.double.cfml",
545
+ }
546
+ },
547
+ {
548
+ "name": "string.quoted.single.cfml",
549
+ "contentName": "meta.toc-list.function.cfml",
550
+ "begin": "'",
551
+ "end": "'",
505
552
  "patterns": [
506
553
  {
507
554
  "include": "#entities"
508
555
  }
509
- ]
510
- },
511
- {
512
- "begin": "'",
556
+ ],
513
557
  "beginCaptures": {
514
558
  "0": {
515
559
  "name": "punctuation.definition.string.begin.cfml"
516
560
  }
517
561
  },
518
- "contentName": "meta.toc-list.function.cfml",
519
- "end": "'",
520
562
  "endCaptures": {
521
563
  "0": {
522
564
  "name": "punctuation.definition.string.end.cfml"
523
565
  }
524
- },
525
- "name": "string.quoted.single.cfml",
526
- "patterns": [
527
- {
528
- "include": "#entities"
529
- }
530
- ]
566
+ }
531
567
  }
532
- ]
533
- },
534
- "qry-name-attribute": {
535
- "begin": "\\b(name)\\b\\s*(=)",
568
+ ],
536
569
  "captures": {
537
570
  "1": {
538
571
  "name": "entity.other.attribute-name.cfml"
@@ -540,111 +573,125 @@
540
573
  "2": {
541
574
  "name": "punctuation.separator.key-value.cfml"
542
575
  }
543
- },
544
- "end": "(?<='|\")",
545
- "name": "meta.attribute-with-value.name.cfml",
576
+ }
577
+ },
578
+ "nest-hash": {
546
579
  "patterns": [
547
580
  {
548
- "begin": "\"",
581
+ "name": "string.escaped.hash.cfml",
582
+ "match": "##"
583
+ },
584
+ {
585
+ "name": "invalid.illegal.unescaped.hash.cfml",
586
+ "match": "(?x)\n\t\t\t\t\t\t\t(\\#)\n\t\t\t\t\t\t\t(?!\t\t# zero width negative lookahead assertion\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t([\\w$]+\t# assertion for plain variables or function names including currency symbol \"$\"\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t(\\[.*\\])\t\t\t\t# asserts a match for anything in square brackets\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\(.*\\))\t\t\t\t# or anything in parens\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\.[\\w$]+)\t\t\t\t# or zero or more \"dot\" notated variables\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*[\\+\\-\\*\\/\u0026]\\s*[\\w$]+)\t# or simple arithmentic operators + concatenation\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*\u0026\\s*[\"|'].+[\"|']) \t# or concatenation with a quoted string\n\t\t\t\t\t\t\t\t\t\t)*\t\t# asserts preceeding square brackets, parens, dot notated vars or arithmetic zero or more times\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\(.*\\))\t # asserts a match for anything in parens\n\t\t\t\t\t\t\t\t)\\#\t\t# asserts closing hash\n\t\t\t\t\t\t\t)"
587
+ },
588
+ {
589
+ "name": "meta.name.interpolated.hash.cfml",
590
+ "contentName": "source.cfscript.embedded.cfml",
591
+ "begin": "(?x)\n\t\t\t\t\t\t\t(\\#)\n\t\t\t\t\t\t\t(?=\t\t# zero width negative lookahead assertion\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t([\\w$]+\t# assertion for plain variables or function names including currency symbol \"$\"\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t(\\[.*\\])\t\t\t\t# asserts a match for anything in square brackets\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\(.*\\))\t\t\t\t# or anything in parens\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\.[\\w$]+)\t\t\t\t# or zero or more \"dot\" notated variables\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*[\\+\\-\\*\\/\u0026]\\s*[\\w$]+)\t# or simple arithmentic operators + concatenation\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*\u0026\\s*[\"|'].+[\"|']) \t# or concatenation with a quoted string\n\t\t\t\t\t\t\t\t\t\t)*\t\t# asserts preceeding square brackets, parens, dot notated vars or arithmetic zero or more times\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\(.*\\))\t # asserts a match for anything in parens\n\t\t\t\t\t\t\t\t)\\#\t\t# asserts closing hash\n\t\t\t\t\t\t\t)",
592
+ "end": "(#)",
593
+ "patterns": [
594
+ {
595
+ "include": "source.cfscript"
596
+ }
597
+ ],
549
598
  "beginCaptures": {
550
- "0": {
551
- "name": "punctuation.definition.string.begin.cfml"
599
+ "1": {
600
+ "name": "punctuation.definition.hash.begin.cfml"
552
601
  }
553
602
  },
554
- "contentName": "meta.toc-list.query.cfml",
555
- "end": "\"",
556
603
  "endCaptures": {
557
- "0": {
558
- "name": "punctuation.definition.string.end.cfml"
604
+ "1": {
605
+ "name": "punctuation.definition.hash.end.cfml"
559
606
  }
560
- },
607
+ }
608
+ }
609
+ ]
610
+ },
611
+ "qry-name-attribute": {
612
+ "name": "meta.attribute-with-value.name.cfml",
613
+ "begin": "\\b(name)\\b\\s*(=)",
614
+ "end": "(?\u003c='|\")",
615
+ "patterns": [
616
+ {
561
617
  "name": "string.quoted.double.cfml",
618
+ "contentName": "meta.toc-list.query.cfml",
619
+ "begin": "\"",
620
+ "end": "\"",
562
621
  "patterns": [
563
622
  {
564
623
  "include": "#entities"
565
624
  }
566
- ]
567
- },
568
- {
569
- "begin": "'",
625
+ ],
570
626
  "beginCaptures": {
571
627
  "0": {
572
628
  "name": "punctuation.definition.string.begin.cfml"
573
629
  }
574
630
  },
575
- "contentName": "meta.toc-list.query.name.cfml",
576
- "end": "'",
577
631
  "endCaptures": {
578
632
  "0": {
579
633
  "name": "punctuation.definition.string.end.cfml"
580
634
  }
581
- },
635
+ }
636
+ },
637
+ {
582
638
  "name": "string.quoted.single.cfml",
639
+ "contentName": "meta.toc-list.query.name.cfml",
640
+ "begin": "'",
641
+ "end": "'",
583
642
  "patterns": [
584
643
  {
585
644
  "include": "#entities"
586
645
  }
587
- ]
588
- }
589
- ]
590
- },
591
- "cfcomments": {
592
- "patterns": [
593
- {
594
- "match": "<!---.*?--->",
595
- "name": "comment.line.cfml"
596
- },
597
- {
598
- "begin": "<!---",
599
- "captures": {
646
+ ],
647
+ "beginCaptures": {
600
648
  "0": {
601
- "name": "punctuation.definition.comment.cfml"
649
+ "name": "punctuation.definition.string.begin.cfml"
602
650
  }
603
651
  },
604
- "end": "--->",
605
- "name": "comment.block.cfml",
606
- "patterns": [
607
- {
608
- "include": "#cfcomments"
652
+ "endCaptures": {
653
+ "0": {
654
+ "name": "punctuation.definition.string.end.cfml"
609
655
  }
610
- ]
656
+ }
611
657
  }
612
- ]
658
+ ],
659
+ "captures": {
660
+ "1": {
661
+ "name": "entity.other.attribute-name.cfml"
662
+ },
663
+ "2": {
664
+ "name": "punctuation.separator.key-value.cfml"
665
+ }
666
+ }
613
667
  },
614
- "tag-stuff": {
668
+ "string-double-quoted": {
669
+ "name": "string.quoted.double.cfml",
670
+ "begin": "\"",
671
+ "end": "\"",
615
672
  "patterns": [
616
673
  {
617
- "include": "#cfcomments"
618
- },
619
- {
620
- "include": "#tag-generic-attribute"
621
- },
622
- {
623
- "include": "#string-double-quoted"
674
+ "include": "#nest-hash"
624
675
  },
625
676
  {
626
- "include": "#string-single-quoted"
677
+ "include": "#entities"
627
678
  }
628
- ]
629
- },
630
- "tag-generic-attribute": {
631
- "match": "\\b([a-zA-Z\\-:]+)",
632
- "name": "entity.other.attribute-name.cfml"
633
- },
634
- "string-double-quoted": {
635
- "begin": "\"",
679
+ ],
636
680
  "beginCaptures": {
637
681
  "0": {
638
682
  "name": "punctuation.definition.string.begin.cfml"
639
683
  }
640
684
  },
641
- "end": "\"",
642
685
  "endCaptures": {
643
686
  "0": {
644
687
  "name": "punctuation.definition.string.end.cfml"
645
688
  }
646
- },
647
- "name": "string.quoted.double.cfml",
689
+ }
690
+ },
691
+ "string-single-quoted": {
692
+ "name": "string.quoted.single.cfml",
693
+ "begin": "'",
694
+ "end": "'",
648
695
  "patterns": [
649
696
  {
650
697
  "include": "#nest-hash"
@@ -652,85 +699,37 @@
652
699
  {
653
700
  "include": "#entities"
654
701
  }
655
- ]
656
- },
657
- "string-single-quoted": {
658
- "begin": "'",
702
+ ],
659
703
  "beginCaptures": {
660
704
  "0": {
661
705
  "name": "punctuation.definition.string.begin.cfml"
662
706
  }
663
707
  },
664
- "end": "'",
665
708
  "endCaptures": {
666
709
  "0": {
667
710
  "name": "punctuation.definition.string.end.cfml"
668
711
  }
669
- },
670
- "name": "string.quoted.single.cfml",
671
- "patterns": [
672
- {
673
- "include": "#nest-hash"
674
- },
675
- {
676
- "include": "#entities"
677
- }
678
- ]
712
+ }
679
713
  },
680
- "entities": {
714
+ "tag-generic-attribute": {
715
+ "name": "entity.other.attribute-name.cfml",
716
+ "match": "\\b([a-zA-Z\\-:]+)"
717
+ },
718
+ "tag-stuff": {
681
719
  "patterns": [
682
720
  {
683
- "captures": {
684
- "1": {
685
- "name": "punctuation.definition.entity.cfml"
686
- },
687
- "3": {
688
- "name": "punctuation.definition.entity.cfml"
689
- }
690
- },
691
- "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
692
- "name": "constant.character.entity.cfml"
721
+ "include": "#cfcomments"
693
722
  },
694
723
  {
695
- "match": "&",
696
- "name": "invalid.illegal.bad-ampersand.cfml"
697
- }
698
- ]
699
- },
700
- "nest-hash": {
701
- "patterns": [
702
- {
703
- "match": "##",
704
- "name": "string.escaped.hash.cfml"
724
+ "include": "#tag-generic-attribute"
705
725
  },
706
726
  {
707
- "match": "(?x)\n\t\t\t\t\t\t\t(\\#)\n\t\t\t\t\t\t\t(?!\t\t# zero width negative lookahead assertion\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t([\\w$]+\t# assertion for plain variables or function names including currency symbol \"$\"\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t(\\[.*\\])\t\t\t\t# asserts a match for anything in square brackets\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\(.*\\))\t\t\t\t# or anything in parens\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\.[\\w$]+)\t\t\t\t# or zero or more \"dot\" notated variables\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*[\\+\\-\\*\\/&]\\s*[\\w$]+)\t# or simple arithmentic operators + concatenation\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*&\\s*[\"|'].+[\"|']) \t# or concatenation with a quoted string\n\t\t\t\t\t\t\t\t\t\t)*\t\t# asserts preceeding square brackets, parens, dot notated vars or arithmetic zero or more times\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\(.*\\))\t # asserts a match for anything in parens\n\t\t\t\t\t\t\t\t)\\#\t\t# asserts closing hash\n\t\t\t\t\t\t\t)",
708
- "name": "invalid.illegal.unescaped.hash.cfml"
727
+ "include": "#string-double-quoted"
709
728
  },
710
729
  {
711
- "begin": "(?x)\n\t\t\t\t\t\t\t(\\#)\n\t\t\t\t\t\t\t(?=\t\t# zero width negative lookahead assertion\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t([\\w$]+\t# assertion for plain variables or function names including currency symbol \"$\"\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t(\\[.*\\])\t\t\t\t# asserts a match for anything in square brackets\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\(.*\\))\t\t\t\t# or anything in parens\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\.[\\w$]+)\t\t\t\t# or zero or more \"dot\" notated variables\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*[\\+\\-\\*\\/&]\\s*[\\w$]+)\t# or simple arithmentic operators + concatenation\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\s*&\\s*[\"|'].+[\"|']) \t# or concatenation with a quoted string\n\t\t\t\t\t\t\t\t\t\t)*\t\t# asserts preceeding square brackets, parens, dot notated vars or arithmetic zero or more times\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\(.*\\))\t # asserts a match for anything in parens\n\t\t\t\t\t\t\t\t)\\#\t\t# asserts closing hash\n\t\t\t\t\t\t\t)",
712
- "beginCaptures": {
713
- "1": {
714
- "name": "punctuation.definition.hash.begin.cfml"
715
- }
716
- },
717
- "end": "(#)",
718
- "endCaptures": {
719
- "1": {
720
- "name": "punctuation.definition.hash.end.cfml"
721
- }
722
- },
723
- "contentName": "source.cfscript.embedded.cfml",
724
- "name": "meta.name.interpolated.hash.cfml",
725
- "patterns": [
726
- {
727
- "include": "source.cfscript"
728
- }
729
- ]
730
+ "include": "#string-single-quoted"
730
731
  }
731
732
  ]
732
733
  }
733
- },
734
- "scopeName": "text.cfml.basic",
735
- "uuid": "C48DE6D0-4226-11E1-B86C-0800200C9A66"
736
- }
734
+ }
735
+ }