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,53 +1,12 @@
1
1
  {
2
2
  "name": "Roff (Intermediate Output)",
3
3
  "scopeName": "source.ditroff",
4
- "firstLineMatch": "^x\\s*T\\s+(dvi|html|lbp|lj4|ps|post|pdf|ascii|cp1047|latin1|utf8|X75|X75-12|X100|X100-12)(?=\\s|$)",
5
4
  "patterns": [
6
5
  {
7
6
  "include": "#main"
8
7
  }
9
8
  ],
10
9
  "repository": {
11
- "main": {
12
- "patterns": [
13
- {
14
- "include": "#comment"
15
- },
16
- {
17
- "include": "#deviceControl"
18
- },
19
- {
20
- "include": "#colourMode"
21
- },
22
- {
23
- "include": "#print"
24
- },
25
- {
26
- "include": "#font"
27
- },
28
- {
29
- "include": "#eol"
30
- },
31
- {
32
- "include": "#move"
33
- },
34
- {
35
- "include": "#size"
36
- },
37
- {
38
- "include": "#page"
39
- },
40
- {
41
- "include": "#graphics"
42
- },
43
- {
44
- "include": "#movePrint"
45
- },
46
- {
47
- "include": "#wordSpace"
48
- }
49
- ]
50
- },
51
10
  "colourMode": {
52
11
  "patterns": [
53
12
  {
@@ -184,8 +143,15 @@
184
143
  "patterns": [
185
144
  {
186
145
  "name": "meta.custom.device-control.ditroff",
146
+ "contentName": "string.raw.unquoted.heredoc.ditroff",
187
147
  "begin": "(x)\\s*(X\\S*)",
188
148
  "end": "^(?!\\+)",
149
+ "patterns": [
150
+ {
151
+ "name": "keyword.operator.line-continuation.gnu.ditroff",
152
+ "match": "^\\+"
153
+ }
154
+ ],
189
155
  "beginCaptures": {
190
156
  "1": {
191
157
  "name": "keyword.operator.other.ditroff"
@@ -193,24 +159,12 @@
193
159
  "2": {
194
160
  "name": "keyword.device.control.ditroff"
195
161
  }
196
- },
197
- "contentName": "string.raw.unquoted.heredoc.ditroff",
198
- "patterns": [
199
- {
200
- "name": "keyword.operator.line-continuation.gnu.ditroff",
201
- "match": "^\\+"
202
- }
203
- ]
162
+ }
204
163
  },
205
164
  {
206
165
  "name": "meta.device-control.ditroff",
207
166
  "begin": "(x)\\s*",
208
167
  "end": "(?=$|#)",
209
- "beginCaptures": {
210
- "1": {
211
- "name": "keyword.operator.other.ditroff"
212
- }
213
- },
214
168
  "patterns": [
215
169
  {
216
170
  "name": "keyword.device.control.ditroff",
@@ -257,7 +211,7 @@
257
211
  "patterns": [
258
212
  {
259
213
  "name": "support.constant.device-name.ditroff",
260
- "match": "(?<=\\s|^)(?:dvi|html|lbp|lj4|ps|pdf|ascii|cp1047|latin1|utf8|X75|X75-12|X100|X100-12)(?=\\s|$)"
214
+ "match": "(?\u003c=\\s|^)(?:dvi|html|lbp|lj4|ps|pdf|ascii|cp1047|latin1|utf8|X75|X75-12|X100|X100-12)(?=\\s|$)"
261
215
  }
262
216
  ]
263
217
  }
@@ -316,7 +270,12 @@
316
270
  }
317
271
  }
318
272
  }
319
- ]
273
+ ],
274
+ "beginCaptures": {
275
+ "1": {
276
+ "name": "keyword.operator.other.ditroff"
277
+ }
278
+ }
320
279
  }
321
280
  ]
322
281
  },
@@ -407,9 +366,9 @@
407
366
  },
408
367
  {
409
368
  "name": "meta.graphics.unknown-command.ditroff",
369
+ "contentName": "variable.parameter.ditroff",
410
370
  "begin": "^\\s*(D)\\s*([^\\s\\\\])",
411
371
  "end": "(?=$|#)",
412
- "contentName": "variable.parameter.ditroff",
413
372
  "beginCaptures": {
414
373
  "1": {
415
374
  "name": "entity.name.function.ditroff"
@@ -421,6 +380,46 @@
421
380
  }
422
381
  ]
423
382
  },
383
+ "main": {
384
+ "patterns": [
385
+ {
386
+ "include": "#comment"
387
+ },
388
+ {
389
+ "include": "#deviceControl"
390
+ },
391
+ {
392
+ "include": "#colourMode"
393
+ },
394
+ {
395
+ "include": "#print"
396
+ },
397
+ {
398
+ "include": "#font"
399
+ },
400
+ {
401
+ "include": "#eol"
402
+ },
403
+ {
404
+ "include": "#move"
405
+ },
406
+ {
407
+ "include": "#size"
408
+ },
409
+ {
410
+ "include": "#page"
411
+ },
412
+ {
413
+ "include": "#graphics"
414
+ },
415
+ {
416
+ "include": "#movePrint"
417
+ },
418
+ {
419
+ "include": "#wordSpace"
420
+ }
421
+ ]
422
+ },
424
423
  "move": {
425
424
  "name": "meta.move.ditroff",
426
425
  "match": "([HhVv])\\s*(-?\\d+)",
@@ -491,9 +490,9 @@
491
490
  },
492
491
  {
493
492
  "name": "meta.print-text.gnu.ditroff",
493
+ "contentName": "string.quoted.double.ditroff",
494
494
  "begin": "^\\s*(t)\\s*",
495
495
  "end": "(?=$)|\\s+(\\d*)",
496
- "contentName": "string.quoted.double.ditroff",
497
496
  "beginCaptures": {
498
497
  "0": {
499
498
  "name": "entity.name.function.ditroff"
@@ -510,9 +509,9 @@
510
509
  },
511
510
  {
512
511
  "name": "meta.print-text.track-kerned.gnu.ditroff",
512
+ "contentName": "string.quoted.double.ditroff",
513
513
  "begin": "^\\s*(u)\\s*(-?\\d+)\\s*",
514
514
  "end": "(?=\\s|$)",
515
- "contentName": "string.quoted.double.ditroff",
516
515
  "beginCaptures": {
517
516
  "1": {
518
517
  "name": "entity.name.function.ditroff"
@@ -537,7 +536,7 @@
537
536
  },
538
537
  "wordSpace": {
539
538
  "name": "entity.name.function.word-space.ditroff",
540
- "match": "(?<=^|[\\s\\d])w"
539
+ "match": "(?\u003c=^|[\\s\\d])w"
541
540
  }
542
541
  }
543
- }
542
+ }
@@ -1,11 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "dm",
4
- "dme"
5
- ],
6
- "foldingStartMarker": "(?x)\n/\\*\\*(?!\\*)\n|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))",
7
- "foldingStopMarker": "(?<!\\*)\\*\\*/|^\\s*\\}",
8
2
  "name": "Dream Maker",
3
+ "scopeName": "source.dm",
9
4
  "patterns": [
10
5
  {
11
6
  "include": "#preprocessor-rule-enabled"
@@ -20,8 +15,8 @@
20
15
  "include": "#comments"
21
16
  },
22
17
  {
23
- "match": "(?x)\n(var)[\\/ ]\n(?:(static|global|tmp|const)\\/)?\n(?:(datum|atom(?:\\/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\/)?\n(?:\n\t([a-zA-Z0-9_\\-$]*)\\/\n)*\n\n([A-Za-z0-9_$]*)\\b",
24
18
  "name": "meta.initialization.dm",
19
+ "match": "(?x)\n(var)[\\/ ]\n(?:(static|global|tmp|const)\\/)?\n(?:(datum|atom(?:\\/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\/)?\n(?:\n\t([a-zA-Z0-9_\\-$]*)\\/\n)*\n\n([A-Za-z0-9_$]*)\\b",
25
20
  "captures": {
26
21
  "1": {
27
22
  "name": "storage.type.dm"
@@ -38,55 +33,45 @@
38
33
  }
39
34
  },
40
35
  {
41
- "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b",
42
- "name": "constant.numeric.dm"
36
+ "name": "constant.numeric.dm",
37
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"
43
38
  },
44
39
  {
45
- "match": "\\b(sleep|spawn|break|continue|do|else|for|goto|if|return|switch|while)\\b",
46
- "name": "keyword.control.dm"
40
+ "name": "keyword.control.dm",
41
+ "match": "\\b(sleep|spawn|break|continue|do|else|for|goto|if|return|switch|while)\\b"
47
42
  },
48
43
  {
49
- "match": "\\b(del|new)\\b",
50
- "name": "keyword.other.dm"
44
+ "name": "keyword.other.dm",
45
+ "match": "\\b(del|new)\\b"
51
46
  },
52
47
  {
53
- "match": "\\b(proc|verb|datum|atom(/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\b",
54
- "name": "storage.type.dm"
48
+ "name": "storage.type.dm",
49
+ "match": "\\b(proc|verb|datum|atom(/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\b"
55
50
  },
56
51
  {
57
- "match": "\\b(as|const|global|set|static|tmp)\\b",
58
- "name": "storage.modifier.dm"
52
+ "name": "storage.modifier.dm",
53
+ "match": "\\b(as|const|global|set|static|tmp)\\b"
59
54
  },
60
55
  {
61
- "match": "\\b(usr|world|src|args)\\b",
62
- "name": "variable.language.dm"
56
+ "name": "variable.language.dm",
57
+ "match": "\\b(usr|world|src|args)\\b"
63
58
  },
64
59
  {
65
- "match": "(\\?|(>|<)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)",
66
- "name": "keyword.operator.dm"
60
+ "name": "keyword.operator.dm",
61
+ "match": "(\\?|(\u003e|\u003c)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|\u003e\u003e|\u003c\u003c|=(=)?|!(=)?|\u003c\u003e|\u0026|\u0026\u0026|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)"
67
62
  },
68
63
  {
69
- "match": "\\b([A-Z_][A-Z_0-9]*)\\b",
70
- "name": "constant.language.dm"
64
+ "name": "constant.language.dm",
65
+ "match": "\\b([A-Z_][A-Z_0-9]*)\\b"
71
66
  },
72
67
  {
73
- "match": "\\bnull\\b",
74
- "name": "constant.language.dm"
68
+ "name": "constant.language.dm",
69
+ "match": "\\bnull\\b"
75
70
  },
76
71
  {
72
+ "name": "string.quoted.triple.dm",
77
73
  "begin": "{\"",
78
- "beginCaptures": {
79
- "0": {
80
- "name": "punctuation.definition.string.begin.dm"
81
- }
82
- },
83
74
  "end": "\"}",
84
- "endCaptures": {
85
- "0": {
86
- "name": "punctuation.definition.string.end.dm"
87
- }
88
- },
89
- "name": "string.quoted.triple.dm",
90
75
  "patterns": [
91
76
  {
92
77
  "include": "#string_escaped_char"
@@ -94,22 +79,22 @@
94
79
  {
95
80
  "include": "#string_embedded_expression"
96
81
  }
97
- ]
98
- },
99
- {
100
- "begin": "\"",
82
+ ],
101
83
  "beginCaptures": {
102
84
  "0": {
103
85
  "name": "punctuation.definition.string.begin.dm"
104
86
  }
105
87
  },
106
- "end": "\"",
107
88
  "endCaptures": {
108
89
  "0": {
109
90
  "name": "punctuation.definition.string.end.dm"
110
91
  }
111
- },
92
+ }
93
+ },
94
+ {
112
95
  "name": "string.quoted.double.dm",
96
+ "begin": "\"",
97
+ "end": "\"",
113
98
  "patterns": [
114
99
  {
115
100
  "include": "#string_escaped_char"
@@ -117,30 +102,47 @@
117
102
  {
118
103
  "include": "#string_embedded_expression"
119
104
  }
120
- ]
121
- },
122
- {
123
- "begin": "'",
105
+ ],
124
106
  "beginCaptures": {
125
107
  "0": {
126
108
  "name": "punctuation.definition.string.begin.dm"
127
109
  }
128
110
  },
129
- "end": "'",
130
111
  "endCaptures": {
131
112
  "0": {
132
113
  "name": "punctuation.definition.string.end.dm"
133
114
  }
134
- },
115
+ }
116
+ },
117
+ {
135
118
  "name": "string.quoted.single.dm",
119
+ "begin": "'",
120
+ "end": "'",
136
121
  "patterns": [
137
122
  {
138
123
  "include": "#string_escaped_char"
139
124
  }
140
- ]
125
+ ],
126
+ "beginCaptures": {
127
+ "0": {
128
+ "name": "punctuation.definition.string.begin.dm"
129
+ }
130
+ },
131
+ "endCaptures": {
132
+ "0": {
133
+ "name": "punctuation.definition.string.end.dm"
134
+ }
135
+ }
141
136
  },
142
137
  {
143
- "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n(?:\n\t(\\()\n\t\t(\n\t\t\t\\s* \\g<id> \\s* # first argument\n\t\t\t((,) \\s* \\g<id> \\s*)* # additional arguments\n\t\t\t(?:\\.\\.\\.)? # varargs ellipsis?\n\t\t)\n\t(\\))\n)",
138
+ "name": "meta.preprocessor.macro.dm",
139
+ "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n(?:\n\t(\\()\n\t\t(\n\t\t\t\\s* \\g\u003cid\u003e \\s* # first argument\n\t\t\t((,) \\s* \\g\u003cid\u003e \\s*)* # additional arguments\n\t\t\t(?:\\.\\.\\.)? # varargs ellipsis?\n\t\t)\n\t(\\))\n)",
140
+ "end": "(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)",
141
+ "patterns": [
142
+ {
143
+ "include": "$base"
144
+ }
145
+ ],
144
146
  "beginCaptures": {
145
147
  "1": {
146
148
  "name": "keyword.control.directive.define.dm"
@@ -163,17 +165,17 @@
163
165
  "9": {
164
166
  "name": "punctuation.definition.parameters.end.dm"
165
167
  }
166
- },
167
- "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
168
+ }
169
+ },
170
+ {
168
171
  "name": "meta.preprocessor.macro.dm",
172
+ "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?\u003cid\u003e[a-zA-Z_][a-zA-Z0-9_]*)) # macro name",
173
+ "end": "(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)",
169
174
  "patterns": [
170
175
  {
171
176
  "include": "$base"
172
177
  }
173
- ]
174
- },
175
- {
176
- "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name",
178
+ ],
177
179
  "beginCaptures": {
178
180
  "1": {
179
181
  "name": "keyword.control.directive.define.dm"
@@ -184,33 +186,34 @@
184
186
  "3": {
185
187
  "name": "variable.other.preprocessor.dm"
186
188
  }
187
- },
188
- "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
189
- "name": "meta.preprocessor.macro.dm",
190
- "patterns": [
191
- {
192
- "include": "$base"
193
- }
194
- ]
189
+ }
195
190
  },
196
191
  {
192
+ "name": "meta.preprocessor.diagnostic.dm",
197
193
  "begin": "^\\s*(#\\s*(error|warn))\\b",
198
- "captures": {
199
- "1": {
200
- "name": "keyword.control.import.error.dm"
201
- }
202
- },
203
194
  "end": "$",
204
- "name": "meta.preprocessor.diagnostic.dm",
205
195
  "patterns": [
206
196
  {
207
- "match": "(?>\\\\\\s*\\n)",
208
- "name": "punctuation.separator.continuation.dm"
197
+ "name": "punctuation.separator.continuation.dm",
198
+ "match": "(?\u003e\\\\\\s*\\n)"
209
199
  }
210
- ]
200
+ ],
201
+ "captures": {
202
+ "1": {
203
+ "name": "keyword.control.import.error.dm"
204
+ }
205
+ }
211
206
  },
212
207
  {
208
+ "name": "meta.preprocessor.dm",
213
209
  "begin": "^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b",
210
+ "end": "(?=(?://|/\\*))|(?\u003c!\\\\)(?=\\n)",
211
+ "patterns": [
212
+ {
213
+ "name": "punctuation.separator.continuation.dm",
214
+ "match": "(?\u003e\\\\\\s*\\n)"
215
+ }
216
+ ],
214
217
  "beginCaptures": {
215
218
  "1": {
216
219
  "name": "keyword.control.directive.conditional.dm"
@@ -224,34 +227,15 @@
224
227
  "4": {
225
228
  "name": "punctuation.definition.directive.dm"
226
229
  }
227
- },
228
- "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
229
- "name": "meta.preprocessor.dm",
230
- "patterns": [
231
- {
232
- "match": "(?>\\\\\\s*\\n)",
233
- "name": "punctuation.separator.continuation.dm"
234
- }
235
- ]
230
+ }
236
231
  },
237
232
  {
238
233
  "include": "#block"
239
234
  },
240
235
  {
241
- "begin": "(?x)\n\t\t\t\t(?: ^ # begin-of-line\n\t\t\t\t\t|\n\t\t\t\t\t\t (?: (?= \\s ) (?<!else|new|return) (?<=\\w) # or word + space before name\n\t\t\t\t\t\t\t | (?= \\s*[A-Za-z_] ) (?<!&&) (?<=[*&>]) # or type modifier before name\n\t\t\t\t\t\t )\n\t\t\t\t)\n\t\t\t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n\t\t\t\t(\n\t\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n\t\t\t\t)\n\t\t\t\t \\s*(?=\\()",
242
- "beginCaptures": {
243
- "1": {
244
- "name": "punctuation.whitespace.function.leading.dm"
245
- },
246
- "3": {
247
- "name": "entity.name.function.dm"
248
- },
249
- "4": {
250
- "name": "punctuation.definition.parameters.dm"
251
- }
252
- },
253
- "end": "(?<=\\})|(?=#)|(;)?",
254
236
  "name": "meta.function.dm",
237
+ "begin": "(?x)\n\t\t\t\t(?: ^ # begin-of-line\n\t\t\t\t\t|\n\t\t\t\t\t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w) # or word + space before name\n\t\t\t\t\t\t\t | (?= \\s*[A-Za-z_] ) (?\u003c!\u0026\u0026) (?\u003c=[*\u0026\u003e]) # or type modifier before name\n\t\t\t\t\t\t )\n\t\t\t\t)\n\t\t\t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n\t\t\t\t(\n\t\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n\t\t\t\t)\n\t\t\t\t \\s*(?=\\()",
238
+ "end": "(?\u003c=\\})|(?=#)|(;)?",
255
239
  "patterns": [
256
240
  {
257
241
  "include": "#comments"
@@ -260,24 +244,35 @@
260
244
  "include": "#parens"
261
245
  },
262
246
  {
263
- "match": "\\bconst\\b",
264
- "name": "storage.modifier.dm"
247
+ "name": "storage.modifier.dm",
248
+ "match": "\\bconst\\b"
265
249
  },
266
250
  {
267
251
  "include": "#block"
268
252
  }
269
- ]
253
+ ],
254
+ "beginCaptures": {
255
+ "1": {
256
+ "name": "punctuation.whitespace.function.leading.dm"
257
+ },
258
+ "3": {
259
+ "name": "entity.name.function.dm"
260
+ },
261
+ "4": {
262
+ "name": "punctuation.definition.parameters.dm"
263
+ }
264
+ }
270
265
  }
271
266
  ],
272
267
  "repository": {
273
268
  "access": {
274
- "match": "\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()",
275
- "name": "variable.other.dot-access.dm"
269
+ "name": "variable.other.dot-access.dm",
270
+ "match": "\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()"
276
271
  },
277
272
  "block": {
273
+ "name": "meta.block.dm",
278
274
  "begin": "\\{",
279
275
  "end": "\\}",
280
- "name": "meta.block.dm",
281
276
  "patterns": [
282
277
  {
283
278
  "include": "#block_innards"
@@ -299,6 +294,8 @@
299
294
  "include": "#access"
300
295
  },
301
296
  {
297
+ "name": "meta.function-call.dm",
298
+ "match": "(?x) (?: (?= \\s ) (?:(?\u003c=else|new|return) | (?\u003c!\\w)) (\\s+))?\n\t\t\t(\\b\n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()",
302
299
  "captures": {
303
300
  "1": {
304
301
  "name": "punctuation.whitespace.function-call.leading.dm"
@@ -309,9 +306,7 @@
309
306
  "3": {
310
307
  "name": "punctuation.definition.parameters.dm"
311
308
  }
312
- },
313
- "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n\t\t\t(\\b\n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()",
314
- "name": "meta.function-call.dm"
309
+ }
315
310
  },
316
311
  {
317
312
  "include": "#block"
@@ -324,63 +319,62 @@
324
319
  "comments": {
325
320
  "patterns": [
326
321
  {
322
+ "name": "comment.block.dm",
323
+ "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
327
324
  "captures": {
328
325
  "1": {
329
326
  "name": "meta.toc-list.banner.block.dm"
330
327
  }
331
- },
332
- "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
333
- "name": "comment.block.dm"
328
+ }
334
329
  },
335
330
  {
331
+ "name": "comment.block.dm",
336
332
  "begin": "/\\*",
337
- "captures": {
338
- "0": {
339
- "name": "punctuation.definition.comment.dm"
340
- }
341
- },
342
333
  "end": "\\*/",
343
- "name": "comment.block.dm",
344
334
  "patterns": [
345
335
  {
346
336
  "include": "#comments"
347
337
  }
348
- ]
338
+ ],
339
+ "captures": {
340
+ "0": {
341
+ "name": "punctuation.definition.comment.dm"
342
+ }
343
+ }
349
344
  },
350
345
  {
351
- "match": "\\*/.*\\n",
352
- "name": "invalid.illegal.stray-comment-end.dm"
346
+ "name": "invalid.illegal.stray-comment-end.dm",
347
+ "match": "\\*/.*\\n"
353
348
  },
354
349
  {
350
+ "name": "comment.line.banner.dm",
351
+ "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
355
352
  "captures": {
356
353
  "1": {
357
354
  "name": "meta.toc-list.banner.line.dm"
358
355
  }
359
- },
360
- "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
361
- "name": "comment.line.banner.dm"
356
+ }
362
357
  },
363
358
  {
359
+ "name": "comment.line.double-slash.dm",
364
360
  "begin": "//",
365
- "beginCaptures": {
366
- "0": {
367
- "name": "punctuation.definition.comment.dm"
368
- }
369
- },
370
361
  "end": "$\\n?",
371
- "name": "comment.line.double-slash.dm",
372
362
  "patterns": [
373
363
  {
374
- "match": "(?>\\\\\\s*\\n)",
375
- "name": "punctuation.separator.continuation.dm"
364
+ "name": "punctuation.separator.continuation.dm",
365
+ "match": "(?\u003e\\\\\\s*\\n)"
376
366
  }
377
- ]
367
+ ],
368
+ "beginCaptures": {
369
+ "0": {
370
+ "name": "punctuation.definition.comment.dm"
371
+ }
372
+ }
378
373
  }
379
374
  ]
380
375
  },
381
376
  "disabled": {
382
377
  "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
383
- "comment": "eat nested preprocessor if(def)s",
384
378
  "end": "^\\s*#\\s*endif\\b.*$",
385
379
  "patterns": [
386
380
  {
@@ -389,9 +383,9 @@
389
383
  ]
390
384
  },
391
385
  "parens": {
386
+ "name": "meta.parens.dm",
392
387
  "begin": "\\(",
393
388
  "end": "\\)",
394
- "name": "meta.parens.dm",
395
389
  "patterns": [
396
390
  {
397
391
  "include": "$base"
@@ -400,21 +394,16 @@
400
394
  },
401
395
  "preprocessor-rule-disabled": {
402
396
  "begin": "^\\s*(#(if)\\s+(0)\\b).*",
403
- "captures": {
404
- "1": {
405
- "name": "meta.preprocessor.dm"
406
- },
407
- "2": {
408
- "name": "keyword.control.import.if.dm"
409
- },
410
- "3": {
411
- "name": "constant.numeric.preprocessor.dm"
412
- }
413
- },
414
397
  "end": "^\\s*(#\\s*(endif)\\b)",
415
398
  "patterns": [
416
399
  {
417
400
  "begin": "^\\s*(#\\s*(else)\\b)",
401
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
402
+ "patterns": [
403
+ {
404
+ "include": "$base"
405
+ }
406
+ ],
418
407
  "captures": {
419
408
  "1": {
420
409
  "name": "meta.preprocessor.dm"
@@ -422,28 +411,18 @@
422
411
  "2": {
423
412
  "name": "keyword.control.import.else.dm"
424
413
  }
425
- },
426
- "end": "(?=^\\s*#\\s*endif\\b.*$)",
427
- "patterns": [
428
- {
429
- "include": "$base"
430
- }
431
- ]
414
+ }
432
415
  },
433
416
  {
434
- "begin": "",
435
- "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
436
417
  "name": "comment.block.preprocessor.if-branch",
418
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
437
419
  "patterns": [
438
420
  {
439
421
  "include": "#disabled"
440
422
  }
441
423
  ]
442
424
  }
443
- ]
444
- },
445
- "preprocessor-rule-disabled-block": {
446
- "begin": "^\\s*(#(if)\\s+(0)\\b).*",
425
+ ],
447
426
  "captures": {
448
427
  "1": {
449
428
  "name": "meta.preprocessor.dm"
@@ -454,11 +433,20 @@
454
433
  "3": {
455
434
  "name": "constant.numeric.preprocessor.dm"
456
435
  }
457
- },
436
+ }
437
+ },
438
+ "preprocessor-rule-disabled-block": {
439
+ "begin": "^\\s*(#(if)\\s+(0)\\b).*",
458
440
  "end": "^\\s*(#\\s*(endif)\\b)",
459
441
  "patterns": [
460
442
  {
461
443
  "begin": "^\\s*(#\\s*(else)\\b)",
444
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
445
+ "patterns": [
446
+ {
447
+ "include": "#block_innards"
448
+ }
449
+ ],
462
450
  "captures": {
463
451
  "1": {
464
452
  "name": "meta.preprocessor.dm"
@@ -466,28 +454,18 @@
466
454
  "2": {
467
455
  "name": "keyword.control.import.else.dm"
468
456
  }
469
- },
470
- "end": "(?=^\\s*#\\s*endif\\b.*$)",
471
- "patterns": [
472
- {
473
- "include": "#block_innards"
474
- }
475
- ]
457
+ }
476
458
  },
477
459
  {
478
- "begin": "",
479
- "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
480
460
  "name": "comment.block.preprocessor.if-branch.in-block",
461
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
481
462
  "patterns": [
482
463
  {
483
464
  "include": "#disabled"
484
465
  }
485
466
  ]
486
467
  }
487
- ]
488
- },
489
- "preprocessor-rule-enabled": {
490
- "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
468
+ ],
491
469
  "captures": {
492
470
  "1": {
493
471
  "name": "meta.preprocessor.dm"
@@ -498,11 +476,21 @@
498
476
  "3": {
499
477
  "name": "constant.numeric.preprocessor.dm"
500
478
  }
501
- },
479
+ }
480
+ },
481
+ "preprocessor-rule-enabled": {
482
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
502
483
  "end": "^\\s*(#\\s*(endif)\\b)",
503
484
  "patterns": [
504
485
  {
486
+ "contentName": "comment.block.preprocessor.else-branch",
505
487
  "begin": "^\\s*(#\\s*(else)\\b).*",
488
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
489
+ "patterns": [
490
+ {
491
+ "include": "#disabled"
492
+ }
493
+ ],
506
494
  "captures": {
507
495
  "1": {
508
496
  "name": "meta.preprocessor.dm"
@@ -510,17 +498,9 @@
510
498
  "2": {
511
499
  "name": "keyword.control.import.else.dm"
512
500
  }
513
- },
514
- "contentName": "comment.block.preprocessor.else-branch",
515
- "end": "(?=^\\s*#\\s*endif\\b.*$)",
516
- "patterns": [
517
- {
518
- "include": "#disabled"
519
- }
520
- ]
501
+ }
521
502
  },
522
503
  {
523
- "begin": "",
524
504
  "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
525
505
  "patterns": [
526
506
  {
@@ -528,10 +508,7 @@
528
508
  }
529
509
  ]
530
510
  }
531
- ]
532
- },
533
- "preprocessor-rule-enabled-block": {
534
- "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
511
+ ],
535
512
  "captures": {
536
513
  "1": {
537
514
  "name": "meta.preprocessor.dm"
@@ -542,11 +519,21 @@
542
519
  "3": {
543
520
  "name": "constant.numeric.preprocessor.dm"
544
521
  }
545
- },
522
+ }
523
+ },
524
+ "preprocessor-rule-enabled-block": {
525
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
546
526
  "end": "^\\s*(#\\s*(endif)\\b)",
547
527
  "patterns": [
548
528
  {
529
+ "contentName": "comment.block.preprocessor.else-branch.in-block",
549
530
  "begin": "^\\s*(#\\s*(else)\\b).*",
531
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
532
+ "patterns": [
533
+ {
534
+ "include": "#disabled"
535
+ }
536
+ ],
550
537
  "captures": {
551
538
  "1": {
552
539
  "name": "meta.preprocessor.dm"
@@ -554,17 +541,9 @@
554
541
  "2": {
555
542
  "name": "keyword.control.import.else.dm"
556
543
  }
557
- },
558
- "contentName": "comment.block.preprocessor.else-branch.in-block",
559
- "end": "(?=^\\s*#\\s*endif\\b.*$)",
560
- "patterns": [
561
- {
562
- "include": "#disabled"
563
- }
564
- ]
544
+ }
565
545
  },
566
546
  {
567
- "begin": "",
568
547
  "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
569
548
  "patterns": [
570
549
  {
@@ -572,27 +551,27 @@
572
551
  }
573
552
  ]
574
553
  }
575
- ]
576
- },
577
- "preprocessor-rule-other": {
578
- "begin": "^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))",
554
+ ],
579
555
  "captures": {
580
556
  "1": {
581
557
  "name": "meta.preprocessor.dm"
582
558
  },
583
559
  "2": {
584
- "name": "keyword.control.import.dm"
560
+ "name": "keyword.control.import.if.dm"
561
+ },
562
+ "3": {
563
+ "name": "constant.numeric.preprocessor.dm"
585
564
  }
586
- },
565
+ }
566
+ },
567
+ "preprocessor-rule-other": {
568
+ "begin": "^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))",
587
569
  "end": "^\\s*((#\\s*(endif))\\b).*$",
588
570
  "patterns": [
589
571
  {
590
572
  "include": "$base"
591
573
  }
592
- ]
593
- },
594
- "preprocessor-rule-other-block": {
595
- "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
574
+ ],
596
575
  "captures": {
597
576
  "1": {
598
577
  "name": "meta.preprocessor.dm"
@@ -600,20 +579,31 @@
600
579
  "2": {
601
580
  "name": "keyword.control.import.dm"
602
581
  }
603
- },
582
+ }
583
+ },
584
+ "preprocessor-rule-other-block": {
585
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
604
586
  "end": "^\\s*(#\\s*(endif)\\b).*$",
605
587
  "patterns": [
606
588
  {
607
589
  "include": "#block_innards"
608
590
  }
609
- ]
591
+ ],
592
+ "captures": {
593
+ "1": {
594
+ "name": "meta.preprocessor.dm"
595
+ },
596
+ "2": {
597
+ "name": "keyword.control.import.dm"
598
+ }
599
+ }
610
600
  },
611
601
  "string_embedded_expression": {
612
602
  "patterns": [
613
603
  {
614
- "begin": "(?<!\\\\)\\[",
615
- "end": "\\]",
616
604
  "name": "string.interpolated.dm",
605
+ "begin": "(?\u003c!\\\\)\\[",
606
+ "end": "\\]",
617
607
  "patterns": [
618
608
  {
619
609
  "include": "$self"
@@ -625,15 +615,14 @@
625
615
  "string_escaped_char": {
626
616
  "patterns": [
627
617
  {
628
- "match": "(?x)\n\\\\\n(\n\th(?:(?:er|im)self|ers|im)\n\t|([tTsS]?he) # Weird regex to match The, the, She, she and he at once.\n\t|He\n\t|[Hh]is\n\t|[aA]n?\n\t|(?:im)?proper\n\t|\\.\\.\\.\n\t|(?:icon|ref|[Rr]oman)(?=\\[) # Macros which need a [] after them.\n\t|[s<>\"n\\n \\[]\n)",
629
- "name": "constant.character.escape.dm"
618
+ "name": "constant.character.escape.dm",
619
+ "match": "(?x)\n\\\\\n(\n\th(?:(?:er|im)self|ers|im)\n\t|([tTsS]?he) # Weird regex to match The, the, She, she and he at once.\n\t|He\n\t|[Hh]is\n\t|[aA]n?\n\t|(?:im)?proper\n\t|\\.\\.\\.\n\t|(?:icon|ref|[Rr]oman)(?=\\[) # Macros which need a [] after them.\n\t|[s\u003c\u003e\"n\\n \\[]\n)"
630
620
  },
631
621
  {
632
- "match": "\\\\.",
633
- "name": "invalid.illegal.unknown-escape.dm"
622
+ "name": "invalid.illegal.unknown-escape.dm",
623
+ "match": "\\\\."
634
624
  }
635
625
  ]
636
626
  }
637
- },
638
- "scopeName": "source.dm"
639
- }
627
+ }
628
+ }