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,9 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "lean",
4
- "hlean"
5
- ],
6
2
  "name": "Lean",
3
+ "scopeName": "source.lean",
7
4
  "patterns": [
8
5
  {
9
6
  "include": "#dashComment"
@@ -12,20 +9,19 @@
12
9
  "include": "#blockComment"
13
10
  },
14
11
  {
12
+ "name": "meta.import.lean",
15
13
  "begin": "^\\s*(import)\\b",
14
+ "end": "$",
16
15
  "beginCaptures": {
17
16
  "1": {
18
17
  "name": "keyword.other.lean"
19
18
  }
20
- },
21
- "end": "$",
22
- "name": "meta.import.lean",
23
- "patterns": [
24
-
25
- ]
19
+ }
26
20
  },
27
21
  {
22
+ "name": "meta.names.lean",
28
23
  "begin": "\\b(inductive|structure|record|theorem|proposition|axiom|axioms|lemma|hypothesis|definition|def|instance|class|constant)\\b[ \\t\\n\\r({\\[]+([^ \\t\\n\\r{(\\[]*)",
24
+ "end": "[ \\t\\n\\r{(\\[]",
29
25
  "beginCaptures": {
30
26
  "1": {
31
27
  "name": "keyword.other.lean"
@@ -33,117 +29,109 @@
33
29
  "2": {
34
30
  "name": "variable.language.lean"
35
31
  }
36
- },
37
- "end": "[ \\t\\n\\r{(\\[]",
38
- "name": "meta.names.lean",
39
- "pattern": [
40
-
41
- ]
32
+ }
42
33
  },
43
34
  {
35
+ "name": "string.quoted.double.lean",
44
36
  "begin": "\"",
45
37
  "end": "\"",
46
- "name": "string.quoted.double.lean",
47
38
  "patterns": [
48
39
  {
49
- "match": "\\\\.",
50
- "name": "constant.character.escape.lean"
40
+ "name": "constant.character.escape.lean",
41
+ "match": "\\\\."
51
42
  }
52
43
  ]
53
44
  },
54
45
  {
55
- "match": "\\b(Prop|Type[\\'₊₀-₉]?)",
56
- "name": "storage.type.lean"
46
+ "name": "storage.type.lean",
47
+ "match": "\\b(Prop|Type[\\'₊₀-₉]?)"
57
48
  },
58
49
  {
59
- "match": "@\\[[^\\]]*\\]",
60
- "name": "storage.modifier.lean"
50
+ "name": "storage.modifier.lean",
51
+ "match": "@\\[[^\\]]*\\]"
61
52
  },
62
53
  {
63
- "match": "attribute\\s*\\[[^\\]]*\\]",
64
- "name": "storage.modifier.lean"
54
+ "name": "storage.modifier.lean",
55
+ "match": "attribute\\s*\\[[^\\]]*\\]"
65
56
  },
66
57
  {
67
- "match": "\\b(import|prelude|theory|protected|private|noncomputable|mutual|meta|definition|def|instance|renaming|hiding|exposing|parameter|parameters|begin|conjecture|constant|constants|hypothesis|lemma|corollary|variable|variables|premise|premises|print|theorem|example|abbreviation|context|open|as|export|axiom|inductive|with|structure|record|universe|universes|alias|help|override|precedence|reserve|postfix|prefix|infix|infixl|infixr|notation|vm_eval|eval|check|exit|end|using|namespace|section|local|set_option|extends|include|omit|class|classes|instances|metaclasses|raw|run_command)\\b",
68
- "name": "keyword.other.lean"
58
+ "name": "keyword.other.lean",
59
+ "match": "\\b(import|prelude|theory|protected|private|noncomputable|mutual|meta|definition|def|instance|renaming|hiding|exposing|parameter|parameters|begin|conjecture|constant|constants|hypothesis|lemma|corollary|variable|variables|premise|premises|print|theorem|example|abbreviation|context|open|as|export|axiom|inductive|with|structure|record|universe|universes|alias|help|override|precedence|reserve|postfix|prefix|infix|infixl|infixr|notation|vm_eval|eval|check|exit|end|using|namespace|section|local|set_option|extends|include|omit|class|classes|instances|metaclasses|raw|run_command)\\b"
69
60
  },
70
61
  {
71
- "match": "\\b(calc|have|assert|suppose|this|match|obtains|do|suffices|show|by|in|at|let|forall|fun|exists|if|then|else|assume|take|obtain|from)\\b",
72
- "name": "keyword.other.lean"
62
+ "name": "keyword.other.lean",
63
+ "match": "\\b(calc|have|assert|suppose|this|match|obtains|do|suffices|show|by|in|at|let|forall|fun|exists|if|then|else|assume|take|obtain|from)\\b"
73
64
  },
74
65
  {
75
- "match": "(->|==|:=|<->|\\\\/|/\\\\|<=|>=|⁻¹)",
76
- "name": "constant.language.lua"
66
+ "name": "constant.language.lua",
67
+ "match": "(-\u003e|==|:=|\u003c-\u003e|\\\\/|/\\\\|\u003c=|\u003e=|⁻¹)"
77
68
  },
78
69
  {
79
- "match": "[#@∼↔/=∧∨≠<>≤≥¬⬝▸+*-]",
80
- "name": "constant.language.lua"
70
+ "name": "constant.language.lua",
71
+ "match": "[#@∼↔/=∧∨≠\u003c\u003e≤≥¬⬝▸+*-]"
81
72
  },
82
73
  {
83
- "match": "(?<=\\s)[=→λ∀?]",
84
- "name": "keyword.operator.lean"
74
+ "name": "keyword.operator.lean",
75
+ "match": "(?\u003c=\\s)[=→λ∀?]"
85
76
  },
86
77
  {
78
+ "name": "string.quoted.double.lean",
87
79
  "begin": "\"",
80
+ "end": "\"",
81
+ "patterns": [
82
+ {
83
+ "name": "constant.character.escape.lean",
84
+ "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])"
85
+ },
86
+ {
87
+ "name": "constant.character.escape.octal.lean",
88
+ "match": "\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+"
89
+ },
90
+ {
91
+ "name": "constant.character.escape.control.lean",
92
+ "match": "\\^[A-Z@\\[\\]\\\\\\^_]"
93
+ }
94
+ ],
88
95
  "beginCaptures": {
89
96
  "0": {
90
97
  "name": "punctuation.definition.string.begin.lean"
91
98
  }
92
99
  },
93
- "end": "\"",
94
100
  "endCaptures": {
95
101
  "0": {
96
102
  "name": "punctuation.definition.string.end.lean"
97
103
  }
98
- },
99
- "name": "string.quoted.double.lean",
100
- "patterns": [
101
- {
102
- "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])",
103
- "name": "constant.character.escape.lean"
104
- },
105
- {
106
- "match": "\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+",
107
- "name": "constant.character.escape.octal.lean"
108
- },
109
- {
110
- "match": "\\^[A-Z@\\[\\]\\\\\\^_]",
111
- "name": "constant.character.escape.control.lean"
112
- }
113
- ]
104
+ }
114
105
  },
115
106
  {
116
- "match": "\\b([0-9]+|0([xX][0-9a-fA-F]+))\\b",
117
- "name": "constant.numeric.lean"
107
+ "name": "constant.numeric.lean",
108
+ "match": "\\b([0-9]+|0([xX][0-9a-fA-F]+))\\b"
118
109
  }
119
110
  ],
120
111
  "repository": {
121
112
  "blockComment": {
113
+ "name": "comment.block.lean",
122
114
  "begin": "/-",
115
+ "end": "-/",
123
116
  "captures": {
124
117
  "0": {
125
118
  "name": "punctuation.definition.comment.lean"
126
119
  }
127
- },
128
- "end": "-/",
129
- "name": "comment.block.lean"
120
+ }
130
121
  },
131
122
  "dashComment": {
123
+ "name": "comment.line.double-dash.lean",
132
124
  "begin": "(--)",
125
+ "end": "$",
133
126
  "beginCaptures": {
134
127
  "0": {
135
128
  "name": "punctuation.definition.comment.lean"
136
129
  }
137
- },
138
- "end": "$",
139
- "name": "comment.line.double-dash.lean"
130
+ }
140
131
  },
141
132
  "identifier": {
142
- "comment": "not so much here to be used as to be a reference",
143
- "match": "\\b[^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*",
144
- "name": "entity.name.function.lean"
133
+ "name": "entity.name.function.lean",
134
+ "match": "\\b[^\\(\\)\\{\\}[:space:]=→λ∀?][^\\(\\)\\{\\}[:space:]]*"
145
135
  }
146
- },
147
- "scopeName": "source.lean",
148
- "uuid": "BCCD7FA1-4C45-41B2-B1C9-C850F00AFCD8"
149
- }
136
+ }
137
+ }
@@ -1,11 +1,11 @@
1
1
  {
2
- "fileTypes": [
3
- "lid"
4
- ],
5
2
  "name": "Lid File",
3
+ "scopeName": "source.lid",
6
4
  "patterns": [
7
5
  {
6
+ "name": "meta.header.mail",
8
7
  "begin": "([\\x{21}-\\x{39}\\x{3B}-\\x{7E}]+)(:)\\s*",
8
+ "end": "^(?![ \\t\\v])",
9
9
  "beginCaptures": {
10
10
  "1": {
11
11
  "name": "keyword.other.mail"
@@ -13,11 +13,7 @@
13
13
  "2": {
14
14
  "name": "punctuation.separator.key-value.mail"
15
15
  }
16
- },
17
- "end": "^(?![ \\t\\v])",
18
- "name": "meta.header.mail"
16
+ }
19
17
  }
20
- ],
21
- "scopeName": "source.lid",
22
- "uuid": "7E074E76-1515-4B0D-BFAB-E0D9D8854163"
23
- }
18
+ ]
19
+ }
@@ -1,12 +1,6 @@
1
1
  {
2
- "comment": "\n\t\tThis bundle is, as can easily be seen, far from complete,\n\t\tbut it should still be as useful as the Lilypond.app pyobjc\n\t\tapplication, which has no syntax coloring, no way to do\n\t\tsnippets, and pretty much no interesting functionality at\n\t\tall, other than a \"Run\" menu option. :)\n\t",
3
- "fileTypes": [
4
- "ly",
5
- "lily",
6
- "ily"
7
- ],
8
- "keyEquivalent": "^~L",
9
2
  "name": "LilyPond",
3
+ "scopeName": "source.lilypond",
10
4
  "patterns": [
11
5
  {
12
6
  "include": "#comments"
@@ -31,39 +25,41 @@
31
25
  "comments": {
32
26
  "patterns": [
33
27
  {
28
+ "name": "comment.block.lilypond",
34
29
  "begin": "%{",
30
+ "end": "%}",
35
31
  "captures": {
36
32
  "0": {
37
33
  "name": "punctuation.definition.comment.lilypond"
38
34
  }
39
- },
40
- "end": "%}",
41
- "name": "comment.block.lilypond"
35
+ }
42
36
  },
43
37
  {
44
38
  "begin": "(^[ \\t]+)?(?=%)",
45
- "beginCaptures": {
46
- "1": {
47
- "name": "punctuation.whitespace.comment.leading.lilypond"
48
- }
49
- },
50
39
  "end": "(?!\\G)",
51
40
  "patterns": [
52
41
  {
42
+ "name": "comment.line.percentage.lilypond",
53
43
  "begin": "%",
44
+ "end": "\\n",
54
45
  "beginCaptures": {
55
46
  "0": {
56
47
  "name": "punctuation.definition.comment.lilypond"
57
48
  }
58
- },
59
- "end": "\\n",
60
- "name": "comment.line.percentage.lilypond"
49
+ }
61
50
  }
62
- ]
51
+ ],
52
+ "beginCaptures": {
53
+ "1": {
54
+ "name": "punctuation.whitespace.comment.leading.lilypond"
55
+ }
56
+ }
63
57
  }
64
58
  ]
65
59
  },
66
60
  "f_clef": {
61
+ "name": "meta.element.clef.lilypond",
62
+ "match": "(?x)\n\t\t\t\t((\\\\) clef) \\s+ # backslash + \"clef\" + spaces (groups 1-2)\n\t\t\t\t(?:\n\t\t\t\t (\"?)\t# beginning quotes (group 3)\n\t\t\t\t (?:\n\t\t\t\t\t ( (?: # group 4\n\t\t\t\t\t\t treble | violin | G | french | # G clefs\n\t\t\t\t\t alto | C | tenor | (?:mezzo)?soprano | baritone | # C clefs\n\t\t\t\t\t (?:sub)?bass | F | varbaritone | # F clefs\n\t\t\t\t\t percussion | tab | # percussion / tablature clefs\n \n\t\t\t\t (?:neo)?mensural-c[1-4] | mensural-[fg] | \t\t# Ancient clefs\n\t\t\t\t\t petrucci-(?: [fg] | c[1-5] ) |\n\t\t\t\t\t (?: vaticana | medicaea | hufnagel ) - (?: do[1-3] | fa[12] ) |\n\t\t\t\t\t hufnagel-do-fa\n\t\t\t\t\t )\n\t\t\t\t\t ([_^](?:8|15)?)? # optionally shift 1-2 octaves ↑/↓ (group 5)\n\t\t\t\t\t ) |\n\t\t\t\t\t ( (?:\\w+) ([_^](?:8|15))? ) # unknown clef name (groups 6-7)\n\t\t\t\t )\n\t\t\t\t (\\3) # closing quotes (group 8)\n\t\t\t\t)?\n\t\t\t",
67
63
  "captures": {
68
64
  "1": {
69
65
  "name": "support.function.element.lilypond"
@@ -89,34 +85,32 @@
89
85
  "8": {
90
86
  "name": "punctuation.definition.string.lilypond"
91
87
  }
92
- },
93
- "comment": "\n\t\t\t\tThis looks something like: \\clef mezzosoprano_8\n\t\t\t\tOr maybe: \\clef neomensural-c3^15\n\t\t\t",
94
- "match": "(?x)\n\t\t\t\t((\\\\) clef) \\s+ # backslash + \"clef\" + spaces (groups 1-2)\n\t\t\t\t(?:\n\t\t\t\t (\"?)\t# beginning quotes (group 3)\n\t\t\t\t (?:\n\t\t\t\t\t ( (?: # group 4\n\t\t\t\t\t\t treble | violin | G | french | # G clefs\n\t\t\t\t\t alto | C | tenor | (?:mezzo)?soprano | baritone | # C clefs\n\t\t\t\t\t (?:sub)?bass | F | varbaritone | # F clefs\n\t\t\t\t\t percussion | tab | # percussion / tablature clefs\n \n\t\t\t\t (?:neo)?mensural-c[1-4] | mensural-[fg] | \t\t# Ancient clefs\n\t\t\t\t\t petrucci-(?: [fg] | c[1-5] ) |\n\t\t\t\t\t (?: vaticana | medicaea | hufnagel ) - (?: do[1-3] | fa[12] ) |\n\t\t\t\t\t hufnagel-do-fa\n\t\t\t\t\t )\n\t\t\t\t\t ([_^](?:8|15)?)? # optionally shift 1-2 octaves ↑/↓ (group 5)\n\t\t\t\t\t ) |\n\t\t\t\t\t ( (?:\\w+) ([_^](?:8|15))? ) # unknown clef name (groups 6-7)\n\t\t\t\t )\n\t\t\t\t (\\3) # closing quotes (group 8)\n\t\t\t\t)?\n\t\t\t",
95
- "name": "meta.element.clef.lilypond"
88
+ }
96
89
  },
97
90
  "f_generic": {
91
+ "name": "support.function.general.lilypond",
92
+ "match": "(\\\\)[a-zA-Z-]+\\b",
98
93
  "captures": {
99
94
  "1": {
100
95
  "name": "punctuation.definition.function.lilypond"
101
96
  }
102
- },
103
- "match": "(\\\\)[a-zA-Z-]+\\b",
104
- "name": "support.function.general.lilypond"
97
+ }
105
98
  },
106
99
  "f_key-signature": {
107
- "comment": "FIXME",
108
100
  "name": "meta.element.key-signature.lilypond"
109
101
  },
110
102
  "f_keywords": {
103
+ "name": "keyword.control.lilypond",
104
+ "match": "(?x)\n\t\t\t\t(?: (\\\\)\n\t\t\t\t (?: set | new | override | revert)\\b\n\t\t\t\t)\n\t\t\t",
111
105
  "captures": {
112
106
  "1": {
113
107
  "name": "punctuation.definition.function.lilypond"
114
108
  }
115
- },
116
- "match": "(?x)\n\t\t\t\t(?: (\\\\)\n\t\t\t\t (?: set | new | override | revert)\\b\n\t\t\t\t)\n\t\t\t",
117
- "name": "keyword.control.lilypond"
109
+ }
118
110
  },
119
111
  "f_time-signature": {
112
+ "name": "meta.element.time-signature.lilypond",
113
+ "match": "(?x)\n\t\t\t\t((\\\\) time) \\s+ # backslash + \"time\" + spaces (groups 1-2)\n\t\t\t\t([1-9][0-9]*/[1-9][0-9]*)?\n\t\t\t",
120
114
  "captures": {
121
115
  "1": {
122
116
  "name": "support.function.element.lilypond"
@@ -127,9 +121,7 @@
127
121
  "3": {
128
122
  "name": "constant.numeric.time-signature.lilypond"
129
123
  }
130
- },
131
- "match": "(?x)\n\t\t\t\t((\\\\) time) \\s+ # backslash + \"time\" + spaces (groups 1-2)\n\t\t\t\t([1-9][0-9]*/[1-9][0-9]*)?\n\t\t\t",
132
- "name": "meta.element.time-signature.lilypond"
124
+ }
133
125
  },
134
126
  "functions": {
135
127
  "patterns": [
@@ -151,25 +143,9 @@
151
143
  ]
152
144
  },
153
145
  "g_header": {
146
+ "name": "meta.header.lilypond",
154
147
  "begin": "((\\\\)header)\\s*({)",
155
- "beginCaptures": {
156
- "1": {
157
- "name": "support.function.section.header.lilypond"
158
- },
159
- "2": {
160
- "name": "punctuation.definition.function.lilypond"
161
- },
162
- "3": {
163
- "name": "punctuation.section.group.begin.lilypond"
164
- }
165
- },
166
148
  "end": "}",
167
- "endCaptures": {
168
- "0": {
169
- "name": "punctuation.section.group.end.lilypond"
170
- }
171
- },
172
- "name": "meta.header.lilypond",
173
149
  "patterns": [
174
150
  {
175
151
  "include": "#comments"
@@ -184,33 +160,39 @@
184
160
  "include": "#g_markup"
185
161
  },
186
162
  {
187
- "match": "=",
188
- "name": "punctuation.separator.key-value.lilypond"
163
+ "name": "punctuation.separator.key-value.lilypond",
164
+ "match": "="
189
165
  },
190
166
  {
191
- "match": "(?x)\n\t\t\t\t\t\tdedication | title | subtitle | subsubtitle | poet |\n\t\t\t\t\t\tcomposer | meter | opus | arranger | instrument |\n\t\t\t\t\t\tpiece | breakbefore | copyright | tagline | enteredby\n\t\t\t\t\t",
192
- "name": "support.constant.header.lilypond"
167
+ "name": "support.constant.header.lilypond",
168
+ "match": "(?x)\n\t\t\t\t\t\tdedication | title | subtitle | subsubtitle | poet |\n\t\t\t\t\t\tcomposer | meter | opus | arranger | instrument |\n\t\t\t\t\t\tpiece | breakbefore | copyright | tagline | enteredby\n\t\t\t\t\t"
193
169
  },
194
170
  {
195
- "match": "(?x)\n\t\t\t\t\t\tmutopiatitle | mutopiacomposer | mutopiapoet |\n\t\t\t\t\t\tmutopiaopus | mutopiainstrument | date | source |\n\t\t\t\t\t\tstyle | maintainer | maintainerEmail |\n\t\t\t\t\t\tmaintainerWeb | lastupdated\n\t\t\t\t\t",
196
- "name": "support.constant.header.mutopia.lilypond"
171
+ "name": "support.constant.header.mutopia.lilypond",
172
+ "match": "(?x)\n\t\t\t\t\t\tmutopiatitle | mutopiacomposer | mutopiapoet |\n\t\t\t\t\t\tmutopiaopus | mutopiainstrument | date | source |\n\t\t\t\t\t\tstyle | maintainer | maintainerEmail |\n\t\t\t\t\t\tmaintainerWeb | lastupdated\n\t\t\t\t\t"
197
173
  }
198
- ]
199
- },
200
- "g_m_group": {
201
- "begin": "{",
174
+ ],
202
175
  "beginCaptures": {
203
- "0": {
176
+ "1": {
177
+ "name": "support.function.section.header.lilypond"
178
+ },
179
+ "2": {
180
+ "name": "punctuation.definition.function.lilypond"
181
+ },
182
+ "3": {
204
183
  "name": "punctuation.section.group.begin.lilypond"
205
184
  }
206
185
  },
207
- "end": "}",
208
186
  "endCaptures": {
209
187
  "0": {
210
188
  "name": "punctuation.section.group.end.lilypond"
211
189
  }
212
- },
190
+ }
191
+ },
192
+ "g_m_group": {
213
193
  "name": "meta.group.lilypond",
194
+ "begin": "{",
195
+ "end": "}",
214
196
  "patterns": [
215
197
  {
216
198
  "include": "#f_generic"
@@ -227,10 +209,27 @@
227
209
  {
228
210
  "include": "#g_m_group"
229
211
  }
230
- ]
212
+ ],
213
+ "beginCaptures": {
214
+ "0": {
215
+ "name": "punctuation.section.group.begin.lilypond"
216
+ }
217
+ },
218
+ "endCaptures": {
219
+ "0": {
220
+ "name": "punctuation.section.group.end.lilypond"
221
+ }
222
+ }
231
223
  },
232
224
  "g_markup": {
225
+ "name": "meta.element.markup.lilypond",
233
226
  "begin": "(?x)\n\t\t\t\t((\\\\) markup) \\s+ # backslash + \"markup\" + spaces\n\t\t\t\t(?={)\n\t\t\t",
227
+ "end": "(?\u003c=})",
228
+ "patterns": [
229
+ {
230
+ "include": "#g_m_group"
231
+ }
232
+ ],
234
233
  "beginCaptures": {
235
234
  "1": {
236
235
  "name": "support.function.element.markup.lilypond"
@@ -238,17 +237,16 @@
238
237
  "2": {
239
238
  "name": "punctuation.definition.function.markup"
240
239
  }
241
- },
242
- "end": "(?<=})",
243
- "name": "meta.element.markup.lilypond",
244
- "patterns": [
245
- {
246
- "include": "#g_m_group"
247
- }
248
- ]
240
+ }
249
241
  },
250
242
  "g_relative": {
251
243
  "begin": "((\\\\)relative)\\s*(?:([a-h][',]*)\\s*)?(?={)",
244
+ "end": "(?\u003c=})",
245
+ "patterns": [
246
+ {
247
+ "include": "#group"
248
+ }
249
+ ],
252
250
  "beginCaptures": {
253
251
  "1": {
254
252
  "name": "support.function.section.lilypond"
@@ -259,36 +257,36 @@
259
257
  "3": {
260
258
  "name": "storage.type.pitch.lilypond"
261
259
  }
262
- },
263
- "end": "(?<=})",
260
+ }
261
+ },
262
+ "g_system": {
263
+ "name": "meta.system.lilypond",
264
+ "begin": "\u003c\u003c",
265
+ "end": "\u003e\u003e",
264
266
  "patterns": [
265
267
  {
266
- "include": "#group"
268
+ "include": "$self"
267
269
  }
268
- ]
269
- },
270
- "g_system": {
271
- "begin": "<<",
270
+ ],
272
271
  "beginCaptures": {
273
272
  "0": {
274
273
  "name": "punctuation.section.system.begin.lilypond"
275
274
  }
276
275
  },
277
- "end": ">>",
278
276
  "endCaptures": {
279
277
  "0": {
280
278
  "name": "punctuation.section.system.end.lilypond"
281
279
  }
282
- },
283
- "name": "meta.system.lilypond",
284
- "patterns": [
285
- {
286
- "include": "$self"
287
- }
288
- ]
280
+ }
289
281
  },
290
282
  "g_times": {
291
283
  "begin": "((\\\\)times)\\s*(?:([1-9][0-9]*/[1-9][0-9])\\s*)(?={)",
284
+ "end": "(?\u003c=})",
285
+ "patterns": [
286
+ {
287
+ "include": "#group"
288
+ }
289
+ ],
292
290
  "beginCaptures": {
293
291
  "1": {
294
292
  "name": "support.function.section.lilypond"
@@ -299,33 +297,27 @@
299
297
  "3": {
300
298
  "name": "constant.numeric.fraction.lilypond"
301
299
  }
302
- },
303
- "end": "(?<=})",
304
- "patterns": [
305
- {
306
- "include": "#group"
307
- }
308
- ]
300
+ }
309
301
  },
310
302
  "group": {
303
+ "name": "meta.music-expression.lilypond",
311
304
  "begin": "{",
305
+ "end": "}",
306
+ "patterns": [
307
+ {
308
+ "include": "#music-expr"
309
+ }
310
+ ],
312
311
  "beginCaptures": {
313
312
  "0": {
314
313
  "name": "punctuation.section.group.begin.lilypond"
315
314
  }
316
315
  },
317
- "end": "}",
318
316
  "endCaptures": {
319
317
  "0": {
320
318
  "name": "punctuation.section.group.end.lilypond"
321
319
  }
322
- },
323
- "name": "meta.music-expression.lilypond",
324
- "patterns": [
325
- {
326
- "include": "#music-expr"
327
- }
328
- ]
320
+ }
329
321
  },
330
322
  "groupings": {
331
323
  "patterns": [
@@ -368,41 +360,47 @@
368
360
  "n_articulations": {
369
361
  "patterns": [
370
362
  {
371
- "match": "(?x)\n\t\t\t\t\t\t([_^-])\n\t\t\t\t\t\t(?:[.>^+|_-])\n\t\t\t\t\t",
372
- "name": "storage.modifier.articulation.accent.lilypond"
363
+ "name": "storage.modifier.articulation.accent.lilypond",
364
+ "match": "(?x)\n\t\t\t\t\t\t([_^-])\n\t\t\t\t\t\t(?:[.\u003e^+|_-])\n\t\t\t\t\t"
373
365
  },
374
366
  {
367
+ "name": "storage.modifier.articulation.named.lilypond",
368
+ "match": "(?x)\n\t\t\t\t\t\t(\\\\)\n\t\t\t\t\t\t(?: accent | markato | staccatissimo |\t\t # basic accents\n\t\t\t\t\t\t\tespressivo | staccato | tenuto | portato | \n\t\t\t\t\t\t\t(?:up|down)bow | flageolet | thumb |\n\t\t\t\t\t\t\t[lr](?:heel|toe) | open | stopped |\n\t\t\t\t\t\t\t(?:reverse)?turn | trill |\n\t\t\t\t\t\t\tprall(?: prall | mordent | down | up)? | # pralls\n\t\t\t\t\t\t\t(?: up | down | line ) prall | # and\n\t\t\t\t\t\t\t(?: up | down )? mordent | # mordents\n\t\t\t\t\t\t\tsignumcongruentiae |\n\t\t\t\t\t\t\t(?: (?:very)? long | short)?fermata(Markup)? | # fermatas\n\t\t\t\t\t\t\tsegno | (?:var)?coda \n\t\t\t\t\t\t)\n\t\t\t\t\t",
375
369
  "captures": {
376
370
  "1": {
377
371
  "name": "punctuation.definition.function.lilypond"
378
372
  }
379
- },
380
- "match": "(?x)\n\t\t\t\t\t\t(\\\\)\n\t\t\t\t\t\t(?: accent | markato | staccatissimo |\t\t # basic accents\n\t\t\t\t\t\t\tespressivo | staccato | tenuto | portato | \n\t\t\t\t\t\t\t(?:up|down)bow | flageolet | thumb |\n\t\t\t\t\t\t\t[lr](?:heel|toe) | open | stopped |\n\t\t\t\t\t\t\t(?:reverse)?turn | trill |\n\t\t\t\t\t\t\tprall(?: prall | mordent | down | up)? | # pralls\n\t\t\t\t\t\t\t(?: up | down | line ) prall | # and\n\t\t\t\t\t\t\t(?: up | down )? mordent | # mordents\n\t\t\t\t\t\t\tsignumcongruentiae |\n\t\t\t\t\t\t\t(?: (?:very)? long | short)?fermata(Markup)? | # fermatas\n\t\t\t\t\t\t\tsegno | (?:var)?coda \n\t\t\t\t\t\t)\n\t\t\t\t\t",
381
- "name": "storage.modifier.articulation.named.lilypond"
373
+ }
382
374
  },
383
375
  {
384
- "match": "(?x)\n\t\t\t\t\t\t(\\\\) # backslash\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t p{1,5} | m[pf] | f{1,4} | fp | # forte, piano, etc.\n \t\t\t\t\t\t[sr]fz | sff? | spp? | \n \t\t\t\t\t\t< | > | ! | espressivo # (de)crescendo\n\t\t\t\t\t\t)\n\t\t\t\t\t",
385
- "name": "storage.modifier.articulation.dynamics.lilypond"
376
+ "name": "storage.modifier.articulation.dynamics.lilypond",
377
+ "match": "(?x)\n\t\t\t\t\t\t(\\\\) # backslash\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t p{1,5} | m[pf] | f{1,4} | fp | # forte, piano, etc.\n \t\t\t\t\t\t[sr]fz | sff? | spp? | \n \t\t\t\t\t\t\u003c | \u003e | ! | espressivo # (de)crescendo\n\t\t\t\t\t\t)\n\t\t\t\t\t"
386
378
  },
387
379
  {
388
- "match": "\\[|\\]",
389
- "name": "storage.modifier.beam.lilypond"
380
+ "name": "storage.modifier.beam.lilypond",
381
+ "match": "\\[|\\]"
390
382
  },
391
383
  {
392
- "match": "\\(|\\)",
393
- "name": "storage.modifier.slur.lilypond"
384
+ "name": "storage.modifier.slur.lilypond",
385
+ "match": "\\(|\\)"
394
386
  },
395
387
  {
396
- "match": "\\\\\\(|\\\\\\)",
397
- "name": "storage.modifier.slur.phrasing.lilypond"
388
+ "name": "storage.modifier.slur.phrasing.lilypond",
389
+ "match": "\\\\\\(|\\\\\\)"
398
390
  }
399
391
  ]
400
392
  },
401
393
  "notes": {
402
- "comment": "\n\t\t\t\tThis section includes the rules for notes, rests, and chords\n\t\t\t",
403
394
  "patterns": [
404
395
  {
396
+ "name": "meta.element.note.lilypond",
405
397
  "begin": "(?x)\\b\n\t\t\t\t\t (\t\t\t\t\t\t # (group 1)\n\t\t\t\t\t\t ( [a-h] # Pitch (group 2)\n\t\t\t\t\t\t ( (?:i[sh]){1,2} | # - sharp (group 3)\n\t\t\t\t\t\t (?:e[sh]|s){1,2} # - flat\n\t\t\t\t\t\t )?\n\t\t\t\t\t (?:(\\!)|(\\?))? # Cautionary accidental (groups 4-5)\n\t\t\t\t\t ('+|,+)? # Octave (group 6)\n\t\t\t\t\t\t )\n\t\t\t\t\t\t ( ( ((\\\\)breve)| # Duration (groups 7-10)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 11)\n\t\t\t\t\t\t\t((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 12-14)\n\t\t\t\t\t\t )?\n\t\t\t\t\t\t)(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
398
+ "end": "(?x)\n\t\t\t\t\t\t(?= [\\s}~a-z] |$) # End when we encounter a space or } or end of line\n\t\t\t\t\t",
399
+ "patterns": [
400
+ {
401
+ "include": "#n_articulations"
402
+ }
403
+ ],
406
404
  "beginCaptures": {
407
405
  "10": {
408
406
  "name": "punctuation.definition.function.lilypond"
@@ -428,18 +426,17 @@
428
426
  "7": {
429
427
  "name": "storage.type.duration.lilypond"
430
428
  }
431
- },
432
- "comment": "\n\t\t\t\t\t\tThis rule handles notes, including the pitch, the\n\t\t\t\t\t\tduration, and any articulations drawn along with\n\t\t\t\t\t\tthe note.\n\t\t\t\t\t\t\n\t\t\t\t\t\tThis rule gets a whole lot uglier if we want to\n\t\t\t\t\t\tsupport multilingual note names. If so, the rule\n\t\t\t\t\t\tgoes something like:\n\t\t\t\t\t\t\n\t\t\t\t\t\t(?x)\n\t\t\t\t\t\t\t\\b( # Basic Pitches\n\t\t\t\t\t\t\t [a-h] # Dutch/English/etc. \n\t\t\t\t\t\t\t (?: (iss?|s|sharp|x)(iss?|s|sharp|x|ih) | # sharp / flat\n\t\t\t\t\t\t\t\t (ess?|s|flat|f)(ess?|s|flat|f|eh)\n\t\t\t\t\t\t\t )? |\n\t\t\t\t\t\t\t (?: do|re|mi|fa|sol|la|si) # Italian/Spanish\n\t\t\t\t\t\t\t (?: ss?|dd?bb?) # sharp/flat\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t...\n\t\t\t\t\t",
433
- "end": "(?x)\n\t\t\t\t\t\t(?= [\\s}~a-z] |$) # End when we encounter a space or } or end of line\n\t\t\t\t\t",
434
- "name": "meta.element.note.lilypond",
429
+ }
430
+ },
431
+ {
432
+ "name": "meta.element.pause.rest.lilypond",
433
+ "begin": "(?x)\\b\n\t\t\t\t\t\t(?:(r)|(R)) # (groups 1-2)\n\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 3-5)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 6)\n\t\t\t\t\t\t ((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 7-9)\n\t\t\t\t\t\t\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
434
+ "end": "(?=[\\s}~a-z])",
435
435
  "patterns": [
436
436
  {
437
437
  "include": "#n_articulations"
438
438
  }
439
- ]
440
- },
441
- {
442
- "begin": "(?x)\\b\n\t\t\t\t\t\t(?:(r)|(R)) # (groups 1-2)\n\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 3-5)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 6)\n\t\t\t\t\t\t ((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 7-9)\n\t\t\t\t\t\t\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
439
+ ],
443
440
  "beginCaptures": {
444
441
  "1": {
445
442
  "name": "storage.type.pause.rest.lilypond"
@@ -459,17 +456,17 @@
459
456
  "9": {
460
457
  "name": "constant.numeric.fraction.lilypond"
461
458
  }
462
- },
463
- "end": "(?=[\\s}~a-z])",
464
- "name": "meta.element.pause.rest.lilypond",
459
+ }
460
+ },
461
+ {
462
+ "name": "meta.element.pause.skip.lilypond",
463
+ "begin": "(?x)\\b\n\t\t\t\t\t\t(s) # (group 1)\n\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 2-4)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 5)\n\t\t\t\t\t\t ((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 6-8)\n\t\t\t\t\t\t\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
464
+ "end": "(?=[\\s}~a-z]|$)",
465
465
  "patterns": [
466
466
  {
467
467
  "include": "#n_articulations"
468
468
  }
469
- ]
470
- },
471
- {
472
- "begin": "(?x)\\b\n\t\t\t\t\t\t(s) # (group 1)\n\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 2-4)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 5)\n\t\t\t\t\t\t ((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 6-8)\n\t\t\t\t\t\t\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
469
+ ],
473
470
  "beginCaptures": {
474
471
  "1": {
475
472
  "name": "storage.type.pause.skip.lilypond"
@@ -486,16 +483,11 @@
486
483
  "8": {
487
484
  "name": "constant.numeric.fraction.lilypond"
488
485
  }
489
- },
490
- "end": "(?=[\\s}~a-z]|$)",
491
- "name": "meta.element.pause.skip.lilypond",
492
- "patterns": [
493
- {
494
- "include": "#n_articulations"
495
- }
496
- ]
486
+ }
497
487
  },
498
488
  {
489
+ "name": "meta.element.pause.skip.lilypond",
490
+ "match": "((\\\\)skip)\\s+(64|32|16|8|4|2|1)",
499
491
  "captures": {
500
492
  "1": {
501
493
  "name": "storage.type.pause.skip.lilypond"
@@ -506,27 +498,15 @@
506
498
  "3": {
507
499
  "name": "storage.type.duration.lilypond"
508
500
  }
509
- },
510
- "match": "((\\\\)skip)\\s+(64|32|16|8|4|2|1)",
511
- "name": "meta.element.pause.skip.lilypond"
501
+ }
512
502
  },
513
503
  {
514
- "begin": "<",
515
- "beginCaptures": {
516
- "0": {
517
- "name": "punctuation.definition.chord.lilypond"
518
- }
519
- },
520
- "comment": "\n\t\t\t\t\t\tLilypond chords look like: < a b c >\n\t\t\t\t\t",
521
- "end": ">",
522
- "endCaptures": {
523
- "0": {
524
- "name": "punctuation.definition.chord.lilypond"
525
- }
526
- },
527
504
  "name": "meta.element.chord.lilypond",
505
+ "begin": "\u003c",
506
+ "end": "\u003e",
528
507
  "patterns": [
529
508
  {
509
+ "match": "(?x)\\b\n\t\t\t\t\t\t\t\t ( [a-h] # Pitch (group 1)\n\t\t\t\t\t\t\t\t ( (?:i[sh]){1,2} | # - sharp (group 2)\n\t\t\t\t\t\t\t\t (?:e[sh]|s){1,2} # - flat\n\t\t\t\t\t\t\t\t )?\n\t\t\t\t\t\t\t (?:(\\!)|(\\?))? # Reminder/cautionary accidental (groups 3-4)\n\t\t\t\t\t\t\t ('+|,+)? # Octave (group 5)\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t",
530
510
  "captures": {
531
511
  "1": {
532
512
  "name": "storage.type.pitch.lilypond"
@@ -540,13 +520,29 @@
540
520
  "5": {
541
521
  "name": "meta.note-modifier.octave.lilypond"
542
522
  }
543
- },
544
- "match": "(?x)\\b\n\t\t\t\t\t\t\t\t ( [a-h] # Pitch (group 1)\n\t\t\t\t\t\t\t\t ( (?:i[sh]){1,2} | # - sharp (group 2)\n\t\t\t\t\t\t\t\t (?:e[sh]|s){1,2} # - flat\n\t\t\t\t\t\t\t\t )?\n\t\t\t\t\t\t\t (?:(\\!)|(\\?))? # Reminder/cautionary accidental (groups 3-4)\n\t\t\t\t\t\t\t ('+|,+)? # Octave (group 5)\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t"
523
+ }
545
524
  }
546
- ]
525
+ ],
526
+ "beginCaptures": {
527
+ "0": {
528
+ "name": "punctuation.definition.chord.lilypond"
529
+ }
530
+ },
531
+ "endCaptures": {
532
+ "0": {
533
+ "name": "punctuation.definition.chord.lilypond"
534
+ }
535
+ }
547
536
  },
548
537
  {
549
- "begin": "(?x)\n\t\t\t\t\t (?<!-)\n\t\t\t\t\t (?<=>)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t( ( ((\\\\)breve)| # Duration (groups 1-4)\n\t\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 5)\n\t\t\t\t\t\t\t) |\n\t\t\t\t\t\t\t(?![\\s}~a-z]|$)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
538
+ "name": "meta.element.chord.lilypond",
539
+ "begin": "(?x)\n\t\t\t\t\t (?\u003c!-)\n\t\t\t\t\t (?\u003c=\u003e)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t( ( ((\\\\)breve)| # Duration (groups 1-4)\n\t\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 5)\n\t\t\t\t\t\t\t) |\n\t\t\t\t\t\t\t(?![\\s}~a-z]|$)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
540
+ "end": "(?=[\\s}~a-z]|$)(?\u003c![^-]\u003e)",
541
+ "patterns": [
542
+ {
543
+ "include": "#n_articulations"
544
+ }
545
+ ],
550
546
  "beginCaptures": {
551
547
  "1": {
552
548
  "name": "storage.type.duration.lilypond"
@@ -554,70 +550,60 @@
554
550
  "4": {
555
551
  "name": "punctuation.definition.function.lilypond"
556
552
  }
557
- },
558
- "comment": "\n\t\t\t\t\t\tThis rule attaches stuff to the end of a chord\n\t\t\t\t\t\t\n\t\t\t\t\t\tTherefore it begins after the > which ends a chord,\n\t\t\t\t\t\tand does not end after a > which ends a chord.\n\t\t\t\t\t\t(to avoid infinite loops)\n\t\t\t\t\t",
559
- "end": "(?=[\\s}~a-z]|$)(?<![^-]>)",
560
- "name": "meta.element.chord.lilypond",
561
- "patterns": [
562
- {
563
- "include": "#n_articulations"
564
- }
565
- ]
553
+ }
566
554
  },
567
555
  {
568
- "match": "~",
569
- "name": "storage.type.tie.lilypond"
556
+ "name": "storage.type.tie.lilypond",
557
+ "match": "~"
570
558
  },
571
559
  {
560
+ "name": "storage.type.breath-mark.lilypond",
561
+ "match": "(\\\\)breathe",
572
562
  "captures": {
573
563
  "1": {
574
564
  "name": "punctuation.definition.function.lilypond"
575
565
  }
576
- },
577
- "match": "(\\\\)breathe",
578
- "name": "storage.type.breath-mark.lilypond"
566
+ }
579
567
  }
580
568
  ]
581
569
  },
582
570
  "scheme": {
583
571
  "begin": "(^[ \\t])?(?=#)",
584
- "beginCaptures": {
585
- "0": {
586
- "name": "punctuation.whitespace.embedded.leading.scheme"
587
- }
588
- },
589
572
  "end": "(?!\\G)",
590
573
  "patterns": [
591
574
  {
592
- "begin": "#",
593
- "contentName": "source.scheme",
594
- "end": "(?=[\\s%])|(?<=\\n)",
595
575
  "name": "meta.embedded.line.scheme",
576
+ "contentName": "source.scheme",
577
+ "begin": "#",
578
+ "end": "(?=[\\s%])|(?\u003c=\\n)",
596
579
  "patterns": [
597
580
  {
598
581
  "include": "source.scheme"
599
582
  }
600
583
  ]
601
584
  }
602
- ]
585
+ ],
586
+ "beginCaptures": {
587
+ "0": {
588
+ "name": "punctuation.whitespace.embedded.leading.scheme"
589
+ }
590
+ }
603
591
  },
604
592
  "strings": {
593
+ "name": "string.quoted.double.lilypond",
605
594
  "begin": "\"",
606
- "captures": {
607
- "0": {
608
- "name": "punctuation.definition.string.lilypond"
609
- }
610
- },
611
595
  "end": "\"",
612
- "name": "string.quoted.double.lilypond",
613
596
  "patterns": [
614
597
  {
615
- "match": "\\\\.",
616
- "name": "constant.character.escape.lilypond"
598
+ "name": "constant.character.escape.lilypond",
599
+ "match": "\\\\."
617
600
  }
618
- ]
601
+ ],
602
+ "captures": {
603
+ "0": {
604
+ "name": "punctuation.definition.string.lilypond"
605
+ }
606
+ }
619
607
  }
620
- },
621
- "scopeName": "source.lilypond",
622
- "uuid": "F25B30BE-0526-4D92-806C-F0D678DDF669"
623
- }
608
+ }
609
+ }