github-linguist 5.3.3 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (460) hide show
  1. checksums.yaml +4 -4
  2. data/bin/git-linguist +5 -2
  3. data/ext/linguist/linguist.c +18 -7
  4. data/grammars/annotation.liquidhaskell.haskell.json +969 -862
  5. data/grammars/config.xcompose.json +22 -25
  6. data/grammars/file.lasso.json +296 -309
  7. data/grammars/hint.haskell.json +867 -766
  8. data/grammars/hint.message.haskell.json +867 -766
  9. data/grammars/hint.type.haskell.json +867 -766
  10. data/grammars/objdump.x86asm.json +20 -24
  11. data/grammars/source.Kotlin.json +220 -225
  12. data/grammars/source.LS.json +36 -55
  13. data/grammars/source.MCPOST.json +24 -38
  14. data/grammars/source.MOD.json +26 -41
  15. data/grammars/source.SASLog.json +9 -16
  16. data/grammars/source.abap.json +48 -56
  17. data/grammars/source.abl.json +8 -14
  18. data/grammars/source.abnf.json +88 -98
  19. data/grammars/source.actionscript.3.json +398 -429
  20. data/grammars/source.acucobol.json +5 -8
  21. data/grammars/source.ada.json +46 -53
  22. data/grammars/source.afm.json +548 -554
  23. data/grammars/source.agc.json +34 -37
  24. data/grammars/source.agda.json +79 -91
  25. data/grammars/source.ahk.json +62 -66
  26. data/grammars/source.alloy.json +16 -20
  27. data/grammars/source.ampl.json +41 -47
  28. data/grammars/source.angelscript.json +71 -80
  29. data/grammars/source.antlr.json +131 -136
  30. data/grammars/source.apache-config.json +93 -99
  31. data/grammars/source.apache-config.mod_perl.json +19 -24
  32. data/grammars/source.apl.json +1038 -1029
  33. data/grammars/source.applescript.json +501 -523
  34. data/grammars/source.apt.json +9 -16
  35. data/grammars/source.asn.json +27 -31
  36. data/grammars/source.asp.json +61 -67
  37. data/grammars/source.aspectj.json +385 -391
  38. data/grammars/source.assembly.json +49 -55
  39. data/grammars/source.ats.json +45 -121
  40. data/grammars/source.autoit.json +64 -69
  41. data/grammars/source.awk.json +172 -176
  42. data/grammars/source.ballerina.json +48 -395
  43. data/grammars/source.batchfile.json +269 -269
  44. data/grammars/source.befunge.json +17 -21
  45. data/grammars/source.bf.json +5 -11
  46. data/grammars/source.bison.json +10 -14
  47. data/grammars/source.blitzmax.json +300 -305
  48. data/grammars/source.boo.json +189 -193
  49. data/grammars/source.brightauthorproject.json +8 -13
  50. data/grammars/source.brightscript.json +37 -47
  51. data/grammars/source.bro.json +134 -140
  52. data/grammars/source.bsl.json +152 -193
  53. data/grammars/source.bsv.json +96 -102
  54. data/grammars/source.c++.json +176 -193
  55. data/grammars/source.c++.qt.json +13 -21
  56. data/grammars/source.c.ec.json +15 -21
  57. data/grammars/source.c.json +237 -251
  58. data/grammars/source.c.platform.json +153 -159
  59. data/grammars/source.c2hs.json +3 -6
  60. data/grammars/source.cabal.json +17 -20
  61. data/grammars/source.cache.cmake.json +18 -23
  62. data/grammars/source.cake.json +4 -7
  63. data/grammars/source.camlp4.ocaml.json +24 -27
  64. data/grammars/source.capnp.json +33 -38
  65. data/grammars/source.ceylon.json +44 -50
  66. data/grammars/source.cfscript.cfc.json +78 -86
  67. data/grammars/source.cfscript.json +513 -520
  68. data/grammars/source.changelogs.rpm-spec.json +8 -16
  69. data/grammars/source.chapel.json +109 -87
  70. data/grammars/source.cirru.json +25 -30
  71. data/grammars/source.clarion.json +41 -54
  72. data/grammars/source.clean.json +90 -95
  73. data/grammars/source.click.json +25 -28
  74. data/grammars/source.clips.json +10 -23
  75. data/grammars/source.clojure.json +151 -168
  76. data/grammars/source.cm.json +14 -19
  77. data/grammars/source.cmake.json +53 -61
  78. data/grammars/source.cobol.json +165 -180
  79. data/grammars/source.coffee.json +454 -462
  80. data/grammars/source.cool.json +36 -43
  81. data/grammars/source.coq.json +17 -21
  82. data/grammars/source.crystal.json +889 -983
  83. data/grammars/source.cs.json +739 -740
  84. data/grammars/source.csound-document.json +69 -73
  85. data/grammars/source.csound-score.json +52 -55
  86. data/grammars/source.csound.json +167 -171
  87. data/grammars/source.css.json +683 -688
  88. data/grammars/source.css.less.json +211 -511
  89. data/grammars/source.css.mss.json +94 -101
  90. data/grammars/source.css.postcss.sugarss.json +260 -0
  91. data/grammars/source.csx.json +4 -7
  92. data/grammars/source.cuda-c++.json +47 -81
  93. data/grammars/source.cwl.json +103 -0
  94. data/grammars/source.cython.json +536 -582
  95. data/grammars/source.d.json +243 -252
  96. data/grammars/source.dart.json +161 -166
  97. data/grammars/source.data-weave.json +901 -905
  98. data/grammars/source.desktop.json +29 -33
  99. data/grammars/source.diff.json +43 -52
  100. data/grammars/source.disasm.json +15 -16
  101. data/grammars/source.ditroff.desc.json +73 -84
  102. data/grammars/source.ditroff.json +60 -61
  103. data/grammars/source.dm.json +202 -213
  104. data/grammars/source.dmf.json +44 -47
  105. data/grammars/source.dockerfile.json +29 -34
  106. data/grammars/source.dot.json +46 -55
  107. data/grammars/source.dylan.json +63 -68
  108. data/grammars/source.ebnf.json +55 -62
  109. data/grammars/source.eiffel.json +57 -62
  110. data/grammars/source.elixir.json +321 -366
  111. data/grammars/source.emacs.lisp.json +458 -249
  112. data/grammars/source.erazor.json +49 -57
  113. data/grammars/source.erlang.json +508 -515
  114. data/grammars/source.essl.json +17 -30
  115. data/grammars/source.factor.json +85 -91
  116. data/grammars/source.fan.json +92 -96
  117. data/grammars/source.fancy.json +93 -118
  118. data/grammars/source.fish.json +74 -98
  119. data/grammars/source.fontforge.json +142 -146
  120. data/grammars/source.forth.json +42 -57
  121. data/grammars/source.fortran.json +193 -231
  122. data/grammars/source.fortran.modern.json +77 -103
  123. data/grammars/source.fsharp.fsi.json +1 -6
  124. data/grammars/source.fsharp.fsl.json +1 -6
  125. data/grammars/source.fsharp.fsx.json +1 -6
  126. data/grammars/source.fsharp.json +148 -153
  127. data/grammars/source.gap.json +60 -70
  128. data/grammars/source.gcode.json +9 -16
  129. data/grammars/source.gdb.json +63 -79
  130. data/grammars/source.gdb.session.json +27 -28
  131. data/grammars/source.gdbregs.json +7 -8
  132. data/grammars/source.gdscript.json +92 -96
  133. data/grammars/source.gerber.json +38 -56
  134. data/grammars/source.gfm.json +447 -462
  135. data/grammars/source.glsl.json +58 -83
  136. data/grammars/source.gn.json +188 -193
  137. data/grammars/source.gnuplot.json +104 -120
  138. data/grammars/source.go.json +169 -181
  139. data/grammars/source.golo.json +82 -87
  140. data/grammars/source.gosu.2.json +58 -68
  141. data/grammars/source.grace.json +266 -270
  142. data/grammars/source.graphql.json +586 -596
  143. data/grammars/source.groovy.gradle.json +18 -22
  144. data/grammars/source.groovy.json +422 -433
  145. data/grammars/source.harbour.json +129 -173
  146. data/grammars/source.haskell.json +871 -772
  147. data/grammars/source.haxe.2.json +402 -413
  148. data/grammars/source.hlsl.json +6 -16
  149. data/grammars/source.hsc2hs.json +1 -4
  150. data/grammars/source.hsig.json +871 -770
  151. data/grammars/source.hss.1.json +122 -144
  152. data/grammars/source.httpspec.json +119 -123
  153. data/grammars/source.hxml.json +8 -15
  154. data/grammars/source.ideal.json +125 -125
  155. data/grammars/source.idl-dlm.json +25 -32
  156. data/grammars/source.idl.json +59 -80
  157. data/grammars/source.idris.json +171 -185
  158. data/grammars/source.inform7.json +117 -121
  159. data/grammars/source.ini.json +37 -43
  160. data/grammars/source.io.json +65 -73
  161. data/grammars/source.ioke.json +72 -78
  162. data/grammars/source.isabelle.root.json +26 -30
  163. data/grammars/source.isabelle.theory.json +46 -50
  164. data/grammars/source.j.json +18 -21
  165. data/grammars/source.jasmin.json +45 -50
  166. data/grammars/source.java-properties.json +31 -41
  167. data/grammars/source.java.json +333 -342
  168. data/grammars/source.jcl.json +15 -18
  169. data/grammars/source.jflex.json +166 -172
  170. data/grammars/source.jison.json +331 -334
  171. data/grammars/source.jisonlex-injection.json +1 -2
  172. data/grammars/source.jisonlex.json +148 -151
  173. data/grammars/source.jolie.json +37 -43
  174. data/grammars/source.jq.json +80 -87
  175. data/grammars/source.js.json +798 -818
  176. data/grammars/source.js.jsx.json +2115 -2225
  177. data/grammars/source.js.objj.json +167 -172
  178. data/grammars/source.js.regexp.json +50 -50
  179. data/grammars/source.js.regexp.replacement.json +7 -7
  180. data/grammars/source.jsdoc.json +94 -94
  181. data/grammars/source.json.json +61 -71
  182. data/grammars/source.julia.console.json +5 -6
  183. data/grammars/source.julia.json +237 -234
  184. data/grammars/source.lean.json +55 -67
  185. data/grammars/source.lid.json +6 -10
  186. data/grammars/source.lilypond.json +181 -195
  187. data/grammars/source.lisp.json +40 -50
  188. data/grammars/source.litcoffee.json +169 -183
  189. data/grammars/source.livescript.json +207 -220
  190. data/grammars/source.llvm.json +28 -38
  191. data/grammars/source.logos.json +7 -14
  192. data/grammars/source.logtalk.json +136 -141
  193. data/grammars/source.loomscript.json +77 -83
  194. data/grammars/source.lsl.json +90 -106
  195. data/grammars/source.lua.json +100 -109
  196. data/grammars/source.makefile.json +181 -188
  197. data/grammars/source.makegen.json +3 -7
  198. data/grammars/source.mask.json +260 -265
  199. data/grammars/source.mata.json +38 -46
  200. data/grammars/source.mathematica.json +155 -167
  201. data/grammars/source.matlab.json +407 -684
  202. data/grammars/source.maxscript.json +293 -281
  203. data/grammars/source.mercury.json +179 -184
  204. data/grammars/source.meson.json +52 -58
  205. data/grammars/source.meta-info.json +64 -74
  206. data/grammars/source.ml.json +107 -113
  207. data/grammars/source.modelica.json +51 -59
  208. data/grammars/source.modula2.json +33 -42
  209. data/grammars/source.monkey.json +234 -241
  210. data/grammars/source.moonscript.json +51 -56
  211. data/grammars/source.mql5.json +74 -101
  212. data/grammars/source.mupad.json +30 -72
  213. data/grammars/source.ncl.json +1 -14
  214. data/grammars/source.ne.json +39 -42
  215. data/grammars/source.nemerle.json +58 -63
  216. data/grammars/source.nesc.json +9 -15
  217. data/grammars/source.netlinx.erb.json +13 -25
  218. data/grammars/source.netlinx.json +231 -292
  219. data/grammars/source.nextflow-groovy.json +1360 -0
  220. data/grammars/source.nextflow.json +74 -0
  221. data/grammars/source.nginx.json +274 -287
  222. data/grammars/source.nim.json +442 -483
  223. data/grammars/source.nim_filter.json +6 -26
  224. data/grammars/source.nimcfg.json +38 -51
  225. data/grammars/source.ninja.json +64 -70
  226. data/grammars/source.nit.json +60 -64
  227. data/grammars/source.nix.json +269 -273
  228. data/grammars/source.nmml.json +31 -37
  229. data/grammars/source.nsis.json +66 -72
  230. data/grammars/source.nu.json +129 -139
  231. data/grammars/source.nut.json +129 -133
  232. data/grammars/source.objc++.json +3 -10
  233. data/grammars/source.objc.json +303 -314
  234. data/grammars/source.objc.platform.json +145 -151
  235. data/grammars/source.ocaml.json +506 -514
  236. data/grammars/source.ocamllex.json +108 -115
  237. data/grammars/source.ocamlyacc.json +116 -123
  238. data/grammars/source.ooc.json +148 -155
  239. data/grammars/source.opa.json +39 -49
  240. data/grammars/source.opal.json +84 -89
  241. data/grammars/source.opalsysdefs.json +9 -13
  242. data/grammars/source.opencobol.json +22 -25
  243. data/grammars/source.opentype.json +148 -152
  244. data/grammars/source.ox.json +36 -44
  245. data/grammars/source.oz.json +31 -38
  246. data/grammars/source.p4.json +49 -59
  247. data/grammars/source.pan.json +273 -278
  248. data/grammars/source.papyrus.skyrim.json +705 -781
  249. data/grammars/source.parrot.pir.json +59 -65
  250. data/grammars/source.pascal.json +54 -61
  251. data/grammars/source.pawn.json +835 -849
  252. data/grammars/source.pcb.board.json +153 -158
  253. data/grammars/source.pcb.schematic.json +134 -138
  254. data/grammars/source.pcb.sexp.json +64 -74
  255. data/grammars/source.pep8.json +28 -32
  256. data/grammars/source.perl.6.json +83 -92
  257. data/grammars/source.perl.json +711 -737
  258. data/grammars/source.perl6fe.json +1204 -1218
  259. data/grammars/source.php.zephir.json +80 -89
  260. data/grammars/source.pic.json +137 -142
  261. data/grammars/source.pig_latin.json +76 -80
  262. data/grammars/source.pike.json +23 -36
  263. data/grammars/source.po.json +74 -84
  264. data/grammars/source.pogoscript.json +23 -29
  265. data/grammars/source.pony.json +98 -108
  266. data/grammars/source.postcss.json +370 -0
  267. data/grammars/source.postscript.json +88 -97
  268. data/grammars/source.pov-ray sdl.json +36 -42
  269. data/grammars/source.powershell.json +175 -197
  270. data/grammars/source.processing.json +236 -249
  271. data/grammars/source.prolog.eclipse.json +33 -38
  272. data/grammars/source.prolog.json +66 -72
  273. data/grammars/source.protobuf.json +88 -94
  274. data/grammars/source.puppet.json +144 -151
  275. data/grammars/source.purescript.json +268 -289
  276. data/grammars/source.pyjade.json +256 -281
  277. data/grammars/source.python.django.json +13 -18
  278. data/grammars/source.python.json +3319 -3367
  279. data/grammars/source.python.salt.json +3 -7
  280. data/grammars/source.qmake.json +83 -90
  281. data/grammars/source.qml.json +57 -78
  282. data/grammars/source.quoting.perl6fe.json +666 -669
  283. data/grammars/source.r.json +75 -84
  284. data/grammars/source.racket.json +17 -38
  285. data/grammars/source.rascal.json +77 -80
  286. data/grammars/source.reason.hover.type.json +1 -1
  287. data/grammars/source.reason.json +1025 -1080
  288. data/grammars/source.rebol.json +167 -177
  289. data/grammars/source.red.json +169 -177
  290. data/grammars/source.regexp.babel.json +74 -77
  291. data/grammars/source.regexp.extended.json +4 -5
  292. data/grammars/source.regexp.json +260 -264
  293. data/grammars/source.regexp.perl6fe.json +108 -111
  294. data/grammars/source.regexp.python.json +210 -215
  295. data/grammars/source.regexp.spin.json +63 -72
  296. data/grammars/source.renpy.json +617 -687
  297. data/grammars/source.rexx.json +25 -32
  298. data/grammars/source.ring.json +84 -114
  299. data/grammars/source.rpm-spec.json +392 -401
  300. data/grammars/source.ruby.gemfile.json +9 -12
  301. data/grammars/source.ruby.json +862 -952
  302. data/grammars/source.ruby.rspec.cucumber.steps.json +90 -103
  303. data/grammars/source.rust.json +223 -281
  304. data/grammars/source.sas.json +88 -105
  305. data/grammars/source.sass.json +100 -108
  306. data/grammars/source.sbt.json +16 -23
  307. data/grammars/source.scad.json +60 -67
  308. data/grammars/source.scala.json +215 -228
  309. data/grammars/source.scaml.json +120 -135
  310. data/grammars/source.scheme.json +119 -136
  311. data/grammars/source.scilab.json +40 -47
  312. data/grammars/source.scss.json +369 -403
  313. data/grammars/source.sdbl.json +14 -25
  314. data/grammars/source.shaderlab.json +24 -27
  315. data/grammars/source.shell.json +409 -440
  316. data/grammars/source.shen.json +75 -94
  317. data/grammars/source.smali.json +232 -293
  318. data/grammars/source.smalltalk.json +60 -75
  319. data/grammars/source.smt.json +67 -82
  320. data/grammars/source.solidity.json +35 -54
  321. data/grammars/source.sp.json +40 -45
  322. data/grammars/source.sparql.json +3 -8
  323. data/grammars/source.spin.json +277 -297
  324. data/grammars/source.sqf.json +34 -44
  325. data/grammars/source.sql.json +142 -156
  326. data/grammars/source.stan.json +201 -160
  327. data/grammars/source.stata.json +57 -68
  328. data/grammars/source.strings.json +26 -30
  329. data/grammars/source.stylus.json +558 -565
  330. data/grammars/source.supercollider.json +33 -40
  331. data/grammars/source.swift.json +999 -1077
  332. data/grammars/source.systemverilog.json +351 -365
  333. data/grammars/source.tcl.json +77 -94
  334. data/grammars/source.tea.json +61 -67
  335. data/grammars/source.terra.json +25 -32
  336. data/grammars/source.terraform.json +68 -88
  337. data/grammars/source.thrift.json +300 -306
  338. data/grammars/source.tl.json +112 -117
  339. data/grammars/source.tla.json +65 -69
  340. data/grammars/source.toc.json +21 -25
  341. data/grammars/source.toml.json +117 -122
  342. data/grammars/source.ts.json +2838 -2774
  343. data/grammars/source.tsx.json +180 -184
  344. data/grammars/source.turing.json +970 -974
  345. data/grammars/source.turtle.json +124 -140
  346. data/grammars/source.txl.json +23 -37
  347. data/grammars/source.ucfconstraints.json +16 -21
  348. data/grammars/source.ur.json +15 -27
  349. data/grammars/source.vala.json +221 -235
  350. data/grammars/source.varnish.vcl.json +117 -129
  351. data/grammars/source.vbnet.json +69 -106
  352. data/grammars/source.verilog.json +101 -107
  353. data/grammars/source.vhdl.json +437 -445
  354. data/grammars/source.viml.json +540 -550
  355. data/grammars/source.wavefront.mtl.json +274 -277
  356. data/grammars/source.wavefront.obj.json +781 -784
  357. data/grammars/source.wdl.json +66 -46
  358. data/grammars/source.webassembly.json +97 -102
  359. data/grammars/source.webidl.json +311 -326
  360. data/grammars/source.x10.json +28 -32
  361. data/grammars/source.x86asm.json +21 -26
  362. data/grammars/source.xc.json +164 -172
  363. data/grammars/source.xq.json +81 -92
  364. data/grammars/source.xtend.json +199 -208
  365. data/grammars/source.yaml-ext.json +118 -124
  366. data/grammars/source.yaml.json +155 -174
  367. data/grammars/source.yaml.salt.json +113 -116
  368. data/grammars/source.yang.json +10 -13
  369. data/grammars/source.yara.json +98 -0
  370. data/grammars/text.bibtex.json +95 -100
  371. data/grammars/text.cfml.basic.json +403 -404
  372. data/grammars/text.elixir.json +18 -23
  373. data/grammars/text.error-list.json +15 -16
  374. data/grammars/text.find-refs.json +487 -488
  375. data/grammars/text.gherkin.feature.json +45 -53
  376. data/grammars/text.haml.json +176 -189
  377. data/grammars/text.hamlc.json +82 -88
  378. data/grammars/text.html.abl.json +16 -21
  379. data/grammars/text.html.asciidoc.json +139 -153
  380. data/grammars/text.html.asdoc.json +145 -155
  381. data/grammars/text.html.asp.json +23 -28
  382. data/grammars/text.html.basic.json +323 -338
  383. data/grammars/text.html.cfm.json +316 -325
  384. data/grammars/text.html.creole.json +177 -189
  385. data/grammars/text.html.django.json +27 -33
  386. data/grammars/text.html.ecr.json +21 -25
  387. data/grammars/text.html.elixir.json +3 -9
  388. data/grammars/text.html.erb.json +81 -85
  389. data/grammars/text.html.erlang.yaws.json +24 -29
  390. data/grammars/text.html.factor.json +5 -11
  391. data/grammars/text.html.ftl.json +16 -25
  392. data/grammars/text.html.handlebars.json +579 -598
  393. data/grammars/text.html.javadoc.json +426 -0
  394. data/grammars/text.html.js.json +11 -17
  395. data/grammars/text.html.jsp.json +377 -384
  396. data/grammars/text.html.liquid.json +8 -18
  397. data/grammars/text.html.mako.json +257 -275
  398. data/grammars/text.html.markdown.source.gfm.apib.json +419 -427
  399. data/grammars/text.html.markdown.source.gfm.mson.json +405 -414
  400. data/grammars/text.html.mediawiki.json +318 -344
  401. data/grammars/text.html.php.blade.json +2134 -2140
  402. data/grammars/text.html.php.json +980 -1013
  403. data/grammars/text.html.slash.json +101 -107
  404. data/grammars/text.html.smarty.json +75 -83
  405. data/grammars/text.html.soy.json +250 -253
  406. data/grammars/text.html.ssp.json +18 -24
  407. data/grammars/text.html.tcl.json +17 -24
  408. data/grammars/text.html.twig.json +712 -718
  409. data/grammars/text.idl-idldoc.json +5 -9
  410. data/grammars/text.jade.json +213 -235
  411. data/grammars/text.junit-test-report.json +25 -28
  412. data/grammars/text.log.latex.json +44 -46
  413. data/grammars/text.marko.json +370 -401
  414. data/grammars/text.python.console.json +3 -7
  415. data/grammars/text.python.traceback.json +2 -5
  416. data/grammars/text.rdoc.json +15 -19
  417. data/grammars/text.restructuredtext.clean.json +8 -11
  418. data/grammars/text.restructuredtext.json +886 -873
  419. data/grammars/text.robot.json +26 -36
  420. data/grammars/text.roff.json +2852 -2915
  421. data/grammars/text.runoff.json +56 -69
  422. data/grammars/text.sfd.json +151 -155
  423. data/grammars/text.shell-session.json +5 -8
  424. data/grammars/text.slim.json +184 -210
  425. data/grammars/text.srt.json +54 -57
  426. data/grammars/text.tex.json +98 -105
  427. data/grammars/text.tex.latex.beamer.json +14 -20
  428. data/grammars/text.tex.latex.haskell.json +883 -782
  429. data/grammars/text.tex.latex.json +281 -291
  430. data/grammars/text.tex.latex.memoir.json +39 -46
  431. data/grammars/text.tex.latex.rd.json +32 -38
  432. data/grammars/text.xml.ant.json +62 -69
  433. data/grammars/text.xml.flex-config.json +1009 -1013
  434. data/grammars/text.xml.genshi.json +10 -16
  435. data/grammars/text.xml.json +117 -130
  436. data/grammars/text.xml.pom.json +235 -240
  437. data/grammars/text.xml.xsl.json +31 -37
  438. data/grammars/text.zone_file.json +24 -29
  439. data/lib/linguist/blob.rb +10 -1
  440. data/lib/linguist/blob_helper.rb +4 -1
  441. data/lib/linguist/file_blob.rb +5 -0
  442. data/lib/linguist/generated.rb +16 -0
  443. data/lib/linguist/heuristics.rb +23 -11
  444. data/lib/linguist/language.rb +3 -6
  445. data/lib/linguist/languages.json +1 -1
  446. data/lib/linguist/languages.yml +74 -12
  447. data/lib/linguist/lazy_blob.rb +15 -1
  448. data/lib/linguist/linguist.bundle +0 -0
  449. data/lib/linguist/samples.json +1666 -3381
  450. data/lib/linguist/shebang.rb +2 -0
  451. data/lib/linguist/strategy/modeline.rb +2 -0
  452. data/lib/linguist/vendor.yml +5 -6
  453. data/lib/linguist/version.rb +1 -1
  454. metadata +12 -11
  455. data/grammars/source.elm.json +0 -381
  456. data/grammars/source.nant-build.json +0 -86
  457. data/grammars/source.octave.json +0 -451
  458. data/grammars/text.html.mediawiki.elm-build-output.json +0 -111
  459. data/grammars/text.html.mediawiki.elm-documentation.json +0 -22
  460. data/grammars/text.html.vue.json +0 -936
@@ -1,12 +1,6 @@
1
1
  {
2
- "comment": "\n\t\tTODO: language\n\t\t 1. Add a bunch of HTML tags. See the #block and #style sections.\n\t\t 2. Correctly scope all the parser functions and their contents.\n\t\t This on will be complicated, as there are several: expr, if, etc.\n\t\t 3. Get some kind of folding by heading (Not possible with TM1 rules).\n\t\t 4. Make sure that illegal things are correctly scoped illegal.\n\t\t This is non-trivial, and has several parts\n\t\t - Bold/italic are based on brain-dead heuristics. Also, we should\n\t\t scope as illegal when for instance a new heading starts\n\t\t before an italic has been closed.\n\t\t - Templates... these will be pretty tough as they are flexible.\n\t\t 5. <timeline></timeline> tag. Not sure this one is worth the effort\n\n\t\t 6. Figure out a better scope for meta.function-call. Infininight\n\t\t suggests entity.name.function.call, to be paralleled by\n\t\t entity.name.function.definition. I am not completely sure I like\n\t\t that solution, but it is probably better than meta.function-call\n\n\t\tTODO snippets and commands\n\t\t 1. Add a drop command (and keyboard shortcuts) for links/images\n\t\t 2. Make sure all the preference items are sorted out, for instance\n\t\t smart typing pairs, indent patterns, etc.\n\t\t 3. Command: big/small\n\t\t\n\t\tFINISHED:\n\t\t 1. Add support for LaTeX math mode inside of <math></math> tags.\n\t\t 2. Add a command for new list item. This one is trivial\n\t\t 3. Get the symbol list working on headings. Trivial.\n\t\t 4. <gallery></gallery> tag. This one adds some complication, but\n\t\t is worth supporting.\n\t\t 5. commands for bold/italic (tbates)\n\t\t 6. All lists scoped by type of list. (tbates)\n\t",
3
- "fileTypes": [
4
- "mediawiki",
5
- "wikipedia",
6
- "wiki"
7
- ],
8
- "keyEquivalent": "^~M",
9
2
  "name": "Mediawiki",
3
+ "scopeName": "text.html.mediawiki",
10
4
  "patterns": [
11
5
  {
12
6
  "include": "#block"
@@ -19,22 +13,29 @@
19
13
  "block": {
20
14
  "patterns": [
21
15
  {
16
+ "name": "meta.redirect.mediawiki",
22
17
  "begin": "^\\s*(?i)(#redirect)",
23
- "beginCaptures": {
24
- "1": {
25
- "name": "keyword.control.redirect.mediawiki"
26
- }
27
- },
28
18
  "end": "\\n",
29
- "name": "meta.redirect.mediawiki",
30
19
  "patterns": [
31
20
  {
32
21
  "include": "#link"
33
22
  }
34
- ]
23
+ ],
24
+ "beginCaptures": {
25
+ "1": {
26
+ "name": "keyword.control.redirect.mediawiki"
27
+ }
28
+ }
35
29
  },
36
30
  {
37
- "begin": " ?(<)(source)[ \\t]+(lang)(=)(\"[^\"]+\")(>)",
31
+ "name": "meta.tag.source.mediawiki",
32
+ "begin": " ?(\u003c)(source)[ \\t]+(lang)(=)(\"[^\"]+\")(\u003e)",
33
+ "end": " ?(\u003c/)(source)(\u003e)",
34
+ "patterns": [
35
+ {
36
+ "include": "#tag-stuff"
37
+ }
38
+ ],
38
39
  "beginCaptures": {
39
40
  "1": {
40
41
  "name": "punctuation.definition.tag.mediawiki"
@@ -55,8 +56,6 @@
55
56
  "name": "punctuation.definition.tag.mediawiki"
56
57
  }
57
58
  },
58
- "comment": "source: <source lang=\"R\">",
59
- "end": " ?(</)(source)(>)",
60
59
  "endCaptures": {
61
60
  "1": {
62
61
  "name": "punctuation.definition.tag.mediawiki"
@@ -67,15 +66,11 @@
67
66
  "3": {
68
67
  "name": "punctuation.definition.tag.mediawiki"
69
68
  }
70
- },
71
- "name": "meta.tag.source.mediawiki",
72
- "patterns": [
73
- {
74
- "include": "#tag-stuff"
75
- }
76
- ]
69
+ }
77
70
  },
78
71
  {
72
+ "name": "markup.heading.${1/=(?\u003cb\u003e=)?(?\u003cc\u003e=)?(?\u003cd\u003e=)?(?\u003ce\u003e=)?(?\u003cf\u003e=)?/${f:?6:${e:?5:${d:?4:${c:?3:${b:?2:1}}}}}/}.mediawiki",
73
+ "match": "^(={1,6})(?!=)((.+))(\\1)\\s*$\\n?",
79
74
  "captures": {
80
75
  "1": {
81
76
  "name": "punctuation.definition.heading.mediawiki"
@@ -86,8 +81,8 @@
86
81
  "3": {
87
82
  "patterns": [
88
83
  {
89
- "match": "=+$",
90
- "name": "invalid.illegal.extra-equals-sign.mediawiki"
84
+ "name": "invalid.illegal.extra-equals-sign.mediawiki",
85
+ "match": "=+$"
91
86
  },
92
87
  {
93
88
  "include": "#inline"
@@ -97,20 +92,16 @@
97
92
  "4": {
98
93
  "name": "punctuation.definition.heading.mediawiki"
99
94
  }
100
- },
101
- "match": "^(={1,6})(?!=)((.+))(\\1)\\s*$\\n?",
102
- "name": "markup.heading.${1/=(?<b>=)?(?<c>=)?(?<d>=)?(?<e>=)?(?<f>=)?/${f:?6:${e:?5:${d:?4:${c:?3:${b:?2:1}}}}}/}.mediawiki"
95
+ }
103
96
  },
104
97
  {
105
- "comment": "\n\t\t\t\t\t\tA separator is made up of 4 or more -s alone on a\n\t\t\t\t\t\tline by themselves.\n\t\t\t\t\t",
106
- "match": "^-{4,}[ \\t]*($\\n)?",
107
- "name": "meta.separator.mediawiki"
98
+ "name": "meta.separator.mediawiki",
99
+ "match": "^-{4,}[ \\t]*($\\n)?"
108
100
  },
109
101
  {
102
+ "name": "markup.raw.block.mediawiki",
110
103
  "begin": "^ (?=\\s*\\S)",
111
- "comment": "\n\t\t\t\t\t\tCode blocks start with one space. Wiki text and\n\t\t\t\t\t\thtml are still interpreted in MediaWiki, unlike in\n\t\t\t\t\t\tmediawiki.\n\t\t\t\t\t",
112
104
  "end": "^(?=[^ ])",
113
- "name": "markup.raw.block.mediawiki",
114
105
  "patterns": [
115
106
  {
116
107
  "include": "#inline"
@@ -118,10 +109,9 @@
118
109
  ]
119
110
  },
120
111
  {
112
+ "name": "markup.list.numbered.mediawiki",
121
113
  "begin": "^([#:;])",
122
- "comment": "\n\t\t\t\t\t\tneed to scope nested lists\n\t\t\t\t\t\t - need to cope with \n definition lists (; :)\n\t\t\t\t\t\t indented paragraphs, as used on talk pages (:)\n\t\t\t\t\t",
123
114
  "end": "^(?!\\1)",
124
- "name": "markup.list.numbered.mediawiki",
125
115
  "patterns": [
126
116
  {
127
117
  "include": "#inline"
@@ -129,10 +119,9 @@
129
119
  ]
130
120
  },
131
121
  {
122
+ "name": "markup.list.unnumbered.mediawiki",
132
123
  "begin": "^([*])",
133
- "comment": "unordered list",
134
124
  "end": "^(?!\\1)",
135
- "name": "markup.list.unnumbered.mediawiki",
136
125
  "patterns": [
137
126
  {
138
127
  "include": "#inline"
@@ -146,10 +135,9 @@
146
135
  "include": "#comments"
147
136
  },
148
137
  {
138
+ "name": "meta.paragraph.mediawiki",
149
139
  "begin": "^(?![\\t ;*#:=]|----|$)",
150
- "comment": "\n\t\t\t\t\t\tAnything that is not a code block, list, header, etc.\n\t\t\t\t\t\tis a paragraph.\n\t\t\t\t\t",
151
140
  "end": "^(?:\\s*$|(?=[;*#:=]|----))",
152
- "name": "meta.paragraph.mediawiki",
153
141
  "patterns": [
154
142
  {
155
143
  "include": "#inline"
@@ -159,10 +147,17 @@
159
147
  ]
160
148
  },
161
149
  "block_html": {
162
- "comment": "\n\t\t\t\tThe available block HTML tags supported are:\n\t\t\t\t * blockquote, center, pre, div, hr, p\n\t\t\t\t * tables: table, th, tr, td, caption\n\t\t\t\t * lists: ul, ol, li\n\t\t\t\t * definition lists: dl, dt, dd\n\t\t\t\t * headers: h1, h2, h3, h4, h5, h6\n\t\t\t\t * br\n\t\t\t",
163
150
  "patterns": [
164
151
  {
165
- "begin": "(<math>)",
152
+ "name": "meta.embedded.tex.math",
153
+ "contentName": "source.tex.math",
154
+ "begin": "(\u003cmath\u003e)",
155
+ "end": "((\u003c)/math\u003e)",
156
+ "patterns": [
157
+ {
158
+ "include": "text.tex#math"
159
+ }
160
+ ],
166
161
  "captures": {
167
162
  "0": {
168
163
  "name": "punctuation.section.embedded.tex.math"
@@ -173,21 +168,13 @@
173
168
  "2": {
174
169
  "name": "source.tex.math"
175
170
  }
176
- },
177
- "contentName": "source.tex.math",
178
- "end": "((<)/math>)",
179
- "name": "meta.embedded.tex.math",
180
- "patterns": [
181
- {
182
- "include": "text.tex#math"
183
- }
184
- ]
171
+ }
185
172
  },
186
173
  {
187
- "begin": "<table[^>]*>",
188
- "contentName": "source.html",
189
- "end": "</table>",
190
174
  "name": "meta.embedded.html.table",
175
+ "contentName": "source.html",
176
+ "begin": "\u003ctable[^\u003e]*\u003e",
177
+ "end": "\u003c/table\u003e",
191
178
  "patterns": [
192
179
  {
193
180
  "include": "text.html.basic"
@@ -195,7 +182,15 @@
195
182
  ]
196
183
  },
197
184
  {
198
- "begin": "(<)(ref)(>)",
185
+ "name": "meta.reference.mediawiki",
186
+ "contentName": "meta.reference.content.mediawiki",
187
+ "begin": "(\u003c)(ref)(\u003e)",
188
+ "end": "(\u003c/)(ref)(\u003e)",
189
+ "patterns": [
190
+ {
191
+ "include": "#inline"
192
+ }
193
+ ],
199
194
  "beginCaptures": {
200
195
  "1": {
201
196
  "name": "meta.tag.inline.ref.mediawiki"
@@ -207,9 +202,6 @@
207
202
  "name": "meta.tag.inline.ref.mediawiki"
208
203
  }
209
204
  },
210
- "comment": "<ref>content</ref> TODO: Redundant with named tag",
211
- "contentName": "meta.reference.content.mediawiki",
212
- "end": "(</)(ref)(>)",
213
205
  "endCaptures": {
214
206
  "1": {
215
207
  "name": "meta.tag.inline.ref.mediawiki"
@@ -220,15 +212,11 @@
220
212
  "3": {
221
213
  "name": "meta.tag.inline.ref.mediawiki"
222
214
  }
223
- },
224
- "name": "meta.reference.mediawiki",
225
- "patterns": [
226
- {
227
- "include": "#inline"
228
- }
229
- ]
215
+ }
230
216
  },
231
217
  {
218
+ "name": "meta.reference.named.cite.mediawiki",
219
+ "match": "(\u003c)(ref) *((name) *(=) *([^\u003e]*))(/\u003e)",
232
220
  "captures": {
233
221
  "1": {
234
222
  "name": "meta.tag.inline.ref.mediawiki"
@@ -248,13 +236,17 @@
248
236
  "7": {
249
237
  "name": "meta.tag.inline.ref.mediawiki"
250
238
  }
251
- },
252
- "comment": "<ref name=\"label\"/>",
253
- "match": "(<)(ref) *((name) *(=) *([^>]*))(/>)",
254
- "name": "meta.reference.named.cite.mediawiki"
239
+ }
255
240
  },
256
241
  {
257
- "begin": "(<)(ref) *((name) *(=) *([^>]*))(>)",
242
+ "contentName": "meta.reference.content.labelled.mediawiki",
243
+ "begin": "(\u003c)(ref) *((name) *(=) *([^\u003e]*))(\u003e)",
244
+ "end": "(\u003c/ref\u003e)",
245
+ "patterns": [
246
+ {
247
+ "include": "#inline"
248
+ }
249
+ ],
258
250
  "beginCaptures": {
259
251
  "1": {
260
252
  "name": "meta.tag.inline.ref.mediawiki"
@@ -275,102 +267,94 @@
275
267
  "name": "meta.tag.inline.ref.mediawiki"
276
268
  }
277
269
  },
278
- "comment": "<ref name=\"label\">content</ref>",
279
- "contentName": "meta.reference.content.labelled.mediawiki",
280
- "end": "(</ref>)",
281
270
  "endCaptures": {
282
271
  "1": {
283
272
  "name": "meta.tag.inline.ref.mediawiki"
284
273
  }
285
- },
286
- "patterns": [
287
- {
288
- "include": "#inline"
289
- }
290
- ]
274
+ }
291
275
  },
292
276
  {
293
- "begin": "(<gallery>)",
294
- "captures": {
295
- "1": {
296
- "name": "meta.tag.inline.ref.mediawiki"
297
- }
298
- },
299
277
  "contentName": "meta.gallery.mediawiki",
300
- "end": "(</gallery>)",
278
+ "begin": "(\u003cgallery\u003e)",
279
+ "end": "(\u003c/gallery\u003e)",
301
280
  "patterns": [
302
281
  {
303
- "begin": "(?x)\n\t\t\t\t\t\t\t\t^(?!\\s*\\n)\t # not an empty line\n\t\t\t\t\t\t\t\t( [ ]*(((i|I)mage)(:)) # spaces, image, colon\n\t\t\t\t\t\t\t\t ([^\\[\\]|]+) # anything\n\t\t\t\t\t\t\t\t (?<!\\s)[ ]* # spaces\n\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t",
304
- "beginCaptures": {
305
- "3": {
306
- "name": "constant.other.namespace.image.mediawiki"
307
- },
308
- "5": {
309
- "name": "punctuation.fix_this_later.colon.mediawiki"
310
- },
311
- "6": {
312
- "name": "constant.other.wiki-link.image.mediawiki"
313
- }
314
- },
315
- "end": "\\n",
316
282
  "name": "meta.item.gallery.mediawiki",
283
+ "begin": "(?x)\n\t\t\t\t\t\t\t\t^(?!\\s*\\n)\t # not an empty line\n\t\t\t\t\t\t\t\t( [ ]*(((i|I)mage)(:)) # spaces, image, colon\n\t\t\t\t\t\t\t\t ([^\\[\\]|]+) # anything\n\t\t\t\t\t\t\t\t (?\u003c!\\s)[ ]* # spaces\n\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t",
284
+ "end": "\\n",
317
285
  "patterns": [
318
286
  {
319
- "begin": "^(?!\\|)|(\\|)",
320
- "beginCaptures": {
321
- "1": {
322
- "name": "punctuation.fix_this_later.pipe.mediawiki"
323
- }
324
- },
325
287
  "contentName": "string.other.title.gallery.mediawiki",
288
+ "begin": "^(?!\\|)|(\\|)",
326
289
  "end": "\\n|(?=\\|)",
327
290
  "patterns": [
328
291
  {
329
292
  "include": "#inline"
330
293
  }
331
- ]
294
+ ],
295
+ "beginCaptures": {
296
+ "1": {
297
+ "name": "punctuation.fix_this_later.pipe.mediawiki"
298
+ }
299
+ }
332
300
  },
333
301
  {
334
- "match": "\\|",
335
- "name": "punctuation.fix_this_later.pipe.mediawiki"
302
+ "name": "punctuation.fix_this_later.pipe.mediawiki",
303
+ "match": "\\|"
336
304
  }
337
- ]
305
+ ],
306
+ "beginCaptures": {
307
+ "3": {
308
+ "name": "constant.other.namespace.image.mediawiki"
309
+ },
310
+ "5": {
311
+ "name": "punctuation.fix_this_later.colon.mediawiki"
312
+ },
313
+ "6": {
314
+ "name": "constant.other.wiki-link.image.mediawiki"
315
+ }
316
+ }
338
317
  }
339
- ]
318
+ ],
319
+ "captures": {
320
+ "1": {
321
+ "name": "meta.tag.inline.ref.mediawiki"
322
+ }
323
+ }
340
324
  }
341
325
  ]
342
326
  },
343
327
  "comments": {
344
328
  "patterns": [
345
329
  {
346
- "begin": "<!--",
347
- "end": "--\\s*>",
348
330
  "name": "comment.block.html.mediawiki",
331
+ "begin": "\u003c!--",
332
+ "end": "--\\s*\u003e",
349
333
  "patterns": [
350
334
  {
351
- "match": "--",
352
- "name": "invalid.illegal.bad-comments-or-CDATA.html.mediawiki"
335
+ "name": "invalid.illegal.bad-comments-or-CDATA.html.mediawiki",
336
+ "match": "--"
353
337
  }
354
338
  ]
355
339
  }
356
340
  ]
357
341
  },
358
342
  "entities": {
359
- "comment": "\n\t\t\t\tMediawiki supports Unicode, so these should not usually be\n\t\t\t\tnecessary, but they do show up on pages from time to time.\n\t\t\t",
360
343
  "patterns": [
361
344
  {
362
- "match": "&([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);",
363
- "name": "constant.character.entity.html.mediawiki"
345
+ "name": "constant.character.entity.html.mediawiki",
346
+ "match": "\u0026([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);"
364
347
  },
365
348
  {
366
- "match": "&",
367
- "name": "invalid.illegal.bad-ampersand.html.mediawiki"
349
+ "name": "invalid.illegal.bad-ampersand.html.mediawiki",
350
+ "match": "\u0026"
368
351
  }
369
352
  ]
370
353
  },
371
354
  "inline": {
372
355
  "patterns": [
373
356
  {
357
+ "match": "(~~~~~)(~{0,2})(?!~)",
374
358
  "captures": {
375
359
  "1": {
376
360
  "name": "constant.other.date-time.mediawiki"
@@ -378,13 +362,11 @@
378
362
  "2": {
379
363
  "name": "invalid.illegal.too-many-tildes.mediawiki"
380
364
  }
381
- },
382
- "match": "(~~~~~)(~{0,2})(?!~)"
365
+ }
383
366
  },
384
367
  {
385
- "comment": "3 ~s for sig, 4 for sig + timestamp",
386
- "match": "~~~~?",
387
- "name": "constant.other.signature.mediawiki"
368
+ "name": "constant.other.signature.mediawiki",
369
+ "match": "~~~~?"
388
370
  },
389
371
  {
390
372
  "include": "#link"
@@ -409,34 +391,12 @@
409
391
  "link": {
410
392
  "patterns": [
411
393
  {
412
- "applyEndPatternLast": 1,
413
- "begin": "(?x:\n\t\t\t\t\t\t(\\[\\[) # opening brackets\n\t\t\t\t\t\t ( [ ]*(((i|I)mage)(:)) # spaces, image, colon\n\t\t\t\t\t\t ([^\\[\\]|]+) # anything\n\t\t\t\t\t\t (?<!\\s)[ ]* # spaces\n\t\t\t\t\t\t )\n\t\t\t\t\t)",
414
- "beginCaptures": {
415
- "1": {
416
- "name": "meta.tag.inline.any.mediawiki"
417
- },
418
- "4": {
419
- "name": "constant.other.namespace.image.mediawiki"
420
- },
421
- "6": {
422
- "name": "punctuation.fix_this_later.colon.mediawiki"
423
- },
424
- "7": {
425
- "name": "constant.other.wiki-link.image.mediawiki"
426
- }
427
- },
428
- "end": "(?x:\n\t\t\t\t\t\t ((\\|)[ ]*( [^\\[\\]|]+ )[ ]*)? # pipe, spaces, anything, spaces\n\t\t\t\t\t\t(\\]\\]) # closing brackets\n\t\t\t\t\t)",
429
- "endCaptures": {
430
- "2": {
431
- "name": "punctuation.fix_this_later.pipe.mediawiki"
432
- },
433
- "3": {
434
- "name": "string.other.title.link.wiki-link.mediawiki"
435
- }
436
- },
437
394
  "name": "meta.image.wiki.mediawiki",
395
+ "begin": "(?x:\n\t\t\t\t\t\t(\\[\\[) # opening brackets\n\t\t\t\t\t\t ( [ ]*(((i|I)mage)(:)) # spaces, image, colon\n\t\t\t\t\t\t ([^\\[\\]|]+) # anything\n\t\t\t\t\t\t (?\u003c!\\s)[ ]* # spaces\n\t\t\t\t\t\t )\n\t\t\t\t\t)",
396
+ "end": "(?x:\n\t\t\t\t\t\t ((\\|)[ ]*( [^\\[\\]|]+ )[ ]*)? # pipe, spaces, anything, spaces\n\t\t\t\t\t\t(\\]\\]) # closing brackets\n\t\t\t\t\t)",
438
397
  "patterns": [
439
398
  {
399
+ "match": "(?x)\n\t\t\t\t\t\t\t\t(\\|)[ ]*\n\t\t\t\t\t\t\t\t( (thumb|thumbnail|frame)\n\t\t\t\t\t\t\t\t |(right|left|center|none)\n\t\t\t\t\t\t\t\t |([0-9]+)(px)\n\t\t\t\t\t\t\t\t)[ ]*\n\t\t\t\t\t\t\t",
440
400
  "captures": {
441
401
  "1": {
442
402
  "name": "punctuation.fix_this_later.pipe.mediawiki"
@@ -453,20 +413,49 @@
453
413
  "5": {
454
414
  "name": "constant.other.unit.mediawiki"
455
415
  }
456
- },
457
- "match": "(?x)\n\t\t\t\t\t\t\t\t(\\|)[ ]*\n\t\t\t\t\t\t\t\t( (thumb|thumbnail|frame)\n\t\t\t\t\t\t\t\t |(right|left|center|none)\n\t\t\t\t\t\t\t\t |([0-9]+)(px)\n\t\t\t\t\t\t\t\t)[ ]*\n\t\t\t\t\t\t\t"
416
+ }
458
417
  },
459
418
  {
460
- "match": "\\|",
461
- "name": "punctuation.fix_this_later.pipe.mediawiki"
419
+ "name": "punctuation.fix_this_later.pipe.mediawiki",
420
+ "match": "\\|"
462
421
  },
463
422
  {
464
423
  "include": "#style_in_link"
465
424
  }
466
- ]
425
+ ],
426
+ "beginCaptures": {
427
+ "1": {
428
+ "name": "meta.tag.inline.any.mediawiki"
429
+ },
430
+ "4": {
431
+ "name": "constant.other.namespace.image.mediawiki"
432
+ },
433
+ "6": {
434
+ "name": "punctuation.fix_this_later.colon.mediawiki"
435
+ },
436
+ "7": {
437
+ "name": "constant.other.wiki-link.image.mediawiki"
438
+ }
439
+ },
440
+ "endCaptures": {
441
+ "2": {
442
+ "name": "punctuation.fix_this_later.pipe.mediawiki"
443
+ },
444
+ "3": {
445
+ "name": "string.other.title.link.wiki-link.mediawiki"
446
+ }
447
+ },
448
+ "applyEndPatternLast": true
467
449
  },
468
450
  {
451
+ "name": "meta.link.wiki.redirect.mediawiki",
469
452
  "begin": "(?x:\n\t\t\t\t\t({{) # opening brackets\n\t\t\t\t\t\t([Rr]edirect|subst:.*) # redirect?\n\t\t\t\t\t\t[ ]* # spaces\n\t\t\t\t\t\t(\\|) # pipe\n\t\t\t\t\t)",
453
+ "end": "(?x:\n\t\t\t\t\t\t\t(([\\|}]+)(\\|)([\\|}]+))? # from | to \n\t\t\t\t\t\t\t([^}]*) # anything\n\t\t\t\t\t\t\t(}}) # closing brackets\n\t\t\t\t\t)",
454
+ "patterns": [
455
+ {
456
+ "include": "#style_in_link"
457
+ }
458
+ ],
470
459
  "beginCaptures": {
471
460
  "1": {
472
461
  "name": "meta.tag.inline.redirect.mediawiki"
@@ -478,7 +467,6 @@
478
467
  "name": "constant.other.pipe.mediawiki"
479
468
  }
480
469
  },
481
- "end": "(?x:\n\t\t\t\t\t\t\t(([\\|}]+)(\\|)([\\|}]+))? # from | to \n\t\t\t\t\t\t\t([^}]*) # anything\n\t\t\t\t\t\t\t(}}) # closing brackets\n\t\t\t\t\t)",
482
470
  "endCaptures": {
483
471
  "2": {
484
472
  "name": "meta.tag.inline.any.mediawiki"
@@ -492,16 +480,17 @@
492
480
  "6": {
493
481
  "name": "meta.tag.inline.redirect.mediawiki"
494
482
  }
495
- },
496
- "name": "meta.link.wiki.redirect.mediawiki",
483
+ }
484
+ },
485
+ {
486
+ "name": "meta.link.wiki.mediawiki",
487
+ "begin": "(?x:\n\t\t\t\t\t\t(\\[\\[) # opening brackets\n\t\t\t\t\t\t (:)? # colon to suppress image or category?\n\t\t\t\t\t\t ((\\s+):[^\\[\\]]*(?=\\]\\]))? # a colon after spaces is invalid\n\t\t\t\t\t\t [ ]* # spaces\n\t\t\t\t\t\t ( (([^\\[\\]|]+)(:))? # namespace\n\t\t\t\t\t\t ([^\\[\\]|]+)(?\u003c!\\s)[ ]* # link name\n\t\t\t\t\t\t )?\n\t\t\t\t\t)",
488
+ "end": "(?x:\n\t\t\t\t\t\t (\\|[ ]*([^\\[\\]\\|]+)[ ]*)? # pipe, spaces, anything, spaces\n\t\t\t\t\t\t(\\]\\]) # closing brackets\n\t\t\t\t\t)",
497
489
  "patterns": [
498
490
  {
499
491
  "include": "#style_in_link"
500
492
  }
501
- ]
502
- },
503
- {
504
- "begin": "(?x:\n\t\t\t\t\t\t(\\[\\[) # opening brackets\n\t\t\t\t\t\t (:)? # colon to suppress image or category?\n\t\t\t\t\t\t ((\\s+):[^\\[\\]]*(?=\\]\\]))? # a colon after spaces is invalid\n\t\t\t\t\t\t [ ]* # spaces\n\t\t\t\t\t\t ( (([^\\[\\]|]+)(:))? # namespace\n\t\t\t\t\t\t ([^\\[\\]|]+)(?<!\\s)[ ]* # link name\n\t\t\t\t\t\t )?\n\t\t\t\t\t)",
493
+ ],
505
494
  "beginCaptures": {
506
495
  "1": {
507
496
  "name": "meta.tag.inline.any.mediawiki"
@@ -522,7 +511,6 @@
522
511
  "name": "constant.other.wiki-link.mediawiki"
523
512
  }
524
513
  },
525
- "end": "(?x:\n\t\t\t\t\t\t (\\|[ ]*([^\\[\\]\\|]+)[ ]*)? # pipe, spaces, anything, spaces\n\t\t\t\t\t\t(\\]\\]) # closing brackets\n\t\t\t\t\t)",
526
514
  "endCaptures": {
527
515
  "2": {
528
516
  "name": "string.other.title.link.wiki-link.mediawiki"
@@ -530,43 +518,36 @@
530
518
  "3": {
531
519
  "name": "meta.tag.inline.any.mediawiki"
532
520
  }
533
- },
534
- "name": "meta.link.wiki.mediawiki",
535
- "patterns": [
536
- {
537
- "include": "#style_in_link"
538
- }
539
- ]
521
+ }
540
522
  },
541
523
  {
542
- "begin": "\\[(\\S+)\\s*(?=[^\\]]*\\])",
543
- "beginCaptures": {
544
- "1": {
545
- "name": "markup.underline.link.external.mediawiki"
546
- }
547
- },
524
+ "name": "meta.link.inline.external.mediawiki",
548
525
  "contentName": "string.other.title.link.external.mediawiki",
526
+ "begin": "\\[(\\S+)\\s*(?=[^\\]]*\\])",
549
527
  "end": "\\]",
550
- "name": "meta.link.inline.external.mediawiki",
551
528
  "patterns": [
552
529
  {
553
530
  "include": "#style_in_link"
554
531
  }
555
- ]
532
+ ],
533
+ "beginCaptures": {
534
+ "1": {
535
+ "name": "markup.underline.link.external.mediawiki"
536
+ }
537
+ }
556
538
  },
557
539
  {
558
- "match": "((https?|ftp|file)://|mailto:)[-:@a-zA-Z0-9_.~%+/?=&#]+(?<![.?:])",
559
- "name": "markup.underline.link.external.mediawiki"
540
+ "name": "markup.underline.link.external.mediawiki",
541
+ "match": "((https?|ftp|file)://|mailto:)[-:@a-zA-Z0-9_.~%+/?=\u0026#]+(?\u003c![.?:])"
560
542
  }
561
543
  ]
562
544
  },
563
545
  "style": {
564
- "comment": "\n\t\t\t\tTODO: Still need to add:\n\t\t\t\t * font\n\t\t\t\t * ruby, rb, rp, rt\n\t\t\t\t * cite\n\t\t\t\tinline tags to this section, and make sure that the other\n\t\t\t\ttags can accept attributes in the tag opening, etc. The\n\t\t\t\tcurrent implementation is intended to be naive, but covering\n\t\t\t\tthe majority of uses in mediawiki code.\n\t\t\t\t\n\t\t\t\tWe also need to add mediawiki-specific tags:\n\t\t\t\t * nowiki, noinclude, includeonly\n\t\t\t\t\n\t\t\t",
565
546
  "patterns": [
566
547
  {
548
+ "name": "markup.bold.mediawiki",
567
549
  "begin": "'''",
568
550
  "end": "'''",
569
- "name": "markup.bold.mediawiki",
570
551
  "patterns": [
571
552
  {
572
553
  "include": "#inline"
@@ -574,9 +555,9 @@
574
555
  ]
575
556
  },
576
557
  {
558
+ "name": "markup.italic.mediawiki",
577
559
  "begin": "''",
578
560
  "end": "''(?!'[^'])",
579
- "name": "markup.italic.mediawiki",
580
561
  "patterns": [
581
562
  {
582
563
  "include": "#inline"
@@ -584,103 +565,103 @@
584
565
  ]
585
566
  },
586
567
  {
587
- "begin": "(<(b|strong)>)",
588
- "captures": {
589
- "1": {
590
- "name": "meta.tag.inline.bold.html.mediawiki"
591
- }
592
- },
593
568
  "contentName": "markup.bold.html.mediawiki",
594
- "end": "(</\\2>)",
569
+ "begin": "(\u003c(b|strong)\u003e)",
570
+ "end": "(\u003c/\\2\u003e)",
595
571
  "patterns": [
596
572
  {
597
573
  "include": "#inline"
598
574
  }
599
- ]
600
- },
601
- {
602
- "begin": "(<(i|em)>)",
575
+ ],
603
576
  "captures": {
604
577
  "1": {
605
- "name": "meta.tag.inline.italic.html.mediawiki"
578
+ "name": "meta.tag.inline.bold.html.mediawiki"
606
579
  }
607
- },
580
+ }
581
+ },
582
+ {
608
583
  "contentName": "markup.italic.html.mediawiki",
609
- "end": "(</\\2>)",
584
+ "begin": "(\u003c(i|em)\u003e)",
585
+ "end": "(\u003c/\\2\u003e)",
610
586
  "patterns": [
611
587
  {
612
588
  "include": "#inline"
613
589
  }
614
- ]
615
- },
616
- {
617
- "begin": "(<(s|strike)>)",
590
+ ],
618
591
  "captures": {
619
592
  "1": {
620
- "name": "meta.tag.inline.strikethrough.html.mediawiki"
593
+ "name": "meta.tag.inline.italic.html.mediawiki"
621
594
  }
622
- },
595
+ }
596
+ },
597
+ {
623
598
  "contentName": "markup.other.strikethrough.html.mediawiki",
624
- "end": "(</\\2>)",
599
+ "begin": "(\u003c(s|strike)\u003e)",
600
+ "end": "(\u003c/\\2\u003e)",
625
601
  "patterns": [
626
602
  {
627
603
  "include": "#inline"
628
604
  }
629
- ]
630
- },
631
- {
632
- "begin": "(<(u)>)",
605
+ ],
633
606
  "captures": {
634
607
  "1": {
635
- "name": "meta.tag.inline.underline.html.mediawiki"
608
+ "name": "meta.tag.inline.strikethrough.html.mediawiki"
636
609
  }
637
- },
610
+ }
611
+ },
612
+ {
638
613
  "contentName": "markup.underline.html.mediawiki",
639
- "end": "(</\\2>)",
614
+ "begin": "(\u003c(u)\u003e)",
615
+ "end": "(\u003c/\\2\u003e)",
640
616
  "patterns": [
641
617
  {
642
618
  "include": "#inline"
643
619
  }
644
- ]
645
- },
646
- {
647
- "begin": "(<(tt|code)>)",
620
+ ],
648
621
  "captures": {
649
622
  "1": {
650
- "name": "meta.tag.inline.raw.html.mediawiki"
623
+ "name": "meta.tag.inline.underline.html.mediawiki"
651
624
  }
652
- },
625
+ }
626
+ },
627
+ {
653
628
  "contentName": "markup.raw.html.mediawiki",
654
- "end": "(</\\2>)",
629
+ "begin": "(\u003c(tt|code)\u003e)",
630
+ "end": "(\u003c/\\2\u003e)",
655
631
  "patterns": [
656
632
  {
657
633
  "include": "#inline"
658
634
  }
659
- ]
660
- },
661
- {
662
- "begin": "(<(big|small|sub|sup)>)",
635
+ ],
663
636
  "captures": {
664
637
  "1": {
665
- "name": "meta.tag.inline.any.html.mediawiki"
638
+ "name": "meta.tag.inline.raw.html.mediawiki"
666
639
  }
667
- },
640
+ }
641
+ },
642
+ {
668
643
  "contentName": "markup.other.inline-styles.html.mediawiki",
669
- "end": "(</\\2>)",
644
+ "begin": "(\u003c(big|small|sub|sup)\u003e)",
645
+ "end": "(\u003c/\\2\u003e)",
670
646
  "patterns": [
671
647
  {
672
648
  "include": "#inline"
673
649
  }
674
- ]
650
+ ],
651
+ "captures": {
652
+ "1": {
653
+ "name": "meta.tag.inline.any.html.mediawiki"
654
+ }
655
+ }
675
656
  }
676
657
  ]
677
658
  },
678
659
  "style_in_link": {
679
660
  "patterns": [
680
661
  {
662
+ "name": "markup.bold.mediawiki",
681
663
  "begin": "'''",
682
664
  "end": "'''",
683
- "name": "markup.bold.mediawiki",
684
665
  "patterns": [
685
666
  {
686
667
  "include": "#style_in_link"
@@ -688,9 +669,9 @@
688
669
  ]
689
670
  },
690
671
  {
672
+ "name": "markup.italic.mediawiki",
691
673
  "begin": "''",
692
674
  "end": "''",
693
- "name": "markup.italic.mediawiki",
694
675
  "patterns": [
695
676
  {
696
677
  "include": "#style_in_link"
@@ -698,94 +679,94 @@
698
679
  ]
699
680
  },
700
681
  {
701
- "begin": "(<(b|strong)>)",
702
- "captures": {
703
- "1": {
704
- "name": "meta.tag.inline.bold.html.mediawiki"
705
- }
706
- },
707
682
  "contentName": "markup.bold.html.mediawiki",
708
- "end": "(</\\2>)",
683
+ "begin": "(\u003c(b|strong)\u003e)",
684
+ "end": "(\u003c/\\2\u003e)",
709
685
  "patterns": [
710
686
  {
711
687
  "include": "#style_in_link"
712
688
  }
713
- ]
714
- },
715
- {
716
- "begin": "(<(i|em)>)",
689
+ ],
717
690
  "captures": {
718
691
  "1": {
719
- "name": "meta.tag.inline.italic.html.mediawiki"
692
+ "name": "meta.tag.inline.bold.html.mediawiki"
720
693
  }
721
- },
694
+ }
695
+ },
696
+ {
722
697
  "contentName": "markup.italic.html.mediawiki",
723
- "end": "(</\\2>)",
698
+ "begin": "(\u003c(i|em)\u003e)",
699
+ "end": "(\u003c/\\2\u003e)",
724
700
  "patterns": [
725
701
  {
726
702
  "include": "#style_in_link"
727
703
  }
728
- ]
729
- },
730
- {
731
- "begin": "(<(s|strike)>)",
704
+ ],
732
705
  "captures": {
733
706
  "1": {
734
- "name": "meta.tag.inline.strikethrough.html.mediawiki"
707
+ "name": "meta.tag.inline.italic.html.mediawiki"
735
708
  }
736
- },
709
+ }
710
+ },
711
+ {
737
712
  "contentName": "markup.other.strikethrough.html.mediawiki",
738
- "end": "(</\\2>)",
713
+ "begin": "(\u003c(s|strike)\u003e)",
714
+ "end": "(\u003c/\\2\u003e)",
739
715
  "patterns": [
740
716
  {
741
717
  "include": "#style_in_link"
742
718
  }
743
- ]
744
- },
745
- {
746
- "begin": "(<(u)>)",
719
+ ],
747
720
  "captures": {
748
721
  "1": {
749
- "name": "meta.tag.inline.underline.html.mediawiki"
722
+ "name": "meta.tag.inline.strikethrough.html.mediawiki"
750
723
  }
751
- },
724
+ }
725
+ },
726
+ {
752
727
  "contentName": "markup.underline.html.mediawiki",
753
- "end": "(</\\2>)",
728
+ "begin": "(\u003c(u)\u003e)",
729
+ "end": "(\u003c/\\2\u003e)",
754
730
  "patterns": [
755
731
  {
756
732
  "include": "#style_in_link"
757
733
  }
758
- ]
759
- },
760
- {
761
- "begin": "(<(tt|code)>)",
734
+ ],
762
735
  "captures": {
763
736
  "1": {
764
- "name": "meta.tag.inline.raw.html.mediawiki"
737
+ "name": "meta.tag.inline.underline.html.mediawiki"
765
738
  }
766
- },
739
+ }
740
+ },
741
+ {
767
742
  "contentName": "markup.raw.html.mediawiki",
768
- "end": "(</\\2>)",
743
+ "begin": "(\u003c(tt|code)\u003e)",
744
+ "end": "(\u003c/\\2\u003e)",
769
745
  "patterns": [
770
746
  {
771
747
  "include": "#style_in_link"
772
748
  }
773
- ]
774
- },
775
- {
776
- "begin": "(<(big|small|sub|sup)>)",
749
+ ],
777
750
  "captures": {
778
751
  "1": {
779
- "name": "meta.tag.inline.any.html.mediawiki"
752
+ "name": "meta.tag.inline.raw.html.mediawiki"
780
753
  }
781
- },
754
+ }
755
+ },
756
+ {
782
757
  "contentName": "markup.other.inline-styles.html.mediawiki",
783
- "end": "(</\\2>)",
758
+ "begin": "(\u003c(big|small|sub|sup)\u003e)",
759
+ "end": "(\u003c/\\2\u003e)",
784
760
  "patterns": [
785
761
  {
786
762
  "include": "#style_in_link"
787
763
  }
788
- ]
764
+ ],
765
+ "captures": {
766
+ "1": {
767
+ "name": "meta.tag.inline.any.html.mediawiki"
768
+ }
769
+ }
789
770
  },
790
771
  {
791
772
  "include": "#comments"
@@ -795,22 +776,13 @@
795
776
  "table": {
796
777
  "patterns": [
797
778
  {
779
+ "name": "markup.other.table.mediawiki",
798
780
  "begin": "^({\\|)",
799
- "beginCaptures": {
800
- "1": {
801
- "name": "meta.tag.inline.table.mediawiki"
802
- }
803
- },
804
- "comment": "TODO: add styling capabilities",
805
781
  "end": "(^\\|})",
806
- "endCaptures": {
807
- "1": {
808
- "name": "meta.tag.inline.table.mediawiki"
809
- }
810
- },
811
- "name": "markup.other.table.mediawiki",
812
782
  "patterns": [
813
783
  {
784
+ "name": "meta.table.caption.mediawiki",
785
+ "match": "^(\\|\\+)[\\t ]*(.*)$",
814
786
  "captures": {
815
787
  "1": {
816
788
  "name": "meta.tag.inline.table.caption.mediawiki"
@@ -818,27 +790,26 @@
818
790
  "2": {
819
791
  "name": "variable.parameter.name.string.mediawiki"
820
792
  }
821
- },
822
- "match": "^(\\|\\+)[\\t ]*(.*)$",
823
- "name": "meta.table.caption.mediawiki"
793
+ }
824
794
  },
825
795
  {
796
+ "name": "markup.other.table.row.mediawiki",
826
797
  "begin": "^\\|-",
827
- "beginCaptures": {
828
- "1": {
829
- "name": "meta.tag.inline.table.mediawiki"
830
- }
831
- },
832
- "comment": "TODO: allow selection of rows; move row up/down, etc.",
833
798
  "end": "^(?=\\|-|^\\|})",
834
- "name": "markup.other.table.row.mediawiki",
835
799
  "patterns": [
836
800
  {
837
801
  "include": "#inline"
838
802
  }
839
- ]
803
+ ],
804
+ "beginCaptures": {
805
+ "1": {
806
+ "name": "meta.tag.inline.table.mediawiki"
807
+ }
808
+ }
840
809
  },
841
810
  {
811
+ "name": "meta.table.cell.mediawiki",
812
+ "match": "(^\\||\\|\\|) *([^\\|]*) *",
842
813
  "captures": {
843
814
  "1": {
844
815
  "name": "meta.tag.inline.table.cellwall.mediawiki"
@@ -846,64 +817,54 @@
846
817
  "2": {
847
818
  "name": "string.other.table.cellcontents.mediawiki"
848
819
  }
849
- },
850
- "match": "(^\\||\\|\\|) *([^\\|]*) *",
851
- "name": "meta.table.cell.mediawiki"
820
+ }
852
821
  },
853
822
  {
854
823
  "include": "#inline"
855
824
  }
856
- ]
825
+ ],
826
+ "beginCaptures": {
827
+ "1": {
828
+ "name": "meta.tag.inline.table.mediawiki"
829
+ }
830
+ },
831
+ "endCaptures": {
832
+ "1": {
833
+ "name": "meta.tag.inline.table.mediawiki"
834
+ }
835
+ }
857
836
  }
858
837
  ]
859
838
  },
860
839
  "template": {
861
- "comment": "\n\t\t\t\tThis repository item covers templates and parser functions.\n\t\t\t",
862
840
  "patterns": [
863
841
  {
842
+ "name": "meta.template-parameter.mediawiki",
843
+ "match": "{{{[ ]*([0-9]+)[ ]*}}}",
864
844
  "captures": {
865
845
  "1": {
866
846
  "name": "variable.parameter.template.numeric.mediawiki"
867
847
  }
868
- },
869
- "match": "{{{[ ]*([0-9]+)[ ]*}}}",
870
- "name": "meta.template-parameter.mediawiki"
848
+ }
871
849
  },
872
850
  {
851
+ "name": "meta.template-parameter.mediawiki",
852
+ "match": "{{{[ ]*(.*?)[ ]*}}}",
873
853
  "captures": {
874
854
  "1": {
875
855
  "name": "variable.parameter.template.named.mediawiki"
876
856
  }
877
- },
878
- "match": "{{{[ ]*(.*?)[ ]*}}}",
879
- "name": "meta.template-parameter.mediawiki"
857
+ }
880
858
  },
881
859
  {
860
+ "name": "meta.template.parser-function.mediawiki",
882
861
  "begin": "({{)(?=[ ]*#)",
883
- "beginCaptures": {
884
- "1": {
885
- "name": "meta.tag.inline.template.mediawiki"
886
- },
887
- "2": {
888
- "name": "meta.function-call.template.mediawiki"
889
- }
890
- },
891
- "comment": "\n\t\t\t\t\t\tWhy oh why did mediawiki have to add these??\n\t\t\t\t\t",
892
862
  "end": "(}})",
893
- "endCaptures": {
894
- "1": {
895
- "name": "meta.tag.inline.template.mediawiki"
896
- }
897
- },
898
- "name": "meta.template.parser-function.mediawiki",
899
863
  "patterns": [
900
864
  {
901
865
  "include": "#inline"
902
866
  }
903
- ]
904
- },
905
- {
906
- "begin": "({{)([^{}\\|]+)?",
867
+ ],
907
868
  "beginCaptures": {
908
869
  "1": {
909
870
  "name": "meta.tag.inline.template.mediawiki"
@@ -912,20 +873,24 @@
912
873
  "name": "meta.function-call.template.mediawiki"
913
874
  }
914
875
  },
915
- "comment": "scope as meta.function-call as the closest thing to a template with parameters, etc.",
916
- "end": "(}})",
917
876
  "endCaptures": {
918
877
  "1": {
919
878
  "name": "meta.tag.inline.template.mediawiki"
920
879
  }
921
- },
880
+ }
881
+ },
882
+ {
922
883
  "name": "meta.template.mediawiki",
884
+ "begin": "({{)([^{}\\|]+)?",
885
+ "end": "(}})",
923
886
  "patterns": [
924
887
  {
925
888
  "include": "#comments"
926
889
  },
927
890
  {
891
+ "contentName": "comment.block.template-hack.mediawiki",
928
892
  "begin": "(\\|)\\s*(=)",
893
+ "end": "(?=[|}])",
929
894
  "beginCaptures": {
930
895
  "1": {
931
896
  "name": "punctuation.fix_this_later.pipe.mediawiki"
@@ -933,12 +898,17 @@
933
898
  "2": {
934
899
  "name": "punctuation.fix_this_later.equals-sign.mediawiki"
935
900
  }
936
- },
937
- "contentName": "comment.block.template-hack.mediawiki",
938
- "end": "(?=[|}])"
901
+ }
939
902
  },
940
903
  {
904
+ "contentName": "meta.value.template.mediawiki",
941
905
  "begin": "(\\|)(([^{}\\|=]+)(=))?",
906
+ "end": "(?=[|}])",
907
+ "patterns": [
908
+ {
909
+ "include": "#inline"
910
+ }
911
+ ],
942
912
  "beginCaptures": {
943
913
  "1": {
944
914
  "name": "punctuation.fix_this_later.pipe.mediawiki"
@@ -949,24 +919,28 @@
949
919
  "3": {
950
920
  "name": "punctuation.fix_this_later.equals-sign.mediawiki"
951
921
  }
952
- },
953
- "contentName": "meta.value.template.mediawiki",
954
- "end": "(?=[|}])",
955
- "patterns": [
956
- {
957
- "include": "#inline"
958
- }
959
- ]
922
+ }
960
923
  },
961
924
  {
962
- "match": "\\|",
963
- "name": "punctuation.fix_this_later.pipe.mediawiki"
925
+ "name": "punctuation.fix_this_later.pipe.mediawiki",
926
+ "match": "\\|"
964
927
  }
965
- ]
928
+ ],
929
+ "beginCaptures": {
930
+ "1": {
931
+ "name": "meta.tag.inline.template.mediawiki"
932
+ },
933
+ "2": {
934
+ "name": "meta.function-call.template.mediawiki"
935
+ }
936
+ },
937
+ "endCaptures": {
938
+ "1": {
939
+ "name": "meta.tag.inline.template.mediawiki"
940
+ }
941
+ }
966
942
  }
967
943
  ]
968
944
  }
969
- },
970
- "scopeName": "text.html.mediawiki",
971
- "uuid": "6AF21ADF-316A-47D1-A8B6-1BB38637DE9A"
972
- }
945
+ }
946
+ }