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,18 +1,21 @@
1
1
  {
2
- "fileTypes": [
3
- "tex"
4
- ],
5
- "firstLineMatch": "^\\\\documentclass(?!.*\\{beamer\\})",
6
- "keyEquivalent": "^~L",
7
2
  "name": "LaTeX",
3
+ "scopeName": "text.tex.latex",
8
4
  "patterns": [
9
5
  {
10
- "comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.",
11
- "match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s",
12
- "name": "meta.space-after-command.latex"
6
+ "name": "meta.space-after-command.latex",
7
+ "match": "(?\u003c=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s"
13
8
  },
14
9
  {
10
+ "name": "meta.preamble.latex",
11
+ "contentName": "support.class.latex",
15
12
  "begin": "((\\\\)(?:usepackage|documentclass))(?:(\\[)([^\\]]*)(\\]))?(\\{)",
13
+ "end": "\\}",
14
+ "patterns": [
15
+ {
16
+ "include": "$self"
17
+ }
18
+ ],
16
19
  "beginCaptures": {
17
20
  "1": {
18
21
  "name": "keyword.control.preamble.latex"
@@ -33,22 +36,22 @@
33
36
  "name": "punctuation.definition.arguments.begin.latex"
34
37
  }
35
38
  },
36
- "contentName": "support.class.latex",
37
- "end": "\\}",
38
39
  "endCaptures": {
39
40
  "0": {
40
41
  "name": "punctuation.definition.arguments.end.latex"
41
42
  }
42
- },
43
- "name": "meta.preamble.latex",
43
+ }
44
+ },
45
+ {
46
+ "name": "meta.include.latex",
47
+ "contentName": "support.class.latex",
48
+ "begin": "((\\\\)(?:include|input))(\\{)",
49
+ "end": "\\}",
44
50
  "patterns": [
45
51
  {
46
52
  "include": "$self"
47
53
  }
48
- ]
49
- },
50
- {
51
- "begin": "((\\\\)(?:include|input))(\\{)",
54
+ ],
52
55
  "beginCaptures": {
53
56
  "1": {
54
57
  "name": "keyword.control.include.latex"
@@ -60,22 +63,22 @@
60
63
  "name": "punctuation.definition.arguments.begin.latex"
61
64
  }
62
65
  },
63
- "contentName": "support.class.latex",
64
- "end": "\\}",
65
66
  "endCaptures": {
66
67
  "0": {
67
68
  "name": "punctuation.definition.arguments.end.latex"
68
69
  }
69
- },
70
- "name": "meta.include.latex",
70
+ }
71
+ },
72
+ {
73
+ "name": "meta.function.section.$3.latex",
74
+ "contentName": "entity.name.section.latex",
75
+ "begin": "(?x)\n\t\t\t\t(\t\t\t\t\t\t\t\t\t\t\t\t\t# Capture 1\n\t\t\t\t\t(\\\\)\t\t\t\t\t\t\t\t\t\t\t# Marker\n\t\t\t\t\t(\n\t\t\t\t\t\t(?:sub){0,2}section\t\t\t\t\t\t\t# Functions\n\t\t\t\t\t | (?:sub)?paragraph\n\t\t\t\t\t | chapter|part|addpart\n\t\t\t\t\t | addchap|addsec|minisec\n\t\t\t\t\t)\n\t\t\t\t\t(?:\\*)?\t\t\t\t\t\t\t\t\t\t\t# Optional Unnumbered\n\t\t\t\t)\n\t\t\t\t(?:\n\t\t\t\t\t(\\[)([^\\[]*?)(\\])\t\t\t\t\t\t\t\t# Optional Title\n\t\t\t\t)??\n\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t\t\t# Opening Bracket\n\t\t\t\t",
76
+ "end": "\\}",
71
77
  "patterns": [
72
78
  {
73
79
  "include": "$self"
74
80
  }
75
- ]
76
- },
77
- {
78
- "begin": "(?x)\n\t\t\t\t(\t\t\t\t\t\t\t\t\t\t\t\t\t# Capture 1\n\t\t\t\t\t(\\\\)\t\t\t\t\t\t\t\t\t\t\t# Marker\n\t\t\t\t\t(\n\t\t\t\t\t\t(?:sub){0,2}section\t\t\t\t\t\t\t# Functions\n\t\t\t\t\t | (?:sub)?paragraph\n\t\t\t\t\t | chapter|part|addpart\n\t\t\t\t\t | addchap|addsec|minisec\n\t\t\t\t\t)\n\t\t\t\t\t(?:\\*)?\t\t\t\t\t\t\t\t\t\t\t# Optional Unnumbered\n\t\t\t\t)\n\t\t\t\t(?:\n\t\t\t\t\t(\\[)([^\\[]*?)(\\])\t\t\t\t\t\t\t\t# Optional Title\n\t\t\t\t)??\n\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t\t\t# Opening Bracket\n\t\t\t\t",
81
+ ],
79
82
  "beginCaptures": {
80
83
  "1": {
81
84
  "name": "support.function.section.latex"
@@ -96,37 +99,33 @@
96
99
  "name": "punctuation.definition.arguments.begin.latex"
97
100
  }
98
101
  },
99
- "comment": "this works OK with all kinds of crazy stuff as long as section is one line",
100
- "contentName": "entity.name.section.latex",
101
- "end": "\\}",
102
102
  "endCaptures": {
103
103
  "0": {
104
104
  "name": "punctuation.definition.arguments.end.latex"
105
105
  }
106
- },
107
- "name": "meta.function.section.$3.latex",
108
- "patterns": [
109
- {
110
- "include": "$self"
111
- }
112
- ]
106
+ }
113
107
  },
114
108
  {
115
109
  "begin": "(^\\s*)?(?=\\\\begin\\{lstlisting\\})",
116
- "beginCaptures": {
117
- "0": {
118
- "name": "punctuation.whitespace.embedded.leading.latex"
119
- }
120
- },
121
110
  "end": "(?!\\G)(\\s*$\\n?)?",
122
- "endCaptures": {
123
- "0": {
124
- "name": "punctuation.whitespace.embedded.trailing.latex"
125
- }
126
- },
127
111
  "patterns": [
128
112
  {
113
+ "name": "meta.embedded.block.java",
114
+ "contentName": "meta.function.embedded.latex",
129
115
  "begin": "(((\\\\)begin)(\\{)(lstlisting)(\\})(?:(\\[).*(\\]))?(\\s*%\\s*(?i:Java)\\n?))",
116
+ "end": "(((\\\\)end)(\\{)(lstlisting)(\\}))",
117
+ "patterns": [
118
+ {
119
+ "name": "source.java",
120
+ "begin": "^(?!\\\\end\\{lstlisting\\})",
121
+ "end": "(?=\\\\end\\{lstlisting\\})",
122
+ "patterns": [
123
+ {
124
+ "include": "source.java"
125
+ }
126
+ ]
127
+ }
128
+ ],
130
129
  "captures": {
131
130
  "1": {
132
131
  "name": "meta.function.embedded.latex"
@@ -155,25 +154,25 @@
155
154
  "9": {
156
155
  "name": "comment.line.percentage.latex"
157
156
  }
158
- },
157
+ }
158
+ },
159
+ {
160
+ "name": "meta.embedded.block.python",
159
161
  "contentName": "meta.function.embedded.latex",
162
+ "begin": "(((\\\\)begin)(\\{)(lstlisting)(\\})(?:(\\[).*(\\]))?(\\s*%\\s*(?i:Python)\\n?))",
160
163
  "end": "(((\\\\)end)(\\{)(lstlisting)(\\}))",
161
- "name": "meta.embedded.block.java",
162
164
  "patterns": [
163
165
  {
166
+ "name": "source.python",
164
167
  "begin": "^(?!\\\\end\\{lstlisting\\})",
165
168
  "end": "(?=\\\\end\\{lstlisting\\})",
166
- "name": "source.java",
167
169
  "patterns": [
168
170
  {
169
- "include": "source.java"
171
+ "include": "source.python"
170
172
  }
171
173
  ]
172
174
  }
173
- ]
174
- },
175
- {
176
- "begin": "(((\\\\)begin)(\\{)(lstlisting)(\\})(?:(\\[).*(\\]))?(\\s*%\\s*(?i:Python)\\n?))",
175
+ ],
177
176
  "captures": {
178
177
  "1": {
179
178
  "name": "meta.function.embedded.latex"
@@ -202,25 +201,13 @@
202
201
  "9": {
203
202
  "name": "comment.line.percentage.latex"
204
203
  }
205
- },
206
- "contentName": "meta.function.embedded.latex",
207
- "end": "(((\\\\)end)(\\{)(lstlisting)(\\}))",
208
- "name": "meta.embedded.block.python",
209
- "patterns": [
210
- {
211
- "begin": "^(?!\\\\end\\{lstlisting\\})",
212
- "end": "(?=\\\\end\\{lstlisting\\})",
213
- "name": "source.python",
214
- "patterns": [
215
- {
216
- "include": "source.python"
217
- }
218
- ]
219
- }
220
- ]
204
+ }
221
205
  },
222
206
  {
207
+ "name": "meta.embedded.block.generic",
208
+ "contentName": "meta.function.embedded.latex",
223
209
  "begin": "((\\\\)begin)(\\{)(lstlisting)(\\})(?:(\\[).*(\\]))?(\\s*%.*\\n?)?",
210
+ "end": "(((\\\\)end)(\\{)(lstlisting)(\\}))",
224
211
  "captures": {
225
212
  "1": {
226
213
  "name": "meta.function.embedded.latex"
@@ -249,15 +236,25 @@
249
236
  "9": {
250
237
  "name": "comment.line.percentage.latex"
251
238
  }
252
- },
253
- "contentName": "meta.function.embedded.latex",
254
- "end": "(((\\\\)end)(\\{)(lstlisting)(\\}))",
255
- "name": "meta.embedded.block.generic"
239
+ }
256
240
  }
257
- ]
241
+ ],
242
+ "beginCaptures": {
243
+ "0": {
244
+ "name": "punctuation.whitespace.embedded.leading.latex"
245
+ }
246
+ },
247
+ "endCaptures": {
248
+ "0": {
249
+ "name": "punctuation.whitespace.embedded.trailing.latex"
250
+ }
251
+ }
258
252
  },
259
253
  {
254
+ "name": "meta.function.verbatim.latex",
255
+ "contentName": "markup.raw.verbatim.latex",
260
256
  "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:V|v)erbatim|alltt)(\\})",
257
+ "end": "((\\\\)end)(\\{)(\\4)(\\})",
261
258
  "captures": {
262
259
  "1": {
263
260
  "name": "support.function.be.latex"
@@ -274,12 +271,11 @@
274
271
  "5": {
275
272
  "name": "punctuation.definition.arguments.end.latex"
276
273
  }
277
- },
278
- "contentName": "markup.raw.verbatim.latex",
279
- "end": "((\\\\)end)(\\{)(\\4)(\\})",
280
- "name": "meta.function.verbatim.latex"
274
+ }
281
275
  },
282
276
  {
277
+ "name": "meta.function.link.url.latex",
278
+ "match": "(?:\\s*)((\\\\)(?:url|href))(\\{)([^}]*)(\\})",
283
279
  "captures": {
284
280
  "1": {
285
281
  "name": "support.function.url.latex"
@@ -296,11 +292,11 @@
296
292
  "5": {
297
293
  "name": "punctuation.definition.arguments.end.latex"
298
294
  }
299
- },
300
- "match": "(?:\\s*)((\\\\)(?:url|href))(\\{)([^}]*)(\\})",
301
- "name": "meta.function.link.url.latex"
295
+ }
302
296
  },
303
297
  {
298
+ "name": "meta.function.begin-document.latex",
299
+ "match": "(?:\\s*)((\\\\)begin)(\\{)(document)(\\})",
304
300
  "captures": {
305
301
  "1": {
306
302
  "name": "support.function.be.latex"
@@ -317,12 +313,11 @@
317
313
  "5": {
318
314
  "name": "punctuation.definition.arguments.end.latex"
319
315
  }
320
- },
321
- "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.",
322
- "match": "(?:\\s*)((\\\\)begin)(\\{)(document)(\\})",
323
- "name": "meta.function.begin-document.latex"
316
+ }
324
317
  },
325
318
  {
319
+ "name": "meta.function.end-document.latex",
320
+ "match": "(?:\\s*)((\\\\)end)(\\{)(document)(\\})",
326
321
  "captures": {
327
322
  "1": {
328
323
  "name": "support.function.be.latex"
@@ -339,40 +334,18 @@
339
334
  "5": {
340
335
  "name": "punctuation.definition.arguments.end.latex"
341
336
  }
342
- },
343
- "match": "(?:\\s*)((\\\\)end)(\\{)(document)(\\})",
344
- "name": "meta.function.end-document.latex"
337
+ }
345
338
  },
346
339
  {
347
- "begin": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)begin)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\talign|equation|eqnarray\t\t\t# Argument\n\t\t\t\t\t\t\t | multline|aligned|alignat\n\t\t\t\t\t\t\t | split|gather|gathered\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t(?:\\*)?\t\t\t\t\t\t\t\t# Optional Unnumbered\n\t\t\t\t\t\t)\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
348
- "captures": {
349
- "1": {
350
- "name": "support.function.be.latex"
351
- },
352
- "2": {
353
- "name": "punctuation.definition.function.latex"
354
- },
355
- "3": {
356
- "name": "punctuation.definition.arguments.begin.latex"
357
- },
358
- "4": {
359
- "name": "variable.parameter.function.latex"
360
- },
361
- "5": {
362
- "name": "punctuation.definition.arguments.end.latex"
363
- }
364
- },
340
+ "name": "meta.function.environment.math.latex",
365
341
  "contentName": "string.other.math.block.environment.latex",
342
+ "begin": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)begin)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\talign|equation|eqnarray\t\t\t# Argument\n\t\t\t\t\t\t\t | multline|aligned|alignat\n\t\t\t\t\t\t\t | split|gather|gathered\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t(?:\\*)?\t\t\t\t\t\t\t\t# Optional Unnumbered\n\t\t\t\t\t\t)\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
366
343
  "end": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)end)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(\\4)\t\t\t\t# Previous capture from begin\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(?:\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
367
- "name": "meta.function.environment.math.latex",
368
344
  "patterns": [
369
345
  {
370
346
  "include": "$base"
371
347
  }
372
- ]
373
- },
374
- {
375
- "begin": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)begin)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(array|tabular[xy*]?)\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
348
+ ],
376
349
  "captures": {
377
350
  "1": {
378
351
  "name": "support.function.be.latex"
@@ -389,28 +362,31 @@
389
362
  "5": {
390
363
  "name": "punctuation.definition.arguments.end.latex"
391
364
  }
392
- },
365
+ }
366
+ },
367
+ {
368
+ "name": "meta.function.environment.tabular.latex",
393
369
  "contentName": "meta.data.environment.tabular.latex",
370
+ "begin": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)begin)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(array|tabular[xy*]?)\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
394
371
  "end": "(?x)\n\t\t\t\t\t(?:\\s*)\t\t\t\t\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t((\\\\)end)\t\t\t\t\t\t\t\t\t# Marker - Function\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t# Open Bracket\n\t\t\t\t\t\t(\\4)\t\t\t\t# Previous capture from begin\n\t\t\t\t\t(\\})\t\t\t\t\t\t\t\t\t\t# Close Bracket\n\t\t\t\t\t(?:\\s*\\n)?\t\t\t\t# Match to end of line absent of content\n\t\t\t\t",
395
- "name": "meta.function.environment.tabular.latex",
396
372
  "patterns": [
397
373
  {
398
- "match": "\\\\\\\\",
399
- "name": "punctuation.definition.table.row.latex"
374
+ "name": "punctuation.definition.table.row.latex",
375
+ "match": "\\\\\\\\"
400
376
  },
401
377
  {
402
- "begin": "(?:^|(?<=\\\\\\\\))(?!\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
403
- "end": "(?=\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
404
378
  "name": "meta.row.environment.tabular.latex",
379
+ "begin": "(?:^|(?\u003c=\\\\\\\\))(?!\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
380
+ "end": "(?=\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
405
381
  "patterns": [
406
382
  {
407
- "match": "&",
408
- "name": "punctuation.definition.table.cell.latex"
383
+ "name": "punctuation.definition.table.cell.latex",
384
+ "match": "\u0026"
409
385
  },
410
386
  {
411
- "begin": "(?:^|(?<=&))((?!&|\\\\\\\\|$))",
412
- "end": "(?=&|\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
413
387
  "name": "meta.cell.environment.tabular.latex",
388
+ "begin": "(?:^|(?\u003c=\u0026))((?!\u0026|\\\\\\\\|$))",
389
+ "end": "(?=\u0026|\\\\\\\\|\\s*\\\\end\\{(?:tabular|array))",
414
390
  "patterns": [
415
391
  {
416
392
  "include": "$base"
@@ -425,10 +401,7 @@
425
401
  {
426
402
  "include": "$base"
427
403
  }
428
- ]
429
- },
430
- {
431
- "begin": "(?:\\s*)((\\\\)begin)(\\{)(itemize|enumerate|description|list)(\\})",
404
+ ],
432
405
  "captures": {
433
406
  "1": {
434
407
  "name": "support.function.be.latex"
@@ -437,25 +410,25 @@
437
410
  "name": "punctuation.definition.function.latex"
438
411
  },
439
412
  "3": {
440
- "name": "punctuation.definition.arguments.latex"
413
+ "name": "punctuation.definition.arguments.begin.latex"
441
414
  },
442
415
  "4": {
443
416
  "name": "variable.parameter.function.latex"
444
417
  },
445
418
  "5": {
446
- "name": "punctuation.definition.arguments.latex"
419
+ "name": "punctuation.definition.arguments.end.latex"
447
420
  }
448
- },
449
- "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
421
+ }
422
+ },
423
+ {
450
424
  "name": "meta.function.environment.list.latex",
425
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(itemize|enumerate|description|list)(\\})",
426
+ "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
451
427
  "patterns": [
452
428
  {
453
429
  "include": "$base"
454
430
  }
455
- ]
456
- },
457
- {
458
- "begin": "(?:\\s*)((\\\\)begin)(\\{)(tikzpicture)(\\})",
431
+ ],
459
432
  "captures": {
460
433
  "1": {
461
434
  "name": "support.function.be.latex"
@@ -472,17 +445,17 @@
472
445
  "5": {
473
446
  "name": "punctuation.definition.arguments.latex"
474
447
  }
475
- },
476
- "end": "((\\\\)end)(\\{)(tikzpicture)(\\})(?:\\s*\\n)?",
448
+ }
449
+ },
450
+ {
477
451
  "name": "meta.function.environment.latex.tikz",
452
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(tikzpicture)(\\})",
453
+ "end": "((\\\\)end)(\\{)(tikzpicture)(\\})(?:\\s*\\n)?",
478
454
  "patterns": [
479
455
  {
480
456
  "include": "text.tex.latex"
481
457
  }
482
- ]
483
- },
484
- {
485
- "begin": "(?:\\s*)((\\\\)begin)(\\{)(\\w+[*]?)(\\})",
458
+ ],
486
459
  "captures": {
487
460
  "1": {
488
461
  "name": "support.function.be.latex"
@@ -499,26 +472,53 @@
499
472
  "5": {
500
473
  "name": "punctuation.definition.arguments.latex"
501
474
  }
502
- },
503
- "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
475
+ }
476
+ },
477
+ {
504
478
  "name": "meta.function.environment.general.latex",
479
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)(\\w+[*]?)(\\})",
480
+ "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
505
481
  "patterns": [
506
482
  {
507
483
  "include": "$base"
508
484
  }
509
- ]
485
+ ],
486
+ "captures": {
487
+ "1": {
488
+ "name": "support.function.be.latex"
489
+ },
490
+ "2": {
491
+ "name": "punctuation.definition.function.latex"
492
+ },
493
+ "3": {
494
+ "name": "punctuation.definition.arguments.latex"
495
+ },
496
+ "4": {
497
+ "name": "variable.parameter.function.latex"
498
+ },
499
+ "5": {
500
+ "name": "punctuation.definition.arguments.latex"
501
+ }
502
+ }
510
503
  },
511
504
  {
505
+ "name": "storage.type.function.latex",
506
+ "match": "(\\\\)(newcommand|renewcommand)\\b",
512
507
  "captures": {
513
508
  "1": {
514
509
  "name": "punctuation.definition.function.latex"
515
510
  }
516
- },
517
- "match": "(\\\\)(newcommand|renewcommand)\\b",
518
- "name": "storage.type.function.latex"
511
+ }
519
512
  },
520
513
  {
514
+ "contentName": "meta.paragraph.margin.latex",
521
515
  "begin": "((\\\\)marginpar)(\\{)",
516
+ "end": "\\}",
517
+ "patterns": [
518
+ {
519
+ "include": "$base"
520
+ }
521
+ ],
522
522
  "beginCaptures": {
523
523
  "1": {
524
524
  "name": "support.function.marginpar.latex"
@@ -530,21 +530,21 @@
530
530
  "name": "punctuation.definition.marginpar.begin.latex"
531
531
  }
532
532
  },
533
- "contentName": "meta.paragraph.margin.latex",
534
- "end": "\\}",
535
533
  "endCaptures": {
536
534
  "0": {
537
535
  "name": "punctuation.definition.marginpar.end.latex"
538
536
  }
539
- },
537
+ }
538
+ },
539
+ {
540
+ "contentName": "meta.footnote.latex",
541
+ "begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)",
542
+ "end": "\\}",
540
543
  "patterns": [
541
544
  {
542
545
  "include": "$base"
543
546
  }
544
- ]
545
- },
546
- {
547
- "begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)",
547
+ ],
548
548
  "beginCaptures": {
549
549
  "1": {
550
550
  "name": "support.function.footnote.latex"
@@ -555,6 +555,7 @@
555
555
  "3": {
556
556
  "patterns": [
557
557
  {
558
+ "match": "(\\[)([^\\[]*?)(\\])",
558
559
  "captures": {
559
560
  "1": {
560
561
  "name": "punctuation.definition.arguments.begin.latex"
@@ -565,8 +566,7 @@
565
566
  "3": {
566
567
  "name": "punctuation.definition.arguments.end.latex"
567
568
  }
568
- },
569
- "match": "(\\[)([^\\[]*?)(\\])"
569
+ }
570
570
  }
571
571
  ]
572
572
  },
@@ -574,21 +574,22 @@
574
574
  "name": "punctuation.definition.footnote.begin.latex"
575
575
  }
576
576
  },
577
- "contentName": "meta.footnote.latex",
578
- "end": "\\}",
579
577
  "endCaptures": {
580
578
  "0": {
581
579
  "name": "punctuation.definition.footnote.end.latex"
582
580
  }
583
- },
581
+ }
582
+ },
583
+ {
584
+ "name": "meta.function.emph.latex",
585
+ "contentName": "markup.italic.emph.latex",
586
+ "begin": "((\\\\)emph)(\\{)",
587
+ "end": "\\}",
584
588
  "patterns": [
585
589
  {
586
590
  "include": "$base"
587
591
  }
588
- ]
589
- },
590
- {
591
- "begin": "((\\\\)emph)(\\{)",
592
+ ],
592
593
  "beginCaptures": {
593
594
  "1": {
594
595
  "name": "support.function.emph.latex"
@@ -600,22 +601,22 @@
600
601
  "name": "punctuation.definition.emph.begin.latex"
601
602
  }
602
603
  },
603
- "contentName": "markup.italic.emph.latex",
604
- "end": "\\}",
605
604
  "endCaptures": {
606
605
  "0": {
607
606
  "name": "punctuation.definition.emph.end.latex"
608
607
  }
609
- },
610
- "name": "meta.function.emph.latex",
608
+ }
609
+ },
610
+ {
611
+ "name": "meta.function.textit.latex",
612
+ "contentName": "markup.italic.textit.latex",
613
+ "begin": "((\\\\)textit)(\\{)",
614
+ "end": "\\}",
611
615
  "patterns": [
612
616
  {
613
617
  "include": "$base"
614
618
  }
615
- ]
616
- },
617
- {
618
- "begin": "((\\\\)textit)(\\{)",
619
+ ],
619
620
  "captures": {
620
621
  "1": {
621
622
  "name": "support.function.textit.latex"
@@ -627,23 +628,22 @@
627
628
  "name": "punctuation.definition.textit.begin.latex"
628
629
  }
629
630
  },
630
- "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions",
631
- "contentName": "markup.italic.textit.latex",
632
- "end": "\\}",
633
631
  "endCaptures": {
634
632
  "0": {
635
633
  "name": "punctuation.definition.textit.end.latex"
636
634
  }
637
- },
638
- "name": "meta.function.textit.latex",
635
+ }
636
+ },
637
+ {
638
+ "name": "meta.function.textbf.latex",
639
+ "contentName": "markup.bold.textbf.latex",
640
+ "begin": "((\\\\)textbf)(\\{)",
641
+ "end": "\\}",
639
642
  "patterns": [
640
643
  {
641
644
  "include": "$base"
642
645
  }
643
- ]
644
- },
645
- {
646
- "begin": "((\\\\)textbf)(\\{)",
646
+ ],
647
647
  "captures": {
648
648
  "1": {
649
649
  "name": "support.function.textbf.latex"
@@ -655,22 +655,22 @@
655
655
  "name": "punctuation.definition.textbf.begin.latex"
656
656
  }
657
657
  },
658
- "contentName": "markup.bold.textbf.latex",
659
- "end": "\\}",
660
658
  "endCaptures": {
661
659
  "0": {
662
660
  "name": "punctuation.definition.textbf.end.latex"
663
661
  }
664
- },
665
- "name": "meta.function.textbf.latex",
662
+ }
663
+ },
664
+ {
665
+ "name": "meta.function.texttt.latex",
666
+ "contentName": "markup.raw.texttt.latex",
667
+ "begin": "((\\\\)texttt)(\\{)",
668
+ "end": "\\}",
666
669
  "patterns": [
667
670
  {
668
671
  "include": "$base"
669
672
  }
670
- ]
671
- },
672
- {
673
- "begin": "((\\\\)texttt)(\\{)",
673
+ ],
674
674
  "captures": {
675
675
  "1": {
676
676
  "name": "support.function.texttt.latex"
@@ -682,21 +682,15 @@
682
682
  "name": "punctuation.definition.texttt.begin.latex"
683
683
  }
684
684
  },
685
- "contentName": "markup.raw.texttt.latex",
686
- "end": "\\}",
687
685
  "endCaptures": {
688
686
  "0": {
689
687
  "name": "punctuation.definition.texttt.end.latex"
690
688
  }
691
- },
692
- "name": "meta.function.texttt.latex",
693
- "patterns": [
694
- {
695
- "include": "$base"
696
- }
697
- ]
689
+ }
698
690
  },
699
691
  {
692
+ "name": "meta.scope.item.latex",
693
+ "match": "(\\\\)item\\b",
700
694
  "captures": {
701
695
  "0": {
702
696
  "name": "keyword.other.item.latex"
@@ -704,12 +698,18 @@
704
698
  "1": {
705
699
  "name": "punctuation.definition.keyword.latex"
706
700
  }
707
- },
708
- "match": "(\\\\)item\\b",
709
- "name": "meta.scope.item.latex"
701
+ }
710
702
  },
711
703
  {
704
+ "name": "meta.citation.latex",
712
705
  "begin": "(?x)\n\t\t\t\t\t(\n\t\t\t\t\t\t(\\\\)\t\t\t\t\t\t\t\t\t\t# Marker\n\t\t\t\t\t\t(?:auto|foot|full|no|short|[tT]ext)?\t\t# Function Name\n\t\t\t\t\t\t[cC]ite\n\t\t\t\t\t\t(?:al)?(?:t|p|author|year(?:par)?|title)?[ANP]*\n\t\t\t\t\t\t\\*?\t\t\t\t\t\t\t\t\t\t\t# Optional Unabreviated\n\t\t\t\t\t)\n\t\t\t\t\t(?:(\\[)[^\\]]*(\\]))?\t\t\t\t\t\t\t\t# Optional\n\t\t\t\t\t(?:(\\[)[^\\]]*(\\]))?\t\t\t\t\t\t\t\t# Arguments\n\t\t\t\t\t(\\{)\t\t\t\t\t\t\t\t\t\t\t# Opening Bracket\n\t\t\t\t",
706
+ "end": "\\}",
707
+ "patterns": [
708
+ {
709
+ "name": "constant.other.reference.citation.latex",
710
+ "match": "[\\w:.]+"
711
+ }
712
+ ],
713
713
  "captures": {
714
714
  "1": {
715
715
  "name": "keyword.control.cite.latex"
@@ -733,22 +733,22 @@
733
733
  "name": "punctuation.definition.arguments.latex"
734
734
  }
735
735
  },
736
- "end": "\\}",
737
736
  "endCaptures": {
738
737
  "0": {
739
738
  "name": "punctuation.definition.arguments.latex"
740
739
  }
741
- },
742
- "name": "meta.citation.latex",
743
- "patterns": [
744
- {
745
- "match": "[\\w:.]+",
746
- "name": "constant.other.reference.citation.latex"
747
- }
748
- ]
740
+ }
749
741
  },
750
742
  {
743
+ "name": "meta.reference.label.latex",
751
744
  "begin": "((\\\\)(?:\\w*[r|R]ef\\*?))(\\{)",
745
+ "end": "\\}",
746
+ "patterns": [
747
+ {
748
+ "name": "constant.other.reference.label.latex",
749
+ "match": "[a-zA-Z0-9\\.,:/*!^_-]"
750
+ }
751
+ ],
752
752
  "beginCaptures": {
753
753
  "1": {
754
754
  "name": "keyword.control.ref.latex"
@@ -760,22 +760,22 @@
760
760
  "name": "punctuation.definition.arguments.begin.latex"
761
761
  }
762
762
  },
763
- "end": "\\}",
764
763
  "endCaptures": {
765
764
  "0": {
766
765
  "name": "punctuation.definition.arguments.begin.latex"
767
766
  }
768
- },
769
- "name": "meta.reference.label.latex",
770
- "patterns": [
771
- {
772
- "match": "[a-zA-Z0-9\\.,:/*!^_-]",
773
- "name": "constant.other.reference.label.latex"
774
- }
775
- ]
767
+ }
776
768
  },
777
769
  {
770
+ "name": "meta.definition.label.latex",
778
771
  "begin": "((\\\\)label)(\\{)",
772
+ "end": "\\}",
773
+ "patterns": [
774
+ {
775
+ "name": "variable.parameter.definition.label.latex",
776
+ "match": "[a-zA-Z0-9\\.,:/*!^_-]"
777
+ }
778
+ ],
779
779
  "beginCaptures": {
780
780
  "1": {
781
781
  "name": "keyword.control.label.latex"
@@ -787,22 +787,22 @@
787
787
  "name": "punctuation.definition.arguments.begin.latex"
788
788
  }
789
789
  },
790
- "end": "\\}",
791
790
  "endCaptures": {
792
791
  "0": {
793
792
  "name": "punctuation.definition.arguments.end.latex"
794
793
  }
795
- },
796
- "name": "meta.definition.label.latex",
797
- "patterns": [
798
- {
799
- "match": "[a-zA-Z0-9\\.,:/*!^_-]",
800
- "name": "variable.parameter.definition.label.latex"
801
- }
802
- ]
794
+ }
803
795
  },
804
796
  {
797
+ "name": "meta.function.verb.latex",
798
+ "contentName": "markup.raw.verb.latex",
805
799
  "begin": "((\\\\)(?:verb|lstinline)[\\*]?)\\s*((\\\\)scantokens)(\\{)",
800
+ "end": "(\\})",
801
+ "patterns": [
802
+ {
803
+ "include": "$self"
804
+ }
805
+ ],
806
806
  "beginCaptures": {
807
807
  "1": {
808
808
  "name": "support.function.verb.latex"
@@ -820,21 +820,15 @@
820
820
  "name": "punctuation.definition.begin.latex"
821
821
  }
822
822
  },
823
- "contentName": "markup.raw.verb.latex",
824
- "end": "(\\})",
825
823
  "endCaptures": {
826
824
  "1": {
827
825
  "name": "punctuation.definition.end.latex"
828
826
  }
829
- },
830
- "name": "meta.function.verb.latex",
831
- "patterns": [
832
- {
833
- "include": "$self"
834
- }
835
- ]
827
+ }
836
828
  },
837
829
  {
830
+ "name": "meta.function.verb.latex",
831
+ "match": "((\\\\)(?:verb|lstinline)[\\*]?)\\s*((?\u003c=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",
838
832
  "captures": {
839
833
  "1": {
840
834
  "name": "support.function.verb.latex"
@@ -851,148 +845,148 @@
851
845
  "5": {
852
846
  "name": "punctuation.definition.verb.latex"
853
847
  }
854
- },
855
- "match": "((\\\\)(?:verb|lstinline)[\\*]?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",
856
- "name": "meta.function.verb.latex"
848
+ }
857
849
  },
858
850
  {
851
+ "name": "string.quoted.double.european.latex",
859
852
  "begin": "\"`",
853
+ "end": "\"'",
854
+ "patterns": [
855
+ {
856
+ "include": "$base"
857
+ }
858
+ ],
860
859
  "beginCaptures": {
861
860
  "0": {
862
861
  "name": "punctuation.definition.string.begin.latex"
863
862
  }
864
863
  },
865
- "end": "\"'",
866
864
  "endCaptures": {
867
865
  "0": {
868
866
  "name": "punctuation.definition.string.end.latex"
869
867
  }
870
- },
871
- "name": "string.quoted.double.european.latex",
868
+ }
869
+ },
870
+ {
871
+ "name": "string.quoted.double.latex",
872
+ "begin": "``",
873
+ "end": "''|\"",
872
874
  "patterns": [
873
875
  {
874
876
  "include": "$base"
875
877
  }
876
- ]
877
- },
878
- {
879
- "begin": "``",
878
+ ],
880
879
  "beginCaptures": {
881
880
  "0": {
882
881
  "name": "punctuation.definition.string.begin.latex"
883
882
  }
884
883
  },
885
- "end": "''|\"",
886
884
  "endCaptures": {
887
885
  "0": {
888
886
  "name": "punctuation.definition.string.end.latex"
889
887
  }
890
- },
891
- "name": "string.quoted.double.latex",
888
+ }
889
+ },
890
+ {
891
+ "name": "string.quoted.double.guillemot.latex",
892
+ "begin": "\"\u003e",
893
+ "end": "\"\u003c",
892
894
  "patterns": [
893
895
  {
894
896
  "include": "$base"
895
897
  }
896
- ]
897
- },
898
- {
899
- "begin": "\">",
898
+ ],
900
899
  "beginCaptures": {
901
900
  "0": {
902
901
  "name": "punctuation.definition.string.begin.latex"
903
902
  }
904
903
  },
905
- "end": "\"<",
906
904
  "endCaptures": {
907
905
  "0": {
908
906
  "name": "punctuation.definition.string.end.latex"
909
907
  }
910
- },
908
+ }
909
+ },
910
+ {
911
911
  "name": "string.quoted.double.guillemot.latex",
912
+ "begin": "\"\u003c",
913
+ "end": "\"\u003e",
912
914
  "patterns": [
913
915
  {
914
916
  "include": "$base"
915
917
  }
916
- ]
917
- },
918
- {
919
- "begin": "\"<",
918
+ ],
920
919
  "beginCaptures": {
921
920
  "0": {
922
921
  "name": "punctuation.definition.string.begin.latex"
923
922
  }
924
923
  },
925
- "end": "\">",
926
924
  "endCaptures": {
927
925
  "0": {
928
926
  "name": "punctuation.definition.string.end.latex"
929
927
  }
930
- },
931
- "name": "string.quoted.double.guillemot.latex",
928
+ }
929
+ },
930
+ {
931
+ "name": "string.other.math.latex",
932
+ "begin": "\\\\\\(",
933
+ "end": "\\\\\\)",
932
934
  "patterns": [
933
935
  {
934
936
  "include": "$base"
935
937
  }
936
- ]
937
- },
938
- {
939
- "begin": "\\\\\\(",
938
+ ],
940
939
  "beginCaptures": {
941
940
  "0": {
942
941
  "name": "punctuation.definition.string.begin.latex"
943
942
  }
944
943
  },
945
- "end": "\\\\\\)",
946
944
  "endCaptures": {
947
945
  "0": {
948
946
  "name": "punctuation.definition.string.end.latex"
949
947
  }
950
- },
948
+ }
949
+ },
950
+ {
951
951
  "name": "string.other.math.latex",
952
+ "begin": "\\\\\\[",
953
+ "end": "\\\\\\]",
952
954
  "patterns": [
953
955
  {
954
956
  "include": "$base"
955
957
  }
956
- ]
957
- },
958
- {
959
- "begin": "\\\\\\[",
958
+ ],
960
959
  "beginCaptures": {
961
960
  "0": {
962
961
  "name": "punctuation.definition.string.begin.latex"
963
962
  }
964
963
  },
965
- "end": "\\\\\\]",
966
964
  "endCaptures": {
967
965
  "0": {
968
966
  "name": "punctuation.definition.string.end.latex"
969
967
  }
970
- },
971
- "name": "string.other.math.latex",
972
- "patterns": [
973
- {
974
- "include": "$base"
975
- }
976
- ]
968
+ }
977
969
  },
978
970
  {
979
- "match": "(?<!\\S)'.*?'",
980
- "name": "invalid.illegal.string.quoted.single.latex"
971
+ "name": "invalid.illegal.string.quoted.single.latex",
972
+ "match": "(?\u003c!\\S)'.*?'"
981
973
  },
982
974
  {
983
- "match": "(?<!\\S)\".*?\"",
984
- "name": "invalid.illegal.string.quoted.double.latex"
975
+ "name": "invalid.illegal.string.quoted.double.latex",
976
+ "match": "(?\u003c!\\S)\".*?\""
985
977
  },
986
978
  {
979
+ "name": "constant.character.latex",
980
+ "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b",
987
981
  "captures": {
988
982
  "1": {
989
983
  "name": "punctuation.definition.constant.latex"
990
984
  }
991
- },
992
- "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b",
993
- "name": "constant.character.latex"
985
+ }
994
986
  },
995
987
  {
988
+ "name": "meta.column-specials.latex",
989
+ "match": "(?:\u003c|\u003e)(\\{)\\$(\\})",
996
990
  "captures": {
997
991
  "1": {
998
992
  "name": "punctuation.definition.column-specials.begin.latex"
@@ -1000,14 +994,10 @@
1000
994
  "2": {
1001
995
  "name": "punctuation.definition.column-specials.end.latex"
1002
996
  }
1003
- },
1004
- "match": "(?:<|>)(\\{)\\$(\\})",
1005
- "name": "meta.column-specials.latex"
997
+ }
1006
998
  },
1007
999
  {
1008
1000
  "include": "text.tex"
1009
1001
  }
1010
- ],
1011
- "scopeName": "text.tex.latex",
1012
- "uuid": "3BEEA00C-6B1D-11D9-B8AD-000D93589AF6"
1013
- }
1002
+ ]
1003
+ }