github-linguist 5.3.3 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +5 -2
  3. data/ext/linguist/linguist.c +18 -7
  4. data/grammars/annotation.liquidhaskell.haskell.json +969 -862
  5. data/grammars/config.xcompose.json +22 -25
  6. data/grammars/file.lasso.json +296 -309
  7. data/grammars/hint.haskell.json +867 -766
  8. data/grammars/hint.message.haskell.json +867 -766
  9. data/grammars/hint.type.haskell.json +867 -766
  10. data/grammars/objdump.x86asm.json +20 -24
  11. data/grammars/source.Kotlin.json +220 -225
  12. data/grammars/source.LS.json +36 -55
  13. data/grammars/source.MCPOST.json +24 -38
  14. data/grammars/source.MOD.json +26 -41
  15. data/grammars/source.SASLog.json +9 -16
  16. data/grammars/source.abap.json +48 -56
  17. data/grammars/source.abl.json +8 -14
  18. data/grammars/source.abnf.json +88 -98
  19. data/grammars/source.actionscript.3.json +398 -429
  20. data/grammars/source.acucobol.json +5 -8
  21. data/grammars/source.ada.json +46 -53
  22. data/grammars/source.afm.json +548 -554
  23. data/grammars/source.agc.json +34 -37
  24. data/grammars/source.agda.json +79 -91
  25. data/grammars/source.ahk.json +62 -66
  26. data/grammars/source.alloy.json +16 -20
  27. data/grammars/source.ampl.json +41 -47
  28. data/grammars/source.angelscript.json +71 -80
  29. data/grammars/source.antlr.json +131 -136
  30. data/grammars/source.apache-config.json +93 -99
  31. data/grammars/source.apache-config.mod_perl.json +19 -24
  32. data/grammars/source.apl.json +1038 -1029
  33. data/grammars/source.applescript.json +501 -523
  34. data/grammars/source.apt.json +9 -16
  35. data/grammars/source.asn.json +27 -31
  36. data/grammars/source.asp.json +61 -67
  37. data/grammars/source.aspectj.json +385 -391
  38. data/grammars/source.assembly.json +49 -55
  39. data/grammars/source.ats.json +45 -121
  40. data/grammars/source.autoit.json +64 -69
  41. data/grammars/source.awk.json +172 -176
  42. data/grammars/source.ballerina.json +48 -395
  43. data/grammars/source.batchfile.json +269 -269
  44. data/grammars/source.befunge.json +17 -21
  45. data/grammars/source.bf.json +5 -11
  46. data/grammars/source.bison.json +10 -14
  47. data/grammars/source.blitzmax.json +300 -305
  48. data/grammars/source.boo.json +189 -193
  49. data/grammars/source.brightauthorproject.json +8 -13
  50. data/grammars/source.brightscript.json +37 -47
  51. data/grammars/source.bro.json +134 -140
  52. data/grammars/source.bsl.json +152 -193
  53. data/grammars/source.bsv.json +96 -102
  54. data/grammars/source.c++.json +176 -193
  55. data/grammars/source.c++.qt.json +13 -21
  56. data/grammars/source.c.ec.json +15 -21
  57. data/grammars/source.c.json +237 -251
  58. data/grammars/source.c.platform.json +153 -159
  59. data/grammars/source.c2hs.json +3 -6
  60. data/grammars/source.cabal.json +17 -20
  61. data/grammars/source.cache.cmake.json +18 -23
  62. data/grammars/source.cake.json +4 -7
  63. data/grammars/source.camlp4.ocaml.json +24 -27
  64. data/grammars/source.capnp.json +33 -38
  65. data/grammars/source.ceylon.json +44 -50
  66. data/grammars/source.cfscript.cfc.json +78 -86
  67. data/grammars/source.cfscript.json +513 -520
  68. data/grammars/source.changelogs.rpm-spec.json +8 -16
  69. data/grammars/source.chapel.json +109 -87
  70. data/grammars/source.cirru.json +25 -30
  71. data/grammars/source.clarion.json +41 -54
  72. data/grammars/source.clean.json +90 -95
  73. data/grammars/source.click.json +25 -28
  74. data/grammars/source.clips.json +10 -23
  75. data/grammars/source.clojure.json +151 -168
  76. data/grammars/source.cm.json +14 -19
  77. data/grammars/source.cmake.json +53 -61
  78. data/grammars/source.cobol.json +165 -180
  79. data/grammars/source.coffee.json +454 -462
  80. data/grammars/source.cool.json +36 -43
  81. data/grammars/source.coq.json +17 -21
  82. data/grammars/source.crystal.json +889 -983
  83. data/grammars/source.cs.json +739 -740
  84. data/grammars/source.csound-document.json +69 -73
  85. data/grammars/source.csound-score.json +52 -55
  86. data/grammars/source.csound.json +167 -171
  87. data/grammars/source.css.json +683 -688
  88. data/grammars/source.css.less.json +211 -511
  89. data/grammars/source.css.mss.json +94 -101
  90. data/grammars/source.css.postcss.sugarss.json +260 -0
  91. data/grammars/source.csx.json +4 -7
  92. data/grammars/source.cuda-c++.json +47 -81
  93. data/grammars/source.cwl.json +103 -0
  94. data/grammars/source.cython.json +536 -582
  95. data/grammars/source.d.json +243 -252
  96. data/grammars/source.dart.json +161 -166
  97. data/grammars/source.data-weave.json +901 -905
  98. data/grammars/source.desktop.json +29 -33
  99. data/grammars/source.diff.json +43 -52
  100. data/grammars/source.disasm.json +15 -16
  101. data/grammars/source.ditroff.desc.json +73 -84
  102. data/grammars/source.ditroff.json +60 -61
  103. data/grammars/source.dm.json +202 -213
  104. data/grammars/source.dmf.json +44 -47
  105. data/grammars/source.dockerfile.json +29 -34
  106. data/grammars/source.dot.json +46 -55
  107. data/grammars/source.dylan.json +63 -68
  108. data/grammars/source.ebnf.json +55 -62
  109. data/grammars/source.eiffel.json +57 -62
  110. data/grammars/source.elixir.json +321 -366
  111. data/grammars/source.emacs.lisp.json +458 -249
  112. data/grammars/source.erazor.json +49 -57
  113. data/grammars/source.erlang.json +508 -515
  114. data/grammars/source.essl.json +17 -30
  115. data/grammars/source.factor.json +85 -91
  116. data/grammars/source.fan.json +92 -96
  117. data/grammars/source.fancy.json +93 -118
  118. data/grammars/source.fish.json +74 -98
  119. data/grammars/source.fontforge.json +142 -146
  120. data/grammars/source.forth.json +42 -57
  121. data/grammars/source.fortran.json +193 -231
  122. data/grammars/source.fortran.modern.json +77 -103
  123. data/grammars/source.fsharp.fsi.json +1 -6
  124. data/grammars/source.fsharp.fsl.json +1 -6
  125. data/grammars/source.fsharp.fsx.json +1 -6
  126. data/grammars/source.fsharp.json +148 -153
  127. data/grammars/source.gap.json +60 -70
  128. data/grammars/source.gcode.json +9 -16
  129. data/grammars/source.gdb.json +63 -79
  130. data/grammars/source.gdb.session.json +27 -28
  131. data/grammars/source.gdbregs.json +7 -8
  132. data/grammars/source.gdscript.json +92 -96
  133. data/grammars/source.gerber.json +38 -56
  134. data/grammars/source.gfm.json +447 -462
  135. data/grammars/source.glsl.json +58 -83
  136. data/grammars/source.gn.json +188 -193
  137. data/grammars/source.gnuplot.json +104 -120
  138. data/grammars/source.go.json +169 -181
  139. data/grammars/source.golo.json +82 -87
  140. data/grammars/source.gosu.2.json +58 -68
  141. data/grammars/source.grace.json +266 -270
  142. data/grammars/source.graphql.json +586 -596
  143. data/grammars/source.groovy.gradle.json +18 -22
  144. data/grammars/source.groovy.json +422 -433
  145. data/grammars/source.harbour.json +129 -173
  146. data/grammars/source.haskell.json +871 -772
  147. data/grammars/source.haxe.2.json +402 -413
  148. data/grammars/source.hlsl.json +6 -16
  149. data/grammars/source.hsc2hs.json +1 -4
  150. data/grammars/source.hsig.json +871 -770
  151. data/grammars/source.hss.1.json +122 -144
  152. data/grammars/source.httpspec.json +119 -123
  153. data/grammars/source.hxml.json +8 -15
  154. data/grammars/source.ideal.json +125 -125
  155. data/grammars/source.idl-dlm.json +25 -32
  156. data/grammars/source.idl.json +59 -80
  157. data/grammars/source.idris.json +171 -185
  158. data/grammars/source.inform7.json +117 -121
  159. data/grammars/source.ini.json +37 -43
  160. data/grammars/source.io.json +65 -73
  161. data/grammars/source.ioke.json +72 -78
  162. data/grammars/source.isabelle.root.json +26 -30
  163. data/grammars/source.isabelle.theory.json +46 -50
  164. data/grammars/source.j.json +18 -21
  165. data/grammars/source.jasmin.json +45 -50
  166. data/grammars/source.java-properties.json +31 -41
  167. data/grammars/source.java.json +333 -342
  168. data/grammars/source.jcl.json +15 -18
  169. data/grammars/source.jflex.json +166 -172
  170. data/grammars/source.jison.json +331 -334
  171. data/grammars/source.jisonlex-injection.json +1 -2
  172. data/grammars/source.jisonlex.json +148 -151
  173. data/grammars/source.jolie.json +37 -43
  174. data/grammars/source.jq.json +80 -87
  175. data/grammars/source.js.json +798 -818
  176. data/grammars/source.js.jsx.json +2115 -2225
  177. data/grammars/source.js.objj.json +167 -172
  178. data/grammars/source.js.regexp.json +50 -50
  179. data/grammars/source.js.regexp.replacement.json +7 -7
  180. data/grammars/source.jsdoc.json +94 -94
  181. data/grammars/source.json.json +61 -71
  182. data/grammars/source.julia.console.json +5 -6
  183. data/grammars/source.julia.json +237 -234
  184. data/grammars/source.lean.json +55 -67
  185. data/grammars/source.lid.json +6 -10
  186. data/grammars/source.lilypond.json +181 -195
  187. data/grammars/source.lisp.json +40 -50
  188. data/grammars/source.litcoffee.json +169 -183
  189. data/grammars/source.livescript.json +207 -220
  190. data/grammars/source.llvm.json +28 -38
  191. data/grammars/source.logos.json +7 -14
  192. data/grammars/source.logtalk.json +136 -141
  193. data/grammars/source.loomscript.json +77 -83
  194. data/grammars/source.lsl.json +90 -106
  195. data/grammars/source.lua.json +100 -109
  196. data/grammars/source.makefile.json +181 -188
  197. data/grammars/source.makegen.json +3 -7
  198. data/grammars/source.mask.json +260 -265
  199. data/grammars/source.mata.json +38 -46
  200. data/grammars/source.mathematica.json +155 -167
  201. data/grammars/source.matlab.json +407 -684
  202. data/grammars/source.maxscript.json +293 -281
  203. data/grammars/source.mercury.json +179 -184
  204. data/grammars/source.meson.json +52 -58
  205. data/grammars/source.meta-info.json +64 -74
  206. data/grammars/source.ml.json +107 -113
  207. data/grammars/source.modelica.json +51 -59
  208. data/grammars/source.modula2.json +33 -42
  209. data/grammars/source.monkey.json +234 -241
  210. data/grammars/source.moonscript.json +51 -56
  211. data/grammars/source.mql5.json +74 -101
  212. data/grammars/source.mupad.json +30 -72
  213. data/grammars/source.ncl.json +1 -14
  214. data/grammars/source.ne.json +39 -42
  215. data/grammars/source.nemerle.json +58 -63
  216. data/grammars/source.nesc.json +9 -15
  217. data/grammars/source.netlinx.erb.json +13 -25
  218. data/grammars/source.netlinx.json +231 -292
  219. data/grammars/source.nextflow-groovy.json +1360 -0
  220. data/grammars/source.nextflow.json +74 -0
  221. data/grammars/source.nginx.json +274 -287
  222. data/grammars/source.nim.json +442 -483
  223. data/grammars/source.nim_filter.json +6 -26
  224. data/grammars/source.nimcfg.json +38 -51
  225. data/grammars/source.ninja.json +64 -70
  226. data/grammars/source.nit.json +60 -64
  227. data/grammars/source.nix.json +269 -273
  228. data/grammars/source.nmml.json +31 -37
  229. data/grammars/source.nsis.json +66 -72
  230. data/grammars/source.nu.json +129 -139
  231. data/grammars/source.nut.json +129 -133
  232. data/grammars/source.objc++.json +3 -10
  233. data/grammars/source.objc.json +303 -314
  234. data/grammars/source.objc.platform.json +145 -151
  235. data/grammars/source.ocaml.json +506 -514
  236. data/grammars/source.ocamllex.json +108 -115
  237. data/grammars/source.ocamlyacc.json +116 -123
  238. data/grammars/source.ooc.json +148 -155
  239. data/grammars/source.opa.json +39 -49
  240. data/grammars/source.opal.json +84 -89
  241. data/grammars/source.opalsysdefs.json +9 -13
  242. data/grammars/source.opencobol.json +22 -25
  243. data/grammars/source.opentype.json +148 -152
  244. data/grammars/source.ox.json +36 -44
  245. data/grammars/source.oz.json +31 -38
  246. data/grammars/source.p4.json +49 -59
  247. data/grammars/source.pan.json +273 -278
  248. data/grammars/source.papyrus.skyrim.json +705 -781
  249. data/grammars/source.parrot.pir.json +59 -65
  250. data/grammars/source.pascal.json +54 -61
  251. data/grammars/source.pawn.json +835 -849
  252. data/grammars/source.pcb.board.json +153 -158
  253. data/grammars/source.pcb.schematic.json +134 -138
  254. data/grammars/source.pcb.sexp.json +64 -74
  255. data/grammars/source.pep8.json +28 -32
  256. data/grammars/source.perl.6.json +83 -92
  257. data/grammars/source.perl.json +711 -737
  258. data/grammars/source.perl6fe.json +1204 -1218
  259. data/grammars/source.php.zephir.json +80 -89
  260. data/grammars/source.pic.json +137 -142
  261. data/grammars/source.pig_latin.json +76 -80
  262. data/grammars/source.pike.json +23 -36
  263. data/grammars/source.po.json +74 -84
  264. data/grammars/source.pogoscript.json +23 -29
  265. data/grammars/source.pony.json +98 -108
  266. data/grammars/source.postcss.json +370 -0
  267. data/grammars/source.postscript.json +88 -97
  268. data/grammars/source.pov-ray sdl.json +36 -42
  269. data/grammars/source.powershell.json +175 -197
  270. data/grammars/source.processing.json +236 -249
  271. data/grammars/source.prolog.eclipse.json +33 -38
  272. data/grammars/source.prolog.json +66 -72
  273. data/grammars/source.protobuf.json +88 -94
  274. data/grammars/source.puppet.json +144 -151
  275. data/grammars/source.purescript.json +268 -289
  276. data/grammars/source.pyjade.json +256 -281
  277. data/grammars/source.python.django.json +13 -18
  278. data/grammars/source.python.json +3319 -3367
  279. data/grammars/source.python.salt.json +3 -7
  280. data/grammars/source.qmake.json +83 -90
  281. data/grammars/source.qml.json +57 -78
  282. data/grammars/source.quoting.perl6fe.json +666 -669
  283. data/grammars/source.r.json +75 -84
  284. data/grammars/source.racket.json +17 -38
  285. data/grammars/source.rascal.json +77 -80
  286. data/grammars/source.reason.hover.type.json +1 -1
  287. data/grammars/source.reason.json +1025 -1080
  288. data/grammars/source.rebol.json +167 -177
  289. data/grammars/source.red.json +169 -177
  290. data/grammars/source.regexp.babel.json +74 -77
  291. data/grammars/source.regexp.extended.json +4 -5
  292. data/grammars/source.regexp.json +260 -264
  293. data/grammars/source.regexp.perl6fe.json +108 -111
  294. data/grammars/source.regexp.python.json +210 -215
  295. data/grammars/source.regexp.spin.json +63 -72
  296. data/grammars/source.renpy.json +617 -687
  297. data/grammars/source.rexx.json +25 -32
  298. data/grammars/source.ring.json +84 -114
  299. data/grammars/source.rpm-spec.json +392 -401
  300. data/grammars/source.ruby.gemfile.json +9 -12
  301. data/grammars/source.ruby.json +862 -952
  302. data/grammars/source.ruby.rspec.cucumber.steps.json +90 -103
  303. data/grammars/source.rust.json +223 -281
  304. data/grammars/source.sas.json +88 -105
  305. data/grammars/source.sass.json +100 -108
  306. data/grammars/source.sbt.json +16 -23
  307. data/grammars/source.scad.json +60 -67
  308. data/grammars/source.scala.json +215 -228
  309. data/grammars/source.scaml.json +120 -135
  310. data/grammars/source.scheme.json +119 -136
  311. data/grammars/source.scilab.json +40 -47
  312. data/grammars/source.scss.json +369 -403
  313. data/grammars/source.sdbl.json +14 -25
  314. data/grammars/source.shaderlab.json +24 -27
  315. data/grammars/source.shell.json +409 -440
  316. data/grammars/source.shen.json +75 -94
  317. data/grammars/source.smali.json +232 -293
  318. data/grammars/source.smalltalk.json +60 -75
  319. data/grammars/source.smt.json +67 -82
  320. data/grammars/source.solidity.json +35 -54
  321. data/grammars/source.sp.json +40 -45
  322. data/grammars/source.sparql.json +3 -8
  323. data/grammars/source.spin.json +277 -297
  324. data/grammars/source.sqf.json +34 -44
  325. data/grammars/source.sql.json +142 -156
  326. data/grammars/source.stan.json +201 -160
  327. data/grammars/source.stata.json +57 -68
  328. data/grammars/source.strings.json +26 -30
  329. data/grammars/source.stylus.json +558 -565
  330. data/grammars/source.supercollider.json +33 -40
  331. data/grammars/source.swift.json +999 -1077
  332. data/grammars/source.systemverilog.json +351 -365
  333. data/grammars/source.tcl.json +77 -94
  334. data/grammars/source.tea.json +61 -67
  335. data/grammars/source.terra.json +25 -32
  336. data/grammars/source.terraform.json +68 -88
  337. data/grammars/source.thrift.json +300 -306
  338. data/grammars/source.tl.json +112 -117
  339. data/grammars/source.tla.json +65 -69
  340. data/grammars/source.toc.json +21 -25
  341. data/grammars/source.toml.json +117 -122
  342. data/grammars/source.ts.json +2838 -2774
  343. data/grammars/source.tsx.json +180 -184
  344. data/grammars/source.turing.json +970 -974
  345. data/grammars/source.turtle.json +124 -140
  346. data/grammars/source.txl.json +23 -37
  347. data/grammars/source.ucfconstraints.json +16 -21
  348. data/grammars/source.ur.json +15 -27
  349. data/grammars/source.vala.json +221 -235
  350. data/grammars/source.varnish.vcl.json +117 -129
  351. data/grammars/source.vbnet.json +69 -106
  352. data/grammars/source.verilog.json +101 -107
  353. data/grammars/source.vhdl.json +437 -445
  354. data/grammars/source.viml.json +540 -550
  355. data/grammars/source.wavefront.mtl.json +274 -277
  356. data/grammars/source.wavefront.obj.json +781 -784
  357. data/grammars/source.wdl.json +66 -46
  358. data/grammars/source.webassembly.json +97 -102
  359. data/grammars/source.webidl.json +311 -326
  360. data/grammars/source.x10.json +28 -32
  361. data/grammars/source.x86asm.json +21 -26
  362. data/grammars/source.xc.json +164 -172
  363. data/grammars/source.xq.json +81 -92
  364. data/grammars/source.xtend.json +199 -208
  365. data/grammars/source.yaml-ext.json +118 -124
  366. data/grammars/source.yaml.json +155 -174
  367. data/grammars/source.yaml.salt.json +113 -116
  368. data/grammars/source.yang.json +10 -13
  369. data/grammars/source.yara.json +98 -0
  370. data/grammars/text.bibtex.json +95 -100
  371. data/grammars/text.cfml.basic.json +403 -404
  372. data/grammars/text.elixir.json +18 -23
  373. data/grammars/text.error-list.json +15 -16
  374. data/grammars/text.find-refs.json +487 -488
  375. data/grammars/text.gherkin.feature.json +45 -53
  376. data/grammars/text.haml.json +176 -189
  377. data/grammars/text.hamlc.json +82 -88
  378. data/grammars/text.html.abl.json +16 -21
  379. data/grammars/text.html.asciidoc.json +139 -153
  380. data/grammars/text.html.asdoc.json +145 -155
  381. data/grammars/text.html.asp.json +23 -28
  382. data/grammars/text.html.basic.json +323 -338
  383. data/grammars/text.html.cfm.json +316 -325
  384. data/grammars/text.html.creole.json +177 -189
  385. data/grammars/text.html.django.json +27 -33
  386. data/grammars/text.html.ecr.json +21 -25
  387. data/grammars/text.html.elixir.json +3 -9
  388. data/grammars/text.html.erb.json +81 -85
  389. data/grammars/text.html.erlang.yaws.json +24 -29
  390. data/grammars/text.html.factor.json +5 -11
  391. data/grammars/text.html.ftl.json +16 -25
  392. data/grammars/text.html.handlebars.json +579 -598
  393. data/grammars/text.html.javadoc.json +426 -0
  394. data/grammars/text.html.js.json +11 -17
  395. data/grammars/text.html.jsp.json +377 -384
  396. data/grammars/text.html.liquid.json +8 -18
  397. data/grammars/text.html.mako.json +257 -275
  398. data/grammars/text.html.markdown.source.gfm.apib.json +419 -427
  399. data/grammars/text.html.markdown.source.gfm.mson.json +405 -414
  400. data/grammars/text.html.mediawiki.json +318 -344
  401. data/grammars/text.html.php.blade.json +2134 -2140
  402. data/grammars/text.html.php.json +980 -1013
  403. data/grammars/text.html.slash.json +101 -107
  404. data/grammars/text.html.smarty.json +75 -83
  405. data/grammars/text.html.soy.json +250 -253
  406. data/grammars/text.html.ssp.json +18 -24
  407. data/grammars/text.html.tcl.json +17 -24
  408. data/grammars/text.html.twig.json +712 -718
  409. data/grammars/text.idl-idldoc.json +5 -9
  410. data/grammars/text.jade.json +213 -235
  411. data/grammars/text.junit-test-report.json +25 -28
  412. data/grammars/text.log.latex.json +44 -46
  413. data/grammars/text.marko.json +370 -401
  414. data/grammars/text.python.console.json +3 -7
  415. data/grammars/text.python.traceback.json +2 -5
  416. data/grammars/text.rdoc.json +15 -19
  417. data/grammars/text.restructuredtext.clean.json +8 -11
  418. data/grammars/text.restructuredtext.json +886 -873
  419. data/grammars/text.robot.json +26 -36
  420. data/grammars/text.roff.json +2852 -2915
  421. data/grammars/text.runoff.json +56 -69
  422. data/grammars/text.sfd.json +151 -155
  423. data/grammars/text.shell-session.json +5 -8
  424. data/grammars/text.slim.json +184 -210
  425. data/grammars/text.srt.json +54 -57
  426. data/grammars/text.tex.json +98 -105
  427. data/grammars/text.tex.latex.beamer.json +14 -20
  428. data/grammars/text.tex.latex.haskell.json +883 -782
  429. data/grammars/text.tex.latex.json +281 -291
  430. data/grammars/text.tex.latex.memoir.json +39 -46
  431. data/grammars/text.tex.latex.rd.json +32 -38
  432. data/grammars/text.xml.ant.json +62 -69
  433. data/grammars/text.xml.flex-config.json +1009 -1013
  434. data/grammars/text.xml.genshi.json +10 -16
  435. data/grammars/text.xml.json +117 -130
  436. data/grammars/text.xml.pom.json +235 -240
  437. data/grammars/text.xml.xsl.json +31 -37
  438. data/grammars/text.zone_file.json +24 -29
  439. data/lib/linguist/blob.rb +10 -1
  440. data/lib/linguist/blob_helper.rb +4 -1
  441. data/lib/linguist/file_blob.rb +5 -0
  442. data/lib/linguist/generated.rb +16 -0
  443. data/lib/linguist/heuristics.rb +23 -11
  444. data/lib/linguist/language.rb +3 -6
  445. data/lib/linguist/languages.json +1 -1
  446. data/lib/linguist/languages.yml +74 -12
  447. data/lib/linguist/lazy_blob.rb +15 -1
  448. data/lib/linguist/linguist.bundle +0 -0
  449. data/lib/linguist/samples.json +1666 -3381
  450. data/lib/linguist/shebang.rb +2 -0
  451. data/lib/linguist/strategy/modeline.rb +2 -0
  452. data/lib/linguist/vendor.yml +5 -6
  453. data/lib/linguist/version.rb +1 -1
  454. metadata +12 -11
  455. data/grammars/source.elm.json +0 -381
  456. data/grammars/source.nant-build.json +0 -86
  457. data/grammars/source.octave.json +0 -451
  458. data/grammars/text.html.mediawiki.elm-build-output.json +0 -111
  459. data/grammars/text.html.mediawiki.elm-documentation.json +0 -22
  460. data/grammars/text.html.vue.json +0 -936
@@ -1,37 +1,31 @@
1
1
  {
2
- "comment": "",
3
- "fileTypes": [
4
- "lisp",
5
- "cl",
6
- "l",
7
- "mud",
8
- "el"
9
- ],
10
- "keyEquivalent": "^~L",
11
2
  "name": "Lisp",
3
+ "scopeName": "source.lisp",
12
4
  "patterns": [
13
5
  {
14
6
  "begin": "(^[ \\t]+)?(?=;)",
15
- "beginCaptures": {
16
- "1": {
17
- "name": "punctuation.whitespace.comment.leading.lisp"
18
- }
19
- },
20
7
  "end": "(?!\\G)",
21
8
  "patterns": [
22
9
  {
10
+ "name": "comment.line.semicolon.lisp",
23
11
  "begin": ";",
12
+ "end": "\\n",
24
13
  "beginCaptures": {
25
14
  "0": {
26
15
  "name": "punctuation.definition.comment.lisp"
27
16
  }
28
- },
29
- "end": "\\n",
30
- "name": "comment.line.semicolon.lisp"
17
+ }
31
18
  }
32
- ]
19
+ ],
20
+ "beginCaptures": {
21
+ "1": {
22
+ "name": "punctuation.whitespace.comment.leading.lisp"
23
+ }
24
+ }
33
25
  },
34
26
  {
27
+ "name": "meta.function.lisp",
28
+ "match": "(\\b(?i:(defun|defmethod|defmacro))\\b)(\\s+)((\\w|\\-|\\!|\\?)*)",
35
29
  "captures": {
36
30
  "2": {
37
31
  "name": "storage.type.function-type.lisp"
@@ -39,20 +33,20 @@
39
33
  "4": {
40
34
  "name": "entity.name.function.lisp"
41
35
  }
42
- },
43
- "match": "(\\b(?i:(defun|defmethod|defmacro))\\b)(\\s+)((\\w|\\-|\\!|\\?)*)",
44
- "name": "meta.function.lisp"
36
+ }
45
37
  },
46
38
  {
39
+ "name": "constant.character.lisp",
40
+ "match": "(#|\\?)(\\w|[\\\\+-=\u003c\u003e'\"\u0026#])+",
47
41
  "captures": {
48
42
  "1": {
49
43
  "name": "punctuation.definition.constant.lisp"
50
44
  }
51
- },
52
- "match": "(#|\\?)(\\w|[\\\\+-=<>'\"&#])+",
53
- "name": "constant.character.lisp"
45
+ }
54
46
  },
55
47
  {
48
+ "name": "variable.other.global.lisp",
49
+ "match": "(\\*)(\\S*)(\\*)",
56
50
  "captures": {
57
51
  "1": {
58
52
  "name": "punctuation.definition.variable.lisp"
@@ -60,52 +54,48 @@
60
54
  "3": {
61
55
  "name": "punctuation.definition.variable.lisp"
62
56
  }
63
- },
64
- "match": "(\\*)(\\S*)(\\*)",
65
- "name": "variable.other.global.lisp"
57
+ }
66
58
  },
67
59
  {
68
- "match": "\\b(?i:case|do|let|loop|if|else|when)\\b",
69
- "name": "keyword.control.lisp"
60
+ "name": "keyword.control.lisp",
61
+ "match": "\\b(?i:case|do|let|loop|if|else|when)\\b"
70
62
  },
71
63
  {
72
- "match": "\\b(?i:eq|neq|and|or)\\b",
73
- "name": "keyword.operator.lisp"
64
+ "name": "keyword.operator.lisp",
65
+ "match": "\\b(?i:eq|neq|and|or)\\b"
74
66
  },
75
67
  {
76
- "match": "\\b(?i:null|nil)\\b",
77
- "name": "constant.language.lisp"
68
+ "name": "constant.language.lisp",
69
+ "match": "\\b(?i:null|nil)\\b"
78
70
  },
79
71
  {
80
- "match": "(?<![-\\w])(?i:cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn)(?![-\\w])",
81
- "name": "support.function.lisp"
72
+ "name": "support.function.lisp",
73
+ "match": "(?\u003c![-\\w])(?i:cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn)(?![-\\w])"
82
74
  },
83
75
  {
84
- "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b",
85
- "name": "constant.numeric.lisp"
76
+ "name": "constant.numeric.lisp",
77
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"
86
78
  },
87
79
  {
80
+ "name": "string.quoted.double.lisp",
88
81
  "begin": "\"",
82
+ "end": "\"",
83
+ "patterns": [
84
+ {
85
+ "name": "constant.character.escape.lisp",
86
+ "match": "\\\\."
87
+ }
88
+ ],
89
89
  "beginCaptures": {
90
90
  "0": {
91
91
  "name": "punctuation.definition.string.begin.lisp"
92
92
  }
93
93
  },
94
- "end": "\"",
95
94
  "endCaptures": {
96
95
  "0": {
97
96
  "name": "punctuation.definition.string.end.lisp"
98
97
  }
99
- },
100
- "name": "string.quoted.double.lisp",
101
- "patterns": [
102
- {
103
- "match": "\\\\.",
104
- "name": "constant.character.escape.lisp"
105
- }
106
- ]
98
+ }
107
99
  }
108
- ],
109
- "scopeName": "source.lisp",
110
- "uuid": "00D451C9-6B1D-11D9-8DFA-000D93589AF6"
111
- }
100
+ ]
101
+ }
@@ -1,18 +1,11 @@
1
1
  {
2
- "comment": "CoffeeScript (Literate)",
3
- "fileTypes": [
4
- "litcoffee",
5
- "litcoffee.erb",
6
- "coffee.md"
7
- ],
8
2
  "name": "CoffeeScript (Literate)",
9
3
  "scopeName": "source.litcoffee",
10
- "firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/)\n coffee(?:\\s.+?)?\\s(?:-l|--literate)\n(?:\\s|$)\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n litcoffee\n (?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n |\n # Vim\n (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n litcoffee\n (?=\\s|:|$)\n)",
11
4
  "patterns": [
12
5
  {
6
+ "name": "markup.raw.block.markdown",
13
7
  "begin": "^(?=([ ]{4}|\\t)(?!$))",
14
8
  "end": "^(?!([ ]{4}|\\t))",
15
- "name": "markup.raw.block.markdown",
16
9
  "patterns": [
17
10
  {
18
11
  "include": "#block_raw"
@@ -20,10 +13,9 @@
20
13
  ]
21
14
  },
22
15
  {
23
- "begin": "(?x)^\n(?= [ ]{0,3}>.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
24
- "comment": "We could also use an empty end match and set applyEndPatternLast, but then we must be sure that the begin pattern will only match stuff matched by the sub-patterns.",
25
- "end": "(?x)^\n(?! [ ]{0,3}>.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
26
16
  "name": "meta.block-level.markdown",
17
+ "begin": "(?x)^\n(?= [ ]{0,3}\u003e.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
18
+ "end": "(?x)^\n(?! [ ]{0,3}\u003e.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
27
19
  "patterns": [
28
20
  {
29
21
  "include": "#block_quote"
@@ -37,40 +29,39 @@
37
29
  ]
38
30
  },
39
31
  {
32
+ "name": "markup.list.unnumbered.markdown",
40
33
  "begin": "^[ ]{0,3}([*+-])(?=\\s)",
41
- "captures": {
42
- "1": {
43
- "name": "punctuation.definition.list_item.markdown"
44
- }
45
- },
46
34
  "end": "^(?=\\S|[ ]{4,})|(?!\\G)",
47
- "name": "markup.list.unnumbered.markdown",
48
35
  "patterns": [
49
36
  {
50
37
  "include": "#list-paragraph"
51
38
  }
52
- ]
53
- },
54
- {
55
- "begin": "^[ ]{0,3}([0-9]+\\.)(?=\\s)",
39
+ ],
56
40
  "captures": {
57
41
  "1": {
58
42
  "name": "punctuation.definition.list_item.markdown"
59
43
  }
60
- },
61
- "end": "^(?=\\S|[ ]{4,})|(?!\\G)",
44
+ }
45
+ },
46
+ {
62
47
  "name": "markup.list.numbered.markdown",
48
+ "begin": "^[ ]{0,3}([0-9]+\\.)(?=\\s)",
49
+ "end": "^(?=\\S|[ ]{4,})|(?!\\G)",
63
50
  "patterns": [
64
51
  {
65
52
  "include": "#list-paragraph"
66
53
  }
67
- ]
54
+ ],
55
+ "captures": {
56
+ "1": {
57
+ "name": "punctuation.definition.list_item.markdown"
58
+ }
59
+ }
68
60
  },
69
61
  {
70
- "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)(?!.*?</\\1>)",
71
- "comment": "Markdown formatting is disabled inside block-level tags.",
72
- "end": "(?<=^</\\1>$\\n)",
73
62
  "name": "meta.disable-markdown",
63
+ "begin": "^(?=\u003c(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)(?!.*?\u003c/\\1\u003e)",
64
+ "end": "(?\u003c=^\u003c/\\1\u003e$\\n)",
74
65
  "patterns": [
75
66
  {
76
67
  "include": "text.html.basic"
@@ -78,10 +69,9 @@
78
69
  ]
79
70
  },
80
71
  {
81
- "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)",
82
- "comment": "Same rule but for one line disables.",
83
- "end": "$\\n?",
84
72
  "name": "meta.disable-markdown",
73
+ "begin": "^(?=\u003c(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)",
74
+ "end": "$\\n?",
85
75
  "patterns": [
86
76
  {
87
77
  "include": "text.html.basic"
@@ -89,10 +79,24 @@
89
79
  ]
90
80
  },
91
81
  {
82
+ "name": "meta.link.reference.def.markdown",
83
+ "match": "(?x)\n\\s* # Leading whitespace\n(\\[)(.+?)(\\])(:) # Reference name\n[ \\t]* # Optional whitespace\n(\u003c?)(\\S+?)(\u003e?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in quotes…\n | ((\").+?(\")) # or in parens.\n)? # Title is optional\n\\s* # Optional whitespace\n$",
92
84
  "captures": {
93
85
  "1": {
94
86
  "name": "punctuation.definition.constant.markdown"
95
87
  },
88
+ "10": {
89
+ "name": "punctuation.definition.string.end.markdown"
90
+ },
91
+ "11": {
92
+ "name": "string.other.link.description.title.markdown"
93
+ },
94
+ "12": {
95
+ "name": "punctuation.definition.string.begin.markdown"
96
+ },
97
+ "13": {
98
+ "name": "punctuation.definition.string.end.markdown"
99
+ },
96
100
  "2": {
97
101
  "name": "constant.other.reference.link.markdown"
98
102
  },
@@ -116,27 +120,13 @@
116
120
  },
117
121
  "9": {
118
122
  "name": "punctuation.definition.string.begin.markdown"
119
- },
120
- "10": {
121
- "name": "punctuation.definition.string.end.markdown"
122
- },
123
- "11": {
124
- "name": "string.other.link.description.title.markdown"
125
- },
126
- "12": {
127
- "name": "punctuation.definition.string.begin.markdown"
128
- },
129
- "13": {
130
- "name": "punctuation.definition.string.end.markdown"
131
123
  }
132
- },
133
- "match": "(?x)\n\\s* # Leading whitespace\n(\\[)(.+?)(\\])(:) # Reference name\n[ \\t]* # Optional whitespace\n(<?)(\\S+?)(>?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in quotes…\n | ((\").+?(\")) # or in parens.\n)? # Title is optional\n\\s* # Optional whitespace\n$",
134
- "name": "meta.link.reference.def.markdown"
124
+ }
135
125
  },
136
126
  {
137
- "begin": "^(?=\\S)(?![=-]{3,}(?=$))",
138
- "end": "^(?:\\s*$|(?=[ ]{0,3}>.))|(?=[ \\t]*\\n)(?<=^===|^====|=====|^---|^----|-----)[ \\t]*\\n|(?=^#)",
139
127
  "name": "meta.paragraph.markdown",
128
+ "begin": "^(?=\\S)(?![=-]{3,}(?=$))",
129
+ "end": "^(?:\\s*$|(?=[ ]{0,3}\u003e.))|(?=[ \\t]*\\n)(?\u003c=^===|^====|=====|^---|^----|-----)[ \\t]*\\n|(?=^#)",
140
130
  "patterns": [
141
131
  {
142
132
  "include": "#inline"
@@ -145,45 +135,38 @@
145
135
  "include": "text.html.basic"
146
136
  },
147
137
  {
138
+ "name": "markup.heading.1.markdown",
139
+ "match": "^(={3,})(?=[ \\t]*$)",
148
140
  "captures": {
149
141
  "1": {
150
142
  "name": "punctuation.definition.heading.markdown"
151
143
  }
152
- },
153
- "match": "^(={3,})(?=[ \\t]*$)",
154
- "name": "markup.heading.1.markdown"
144
+ }
155
145
  },
156
146
  {
147
+ "name": "markup.heading.2.markdown",
148
+ "match": "^(-{3,})(?=[ \\t]*$)",
157
149
  "captures": {
158
150
  "1": {
159
151
  "name": "punctuation.definition.heading.markdown"
160
152
  }
161
- },
162
- "match": "^(-{3,})(?=[ \\t]*$)",
163
- "name": "markup.heading.2.markdown"
153
+ }
164
154
  }
165
155
  ]
166
156
  }
167
157
  ],
168
158
  "repository": {
169
159
  "ampersand": {
170
- "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
171
- "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",
172
- "name": "meta.other.valid-ampersand.markdown"
160
+ "name": "meta.other.valid-ampersand.markdown",
161
+ "match": "\u0026(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)"
173
162
  },
174
163
  "block_quote": {
175
- "begin": "\\G[ ]{0,3}(>)(?!$)[ ]?",
176
- "beginCaptures": {
177
- "1": {
178
- "name": "punctuation.definition.blockquote.markdown"
179
- }
180
- },
181
- "comment": " We terminate the block quote when seeing an empty line, a separator or a line with leading > characters. The latter is to “reset” the quote level for quoted lines.",
182
- "end": "(?x)^\n(?= \\s*$\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n| [ ]{0,3}>.\n)",
183
164
  "name": "markup.quote.markdown",
165
+ "begin": "\\G[ ]{0,3}(\u003e)(?!$)[ ]?",
166
+ "end": "(?x)^\n(?= \\s*$\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n| [ ]{0,3}\u003e.\n)",
184
167
  "patterns": [
185
168
  {
186
- "begin": "(?x)\\G\n(?= [ ]{0,3}>.\n)",
169
+ "begin": "(?x)\\G\n(?= [ ]{0,3}\u003e.\n)",
187
170
  "end": "^",
188
171
  "patterns": [
189
172
  {
@@ -192,8 +175,7 @@
192
175
  ]
193
176
  },
194
177
  {
195
- "applyEndPatternLast": 1,
196
- "begin": "(?x)\\G\n(?= ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
178
+ "begin": "(?x)\\G\n(?= ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
197
179
  "end": "^",
198
180
  "patterns": [
199
181
  {
@@ -205,18 +187,24 @@
205
187
  {
206
188
  "include": "#separator"
207
189
  }
208
- ]
190
+ ],
191
+ "applyEndPatternLast": true
209
192
  },
210
193
  {
211
- "begin": "(?x)\\G\n(?! $\n| [ ]{0,3}>.\n| ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
212
- "end": "$|(?<=\\n)",
194
+ "begin": "(?x)\\G\n(?! $\n| [ ]{0,3}\u003e.\n| ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
195
+ "end": "$|(?\u003c=\\n)",
213
196
  "patterns": [
214
197
  {
215
198
  "include": "#inline"
216
199
  }
217
200
  ]
218
201
  }
219
- ]
202
+ ],
203
+ "beginCaptures": {
204
+ "1": {
205
+ "name": "punctuation.definition.blockquote.markdown"
206
+ }
207
+ }
220
208
  },
221
209
  "block_raw": {
222
210
  "name": "markup.raw.block.markdown",
@@ -227,24 +215,19 @@
227
215
  ]
228
216
  },
229
217
  "bold": {
230
- "begin": "(?x)\n(\\*\\*|__)(?=\\S) # Open\n(?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw> # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\1). # Everything besides\n )++\n (?<=\\S)\\1 # Close\n)",
231
- "captures": {
232
- "1": {
233
- "name": "punctuation.definition.bold.markdown"
234
- }
235
- },
236
- "end": "(?<=\\S)(\\1)",
237
218
  "name": "markup.bold.markdown",
219
+ "begin": "(?x)\n(\\*\\*|__)(?=\\S) # Open\n(?=\n (\n \u003c[^\u003e]*+\u003e # HTML tags\n | (?\u003craw\u003e`+)([^`]|(?!(?\u003c!`)\\k\u003craw\u003e(?!`))`)*+\\k\u003craw\u003e # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\-\u003e]?+ # Escapes\n | \\[\n (\n (?\u003csquare\u003e # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g\u003csquare\u003e*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n \u003c?(.*?)\u003e? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?\u003ctitle\u003e['\"])\n (.*?)\n \\k\u003ctitle\u003e\n )?\n \\)\n )\n )\n )\n | (?!(?\u003c=\\S)\\1). # Everything besides\n )++\n (?\u003c=\\S)\\1 # Close\n)",
220
+ "end": "(?\u003c=\\S)(\\1)",
238
221
  "patterns": [
239
222
  {
240
- "applyEndPatternLast": 1,
241
- "begin": "(?=<[^>]*?>)",
242
- "end": "(?<=>)",
223
+ "begin": "(?=\u003c[^\u003e]*?\u003e)",
224
+ "end": "(?\u003c=\u003e)",
243
225
  "patterns": [
244
226
  {
245
227
  "include": "text.html.basic"
246
228
  }
247
- ]
229
+ ],
230
+ "applyEndPatternLast": true
248
231
  },
249
232
  {
250
233
  "include": "#escape"
@@ -282,12 +265,16 @@
282
265
  {
283
266
  "include": "#link-ref"
284
267
  }
285
- ]
268
+ ],
269
+ "captures": {
270
+ "1": {
271
+ "name": "punctuation.definition.bold.markdown"
272
+ }
273
+ }
286
274
  },
287
275
  "bracket": {
288
- "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
289
- "match": "<(?![a-z/?\\$!])",
290
- "name": "meta.other.valid-bracket.markdown"
276
+ "name": "meta.other.valid-bracket.markdown",
277
+ "match": "\u003c(?![a-z/?\\$!])"
291
278
  },
292
279
  "coffee_script": {
293
280
  "patterns": [
@@ -297,51 +284,32 @@
297
284
  ]
298
285
  },
299
286
  "escape": {
300
- "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]",
301
- "name": "constant.character.escape.markdown"
287
+ "name": "constant.character.escape.markdown",
288
+ "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\\u003e]"
302
289
  },
303
290
  "heading": {
304
- "begin": "\\G(#{1,6})(?!#)\\s*(?=\\S)",
305
- "captures": {
306
- "1": {
307
- "name": "punctuation.definition.heading.markdown"
308
- }
309
- },
291
+ "name": "markup.heading.markdown",
310
292
  "contentName": "entity.name.section.markdown",
293
+ "begin": "\\G(#{1,6})(?!#)\\s*(?=\\S)",
311
294
  "end": "\\s*(#*)$\\n?",
312
- "name": "markup.heading.markdown",
313
295
  "patterns": [
314
296
  {
315
297
  "include": "#inline"
316
298
  }
317
- ]
299
+ ],
300
+ "captures": {
301
+ "1": {
302
+ "name": "punctuation.definition.heading.markdown"
303
+ }
304
+ }
318
305
  },
319
306
  "image-inline": {
307
+ "name": "meta.image.inline.markdown",
308
+ "match": "(?x)\n\\! # Images start with !\n(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\]) # Match the link text\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(\u003c?)(\\S+?)(\u003e?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
320
309
  "captures": {
321
310
  "1": {
322
311
  "name": "punctuation.definition.string.begin.markdown"
323
312
  },
324
- "2": {
325
- "name": "string.other.link.description.markdown"
326
- },
327
- "3": {
328
- "name": "punctuation.definition.string.end.markdown"
329
- },
330
- "5": {
331
- "name": "invalid.illegal.whitespace.markdown"
332
- },
333
- "6": {
334
- "name": "punctuation.definition.metadata.markdown"
335
- },
336
- "7": {
337
- "name": "punctuation.definition.link.markdown"
338
- },
339
- "8": {
340
- "name": "markup.underline.link.image.markdown"
341
- },
342
- "9": {
343
- "name": "punctuation.definition.link.markdown"
344
- },
345
313
  "10": {
346
314
  "name": "string.other.link.description.title.markdown"
347
315
  },
@@ -362,12 +330,33 @@
362
330
  },
363
331
  "16": {
364
332
  "name": "punctuation.definition.metadata.markdown"
333
+ },
334
+ "2": {
335
+ "name": "string.other.link.description.markdown"
336
+ },
337
+ "3": {
338
+ "name": "punctuation.definition.string.end.markdown"
339
+ },
340
+ "5": {
341
+ "name": "invalid.illegal.whitespace.markdown"
342
+ },
343
+ "6": {
344
+ "name": "punctuation.definition.metadata.markdown"
345
+ },
346
+ "7": {
347
+ "name": "punctuation.definition.link.markdown"
348
+ },
349
+ "8": {
350
+ "name": "markup.underline.link.image.markdown"
351
+ },
352
+ "9": {
353
+ "name": "punctuation.definition.link.markdown"
365
354
  }
366
- },
367
- "match": "(?x)\n\\! # Images start with !\n(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(<?)(\\S+?)(>?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
368
- "name": "meta.image.inline.markdown"
355
+ }
369
356
  },
370
357
  "image-ref": {
358
+ "name": "meta.image.reference.markdown",
359
+ "match": "\\!(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
371
360
  "captures": {
372
361
  "1": {
373
362
  "name": "punctuation.definition.string.begin.markdown"
@@ -387,9 +376,7 @@
387
376
  "7": {
388
377
  "name": "punctuation.definition.constant.markdown"
389
378
  }
390
- },
391
- "match": "\\!(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
392
- "name": "meta.image.reference.markdown"
379
+ }
393
380
  },
394
381
  "inline": {
395
382
  "patterns": [
@@ -438,24 +425,19 @@
438
425
  ]
439
426
  },
440
427
  "italic": {
441
- "begin": "(?x)\n(\\*|_)(?=\\S) # Open\n(?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw> # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\1\\1 # Must be bold closer\n | (?!(?<=\\S)\\1). # Everything besides\n )++\n (?<=\\S)\\1 # Close\n)",
442
- "captures": {
443
- "1": {
444
- "name": "punctuation.definition.italic.markdown"
445
- }
446
- },
447
- "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
448
428
  "name": "markup.italic.markdown",
429
+ "begin": "(?x)\n(\\*|_)(?=\\S) # Open\n(?=\n (\n \u003c[^\u003e]*+\u003e # HTML tags\n | (?\u003craw\u003e`+)([^`]|(?!(?\u003c!`)\\k\u003craw\u003e(?!`))`)*+\\k\u003craw\u003e # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\-\u003e]?+ # Escapes\n | \\[\n (\n (?\u003csquare\u003e # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g\u003csquare\u003e*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n \u003c?(.*?)\u003e? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?\u003ctitle\u003e['\"])\n (.*?)\n \\k\u003ctitle\u003e\n )?\n \\)\n )\n )\n )\n | \\1\\1 # Must be bold closer\n | (?!(?\u003c=\\S)\\1). # Everything besides\n )++\n (?\u003c=\\S)\\1 # Close\n)",
430
+ "end": "(?\u003c=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
449
431
  "patterns": [
450
432
  {
451
- "applyEndPatternLast": 1,
452
- "begin": "(?=<[^>]*?>)",
453
- "end": "(?<=>)",
433
+ "begin": "(?=\u003c[^\u003e]*?\u003e)",
434
+ "end": "(?\u003c=\u003e)",
454
435
  "patterns": [
455
436
  {
456
437
  "include": "text.html.basic"
457
438
  }
458
- ]
439
+ ],
440
+ "applyEndPatternLast": true
459
441
  },
460
442
  {
461
443
  "include": "#escape"
@@ -493,13 +475,20 @@
493
475
  {
494
476
  "include": "#link-ref"
495
477
  }
496
- ]
478
+ ],
479
+ "captures": {
480
+ "1": {
481
+ "name": "punctuation.definition.italic.markdown"
482
+ }
483
+ }
497
484
  },
498
485
  "line-break": {
499
- "match": " {2,}$",
500
- "name": "meta.dummy.line-break"
486
+ "name": "meta.dummy.line-break",
487
+ "match": " {2,}$"
501
488
  },
502
489
  "link-email": {
490
+ "name": "meta.link.email.lt-gt.markdown",
491
+ "match": "(\u003c)((?:mailto:)?[-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(\u003e)",
503
492
  "captures": {
504
493
  "1": {
505
494
  "name": "punctuation.definition.link.markdown"
@@ -510,11 +499,11 @@
510
499
  "4": {
511
500
  "name": "punctuation.definition.link.markdown"
512
501
  }
513
- },
514
- "match": "(<)((?:mailto:)?[-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(>)",
515
- "name": "meta.link.email.lt-gt.markdown"
502
+ }
516
503
  },
517
504
  "link-inet": {
505
+ "name": "meta.link.inet.markdown",
506
+ "match": "(\u003c)((?:https?|ftp)://.*?)(\u003e)",
518
507
  "captures": {
519
508
  "1": {
520
509
  "name": "punctuation.definition.link.markdown"
@@ -525,36 +514,15 @@
525
514
  "3": {
526
515
  "name": "punctuation.definition.link.markdown"
527
516
  }
528
- },
529
- "match": "(<)((?:https?|ftp)://.*?)(>)",
530
- "name": "meta.link.inet.markdown"
517
+ }
531
518
  },
532
519
  "link-inline": {
520
+ "name": "meta.link.inline.markdown",
521
+ "match": "(?x)\n(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\]) # Match the link text.\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(\u003c?)(.*?)(\u003e?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
533
522
  "captures": {
534
523
  "1": {
535
524
  "name": "punctuation.definition.string.begin.markdown"
536
525
  },
537
- "2": {
538
- "name": "string.other.link.title.markdown"
539
- },
540
- "4": {
541
- "name": "punctuation.definition.string.end.markdown"
542
- },
543
- "5": {
544
- "name": "invalid.illegal.whitespace.markdown"
545
- },
546
- "6": {
547
- "name": "punctuation.definition.metadata.markdown"
548
- },
549
- "7": {
550
- "name": "punctuation.definition.link.markdown"
551
- },
552
- "8": {
553
- "name": "markup.underline.link.markdown"
554
- },
555
- "9": {
556
- "name": "punctuation.definition.link.markdown"
557
- },
558
526
  "10": {
559
527
  "name": "string.other.link.description.title.markdown"
560
528
  },
@@ -575,12 +543,33 @@
575
543
  },
576
544
  "16": {
577
545
  "name": "punctuation.definition.metadata.markdown"
546
+ },
547
+ "2": {
548
+ "name": "string.other.link.title.markdown"
549
+ },
550
+ "4": {
551
+ "name": "punctuation.definition.string.end.markdown"
552
+ },
553
+ "5": {
554
+ "name": "invalid.illegal.whitespace.markdown"
555
+ },
556
+ "6": {
557
+ "name": "punctuation.definition.metadata.markdown"
558
+ },
559
+ "7": {
560
+ "name": "punctuation.definition.link.markdown"
561
+ },
562
+ "8": {
563
+ "name": "markup.underline.link.markdown"
564
+ },
565
+ "9": {
566
+ "name": "punctuation.definition.link.markdown"
578
567
  }
579
- },
580
- "match": "(?x)\n(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text.\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(<?)(.*?)(>?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
581
- "name": "meta.link.inline.markdown"
568
+ }
582
569
  },
583
570
  "link-ref": {
571
+ "name": "meta.link.reference.markdown",
572
+ "match": "(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\])[ ]?(\\[)([^\\]]*+)(\\])",
584
573
  "captures": {
585
574
  "1": {
586
575
  "name": "punctuation.definition.string.begin.markdown"
@@ -600,11 +589,11 @@
600
589
  "7": {
601
590
  "name": "punctuation.definition.constant.end.markdown"
602
591
  }
603
- },
604
- "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)([^\\]]*+)(\\])",
605
- "name": "meta.link.reference.markdown"
592
+ }
606
593
  },
607
594
  "link-ref-literal": {
595
+ "name": "meta.link.reference.literal.markdown",
596
+ "match": "(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\])[ ]?(\\[)(\\])",
608
597
  "captures": {
609
598
  "1": {
610
599
  "name": "punctuation.definition.string.begin.markdown"
@@ -621,34 +610,33 @@
621
610
  "6": {
622
611
  "name": "punctuation.definition.constant.end.markdown"
623
612
  }
624
- },
625
- "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",
626
- "name": "meta.link.reference.literal.markdown"
613
+ }
627
614
  },
628
615
  "list-paragraph": {
629
616
  "patterns": [
630
617
  {
618
+ "name": "meta.paragraph.list.markdown",
631
619
  "begin": "\\G\\s+(?=\\S)",
632
620
  "end": "^\\s*$",
633
- "name": "meta.paragraph.list.markdown",
634
621
  "patterns": [
635
622
  {
636
623
  "include": "#inline"
637
624
  },
638
625
  {
626
+ "match": "^\\s*([*+-]|[0-9]+\\.)",
639
627
  "captures": {
640
628
  "1": {
641
629
  "name": "punctuation.definition.list_item.markdown"
642
630
  }
643
- },
644
- "comment": "Match the list punctuation",
645
- "match": "^\\s*([*+-]|[0-9]+\\.)"
631
+ }
646
632
  }
647
633
  ]
648
634
  }
649
635
  ]
650
636
  },
651
637
  "raw": {
638
+ "name": "markup.raw.inline.markdown",
639
+ "match": "(`+)([^`]|(?!(?\u003c!`)\\1(?!`))`)*+(\\1)",
652
640
  "captures": {
653
641
  "1": {
654
642
  "name": "punctuation.definition.raw.markdown"
@@ -656,13 +644,11 @@
656
644
  "3": {
657
645
  "name": "punctuation.definition.raw.markdown"
658
646
  }
659
- },
660
- "match": "(`+)([^`]|(?!(?<!`)\\1(?!`))`)*+(\\1)",
661
- "name": "markup.raw.inline.markdown"
647
+ }
662
648
  },
663
649
  "separator": {
664
- "match": "\\G[ ]{0,3}([-*_])([ ]{0,2}\\1){2,}[ \\t]*$\\n?",
665
- "name": "meta.separator.markdown"
650
+ "name": "meta.separator.markdown",
651
+ "match": "\\G[ ]{0,3}([-*_])([ ]{0,2}\\1){2,}[ \\t]*$\\n?"
666
652
  }
667
653
  }
668
- }
654
+ }