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,8 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "nit"
4
- ],
5
2
  "name": "Nit",
3
+ "scopeName": "source.nit",
6
4
  "patterns": [
7
5
  {
8
6
  "include": "#strings"
@@ -31,12 +29,12 @@
31
29
  ],
32
30
  "repository": {
33
31
  "character": {
34
- "match": "('[^\\\\']'|'\\\\.')",
35
- "name": "string.character.nit"
32
+ "name": "string.character.nit",
33
+ "match": "('[^\\\\']'|'\\\\.')"
36
34
  },
37
35
  "comment-single-line": {
38
- "match": "#.*",
39
- "name": "comment.singleline.nit"
36
+ "name": "comment.singleline.nit",
37
+ "match": "#.*"
40
38
  },
41
39
  "comments": {
42
40
  "patterns": [
@@ -48,51 +46,51 @@
48
46
  "constant": {
49
47
  "patterns": [
50
48
  {
51
- "match": "-?(([0-9]*.[0-9])|([0-9]+))+e-?[0-9]+",
52
- "name": "constant.numeric.float_exp.nit"
49
+ "name": "constant.numeric.float_exp.nit",
50
+ "match": "-?(([0-9]*.[0-9])|([0-9]+))+e-?[0-9]+"
53
51
  },
54
52
  {
55
- "match": "-?[0-9]*\\.[0-9]+",
56
- "name": "constant.numeric.float.nit"
53
+ "name": "constant.numeric.float.nit",
54
+ "match": "-?[0-9]*\\.[0-9]+"
57
55
  },
58
56
  {
59
- "match": "-?0(x|X)[0-9A-Fa-f_]+((u|i)(8|(16)|(32)))?",
60
- "name": "constant.numeric.hex.nit"
57
+ "name": "constant.numeric.hex.nit",
58
+ "match": "-?0(x|X)[0-9A-Fa-f_]+((u|i)(8|(16)|(32)))?"
61
59
  },
62
60
  {
63
- "match": "-?0(o|O)[0-7_]+((u|i)(8|(16)|(32)))?",
64
- "name": "constant.numeric.oct.nit"
61
+ "name": "constant.numeric.oct.nit",
62
+ "match": "-?0(o|O)[0-7_]+((u|i)(8|(16)|(32)))?"
65
63
  },
66
64
  {
67
- "match": "-?0(b|B)[0-1_]+((u|i)(8|(16)|(32)))?",
68
- "name": "constant.numeric.bin.nit"
65
+ "name": "constant.numeric.bin.nit",
66
+ "match": "-?0(b|B)[0-1_]+((u|i)(8|(16)|(32)))?"
69
67
  },
70
68
  {
71
- "match": "-?[0-9][0-9_]*((u|i)(8|(16)|(32)))?",
72
- "name": "constant.numeric.dec.nit"
69
+ "name": "constant.numeric.dec.nit",
70
+ "match": "-?[0-9][0-9_]*((u|i)(8|(16)|(32)))?"
73
71
  },
74
72
  {
75
- "match": "\\b(true|false|null)\\b",
76
- "name": "constant.language.nit"
73
+ "name": "constant.language.nit",
74
+ "match": "\\b(true|false|null)\\b"
77
75
  }
78
76
  ]
79
77
  },
80
78
  "entity": {
81
79
  "patterns": [
82
80
  {
83
- "match": "[A-Z][a-zA-Z0-9_]*",
84
- "name": "entity.name.type.nit"
81
+ "name": "entity.name.type.nit",
82
+ "match": "[A-Z][a-zA-Z0-9_]*"
85
83
  },
86
84
  {
87
- "match": "_[a-z][a-zA-Z0-9_]*",
88
- "name": "entity.other.attribute-name.nit"
85
+ "name": "entity.other.attribute-name.nit",
86
+ "match": "_[a-z][a-zA-Z0-9_]*"
89
87
  }
90
88
  ]
91
89
  },
92
90
  "inlongstring-code": {
91
+ "name": "incode.nit",
93
92
  "begin": "{{{",
94
93
  "end": "}}}",
95
- "name": "incode.nit",
96
94
  "patterns": [
97
95
  {
98
96
  "include": "$self"
@@ -100,9 +98,9 @@
100
98
  ]
101
99
  },
102
100
  "inshortstring-code": {
101
+ "name": "string.quoted.double.untitled",
103
102
  "begin": "{",
104
103
  "end": "}",
105
- "name": "string.quoted.double.untitled",
106
104
  "patterns": [
107
105
  {
108
106
  "include": "$self"
@@ -112,43 +110,43 @@
112
110
  "keyword": {
113
111
  "patterns": [
114
112
  {
115
- "match": "\\b(label|if|then|loop|else|while|for|do|end|in|with)\\b",
116
- "name": "keyword.control.nit"
113
+ "name": "keyword.control.nit",
114
+ "match": "\\b(label|if|then|loop|else|while|for|do|end|in|with)\\b"
117
115
  },
118
116
  {
119
- "match": "\\b(return|continue|break|abort)\\b",
120
- "name": "keyword.breaks.nit"
117
+ "name": "keyword.breaks.nit",
118
+ "match": "\\b(return|continue|break|abort)\\b"
121
119
  },
122
120
  {
123
- "match": "\\b(nullable|once|new|var)\\b",
124
- "name": "keyword.declaration.nit"
121
+ "name": "keyword.declaration.nit",
122
+ "match": "\\b(nullable|once|new|var)\\b"
125
123
  },
126
124
  {
127
- "match": "\\b(is)\\b",
128
- "name": "keyword.annot.nit"
125
+ "name": "keyword.annot.nit",
126
+ "match": "\\b(is)\\b"
129
127
  },
130
128
  {
131
- "match": "\\b(isa|as|type|isset)\\b",
132
- "name": "keyword.types.nit"
129
+ "name": "keyword.types.nit",
130
+ "match": "\\b(isa|as|type|isset)\\b"
133
131
  },
134
132
  {
135
- "match": "\\b(assert|__debug__|super|implies)\\b",
136
- "name": "keyword.misc.nit"
133
+ "name": "keyword.misc.nit",
134
+ "match": "\\b(assert|__debug__|super|implies)\\b"
137
135
  },
138
136
  {
139
- "match": "(==|\\+=|-=|!=|=|!|@|<=>|<=|<<|<|>=|>>|>|\\(|\\)|\\[|\\]|,|::|:|\\.\\.\\.|\\.\\.|\\.|\\+|-|\\*\\*|\\*|/|%|)",
140
- "name": "keyword.operator.nit"
137
+ "name": "keyword.operator.nit",
138
+ "match": "(==|\\+=|-=|!=|=|!|@|\u003c=\u003e|\u003c=|\u003c\u003c|\u003c|\u003e=|\u003e\u003e|\u003e|\\(|\\)|\\[|\\]|,|::|:|\\.\\.\\.|\\.\\.|\\.|\\+|-|\\*\\*|\\*|/|%|)"
141
139
  },
142
140
  {
143
- "match": "\\b(and|not|or)\\b",
144
- "name": "keyword.operator.boolean.nit"
141
+ "name": "keyword.operator.boolean.nit",
142
+ "match": "\\b(and|not|or)\\b"
145
143
  }
146
144
  ]
147
145
  },
148
146
  "long-tquote-alt-string": {
147
+ "name": "string.triple.alt.nit",
149
148
  "begin": "'''",
150
149
  "end": "'''",
151
- "name": "string.triple.alt.nit",
152
150
  "patterns": [
153
151
  {
154
152
  "include": "#inlongstring-code"
@@ -156,51 +154,51 @@
156
154
  ]
157
155
  },
158
156
  "long-tquote-string": {
157
+ "name": "string.triple.nit",
159
158
  "begin": "\\\"\\\"\\\"",
160
159
  "end": "\\\"\\\"\\\"",
161
- "name": "string.triple.nit",
162
160
  "patterns": [
163
161
  {
164
162
  "include": "#inlongstring-code"
165
163
  },
166
164
  {
167
- "match": "([^\\\\]|\\\\.)",
168
- "name": "string.char.nit"
165
+ "name": "string.char.nit",
166
+ "match": "([^\\\\]|\\\\.)"
169
167
  }
170
168
  ]
171
169
  },
172
170
  "markup": {
173
171
  "patterns": [
174
172
  {
173
+ "name": "markup.raw.nit",
175
174
  "begin": "`{",
176
- "end": "`}",
177
- "name": "markup.raw.nit"
175
+ "end": "`}"
178
176
  }
179
177
  ]
180
178
  },
181
179
  "simple-string": {
180
+ "name": "string.quoted.double.untitled",
182
181
  "begin": "\\\"",
183
182
  "end": "\\\"",
184
- "name": "string.quoted.double.untitled",
185
183
  "patterns": [
186
184
  {
187
185
  "include": "#inshortstring-code"
188
186
  },
189
187
  {
190
- "match": "([^\\\\]|\\\\.)",
191
- "name": "string.char.nit"
188
+ "name": "string.char.nit",
189
+ "match": "([^\\\\]|\\\\.)"
192
190
  }
193
191
  ]
194
192
  },
195
193
  "storage": {
196
194
  "patterns": [
197
195
  {
198
- "match": "\\b(fun|init|redef|class|interface|module|import|package|abstract|universal|enum)\\b",
199
- "name": "storage.type.nit"
196
+ "name": "storage.type.nit",
197
+ "match": "\\b(fun|init|redef|class|interface|module|import|package|abstract|universal|enum)\\b"
200
198
  },
201
199
  {
202
- "match": "\\b(private|protected|public|intrude|extern)\\b",
203
- "name": "storage.modifier.nit"
200
+ "name": "storage.modifier.nit",
201
+ "match": "\\b(private|protected|public|intrude|extern)\\b"
204
202
  }
205
203
  ]
206
204
  },
@@ -223,16 +221,14 @@
223
221
  "variable": {
224
222
  "patterns": [
225
223
  {
226
- "match": "\\b(self)\\b",
227
- "name": "variable.language.nit"
224
+ "name": "variable.language.nit",
225
+ "match": "\\b(self)\\b"
228
226
  },
229
227
  {
230
- "match": "[a-z][a-zA-Z0-9_]*",
231
- "name": "variable.other.nit"
228
+ "name": "variable.other.nit",
229
+ "match": "[a-z][a-zA-Z0-9_]*"
232
230
  }
233
231
  ]
234
232
  }
235
- },
236
- "scopeName": "source.nit",
237
- "uuid": "6b33d803-1dfa-4063-b203-abc0409bd1bb"
238
- }
233
+ }
234
+ }
@@ -1,8 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "nix"
4
- ],
5
2
  "name": "Nix",
3
+ "scopeName": "source.nix",
6
4
  "patterns": [
7
5
  {
8
6
  "include": "#expression"
@@ -21,53 +19,33 @@
21
19
  },
22
20
  "attribute-bind-from-equals": {
23
21
  "begin": "\\=",
22
+ "end": "\\;",
23
+ "patterns": [
24
+ {
25
+ "include": "#expression"
26
+ }
27
+ ],
24
28
  "beginCaptures": {
25
29
  "0": {
26
30
  "name": "keyword.operator.bind.nix"
27
31
  }
28
32
  },
29
- "end": "\\;",
30
33
  "endCaptures": {
31
34
  "0": {
32
35
  "name": "punctuation.terminator.bind.nix"
33
36
  }
34
- },
35
- "patterns": [
36
- {
37
- "include": "#expression"
38
- }
39
- ]
37
+ }
40
38
  },
41
39
  "attribute-inherit": {
42
40
  "begin": "\\binherit\\b",
43
- "beginCaptures": {
44
- "0": {
45
- "name": "keyword.other.inherit.nix"
46
- }
47
- },
48
41
  "end": "\\;",
49
- "endCaptures": {
50
- "0": {
51
- "name": "punctuation.terminator.inherit.nix"
52
- }
53
- },
54
42
  "patterns": [
55
43
  {
56
44
  "begin": "\\(",
57
- "beginCaptures": {
58
- "0": {
59
- "name": "punctuation.section.function.arguments.nix"
60
- }
61
- },
62
45
  "end": "(?=\\;)",
63
46
  "patterns": [
64
47
  {
65
48
  "begin": "\\)",
66
- "beginCaptures": {
67
- "0": {
68
- "name": "punctuation.section.function.arguments.nix"
69
- }
70
- },
71
49
  "end": "(?=\\;)",
72
50
  "patterns": [
73
51
  {
@@ -79,12 +57,22 @@
79
57
  {
80
58
  "include": "#others"
81
59
  }
82
- ]
60
+ ],
61
+ "beginCaptures": {
62
+ "0": {
63
+ "name": "punctuation.section.function.arguments.nix"
64
+ }
65
+ }
83
66
  },
84
67
  {
85
68
  "include": "#expression"
86
69
  }
87
- ]
70
+ ],
71
+ "beginCaptures": {
72
+ "0": {
73
+ "name": "punctuation.section.function.arguments.nix"
74
+ }
75
+ }
88
76
  },
89
77
  {
90
78
  "begin": "(?=[a-zA-Z\\_])",
@@ -104,13 +92,23 @@
104
92
  {
105
93
  "include": "#others"
106
94
  }
107
- ]
95
+ ],
96
+ "beginCaptures": {
97
+ "0": {
98
+ "name": "keyword.other.inherit.nix"
99
+ }
100
+ },
101
+ "endCaptures": {
102
+ "0": {
103
+ "name": "punctuation.terminator.inherit.nix"
104
+ }
105
+ }
108
106
  },
109
107
  "attribute-name": {
110
108
  "patterns": [
111
109
  {
112
- "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",
113
- "name": "entity.other.attribute-name.multipart.nix"
110
+ "name": "entity.other.attribute-name.multipart.nix",
111
+ "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"
114
112
  },
115
113
  {
116
114
  "match": "\\."
@@ -124,8 +122,8 @@
124
122
  ]
125
123
  },
126
124
  "attribute-name-single": {
127
- "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",
128
- "name": "entity.other.attribute-name.single.nix"
125
+ "name": "entity.other.attribute-name.single.nix",
126
+ "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"
129
127
  },
130
128
  "attrset-contents": {
131
129
  "patterns": [
@@ -149,25 +147,25 @@
149
147
  "patterns": [
150
148
  {
151
149
  "begin": "(\\{)",
150
+ "end": "(\\})",
151
+ "patterns": [
152
+ {
153
+ "include": "#attrset-contents"
154
+ }
155
+ ],
152
156
  "beginCaptures": {
153
157
  "0": {
154
158
  "name": "punctuation.definition.attrset.nix"
155
159
  }
156
160
  },
157
- "end": "(\\})",
158
161
  "endCaptures": {
159
162
  "0": {
160
163
  "name": "punctuation.definition.attrset.nix"
161
164
  }
162
- },
163
- "patterns": [
164
- {
165
- "include": "#attrset-contents"
166
- }
167
- ]
165
+ }
168
166
  },
169
167
  {
170
- "begin": "(?<=\\})",
168
+ "begin": "(?\u003c=\\})",
171
169
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
172
170
  "patterns": [
173
171
  {
@@ -180,7 +178,7 @@
180
178
  "attrset-definition-brace-opened": {
181
179
  "patterns": [
182
180
  {
183
- "begin": "(?<=\\})",
181
+ "begin": "(?\u003c=\\})",
184
182
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
185
183
  "patterns": [
186
184
  {
@@ -191,16 +189,16 @@
191
189
  {
192
190
  "begin": "(?=.?)",
193
191
  "end": "\\}",
194
- "endCaptures": {
195
- "0": {
196
- "name": "punctuation.definition.attrset.nix"
197
- }
198
- },
199
192
  "patterns": [
200
193
  {
201
194
  "include": "#attrset-contents"
202
195
  }
203
- ]
196
+ ],
197
+ "endCaptures": {
198
+ "0": {
199
+ "name": "punctuation.definition.attrset.nix"
200
+ }
201
+ }
204
202
  }
205
203
  ]
206
204
  },
@@ -212,17 +210,17 @@
212
210
  "patterns": [
213
211
  {
214
212
  "begin": "\\brec\\b",
215
- "beginCaptures": {
216
- "0": {
217
- "name": "keyword.other.nix"
218
- }
219
- },
220
213
  "end": "(?=\\{)",
221
214
  "patterns": [
222
215
  {
223
216
  "include": "#others"
224
217
  }
225
- ]
218
+ ],
219
+ "beginCaptures": {
220
+ "0": {
221
+ "name": "keyword.other.nix"
222
+ }
223
+ }
226
224
  },
227
225
  {
228
226
  "include": "#attrset-definition"
@@ -248,11 +246,6 @@
248
246
  },
249
247
  "attrset-or-function": {
250
248
  "begin": "\\{",
251
- "beginCaptures": {
252
- "0": {
253
- "name": "punctuation.definition.attrset-or-function.nix"
254
- }
255
- },
256
249
  "end": "(?=([\\])};]|\\b(else|then)\\b))",
257
250
  "patterns": [
258
251
  {
@@ -278,11 +271,6 @@
278
271
  },
279
272
  {
280
273
  "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",
281
- "beginCaptures": {
282
- "0": {
283
- "name": "variable.parameter.function.maybe.nix"
284
- }
285
- },
286
274
  "end": "(?=([\\])};]|\\b(else|then)\\b))",
287
275
  "patterns": [
288
276
  {
@@ -296,17 +284,17 @@
296
284
  },
297
285
  {
298
286
  "begin": "\\s*(\\,)",
299
- "beginCaptures": {
300
- "1": {
301
- "name": "keyword.operator.nix"
302
- }
303
- },
304
287
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
305
288
  "patterns": [
306
289
  {
307
290
  "include": "#function-definition-brace-opened"
308
291
  }
309
- ]
292
+ ],
293
+ "beginCaptures": {
294
+ "1": {
295
+ "name": "keyword.operator.nix"
296
+ }
297
+ }
310
298
  },
311
299
  {
312
300
  "begin": "(?=\\=)",
@@ -329,40 +317,50 @@
329
317
  },
330
318
  {
331
319
  "begin": "\\,",
332
- "beginCaptures": {
333
- "0": {
334
- "name": "keyword.operator.nix"
335
- }
336
- },
337
320
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
338
321
  "patterns": [
339
322
  {
340
323
  "include": "#function-definition-brace-opened"
341
324
  }
342
- ]
325
+ ],
326
+ "beginCaptures": {
327
+ "0": {
328
+ "name": "keyword.operator.nix"
329
+ }
330
+ }
343
331
  }
344
332
  ]
345
333
  },
346
334
  {
347
335
  "include": "#others"
348
336
  }
349
- ]
337
+ ],
338
+ "beginCaptures": {
339
+ "0": {
340
+ "name": "variable.parameter.function.maybe.nix"
341
+ }
342
+ }
350
343
  },
351
344
  {
352
345
  "include": "#others"
353
346
  }
354
- ]
347
+ ],
348
+ "beginCaptures": {
349
+ "0": {
350
+ "name": "punctuation.definition.attrset-or-function.nix"
351
+ }
352
+ }
355
353
  },
356
354
  "bad-reserved": {
357
- "match": "(?<![\\w'-])(if|then|else|assert|with|let|in|rec|inherit)(?![\\w'-])",
358
- "name": "invalid.illegal.reserved.nix"
355
+ "name": "invalid.illegal.reserved.nix",
356
+ "match": "(?\u003c![\\w'-])(if|then|else|assert|with|let|in|rec|inherit)(?![\\w'-])"
359
357
  },
360
358
  "comment": {
361
359
  "patterns": [
362
360
  {
361
+ "name": "comment.block.nix",
363
362
  "begin": "/\\*([^*]|\\*[^\\/])*",
364
363
  "end": "\\*\\/",
365
- "name": "comment.block.nix",
366
364
  "patterns": [
367
365
  {
368
366
  "include": "#comment-remark"
@@ -370,9 +368,9 @@
370
368
  ]
371
369
  },
372
370
  {
371
+ "name": "comment.line.number-sign.nix",
373
372
  "begin": "\\#",
374
373
  "end": "$",
375
- "name": "comment.line.number-sign.nix",
376
374
  "patterns": [
377
375
  {
378
376
  "include": "#comment-remark"
@@ -382,56 +380,56 @@
382
380
  ]
383
381
  },
384
382
  "comment-remark": {
383
+ "match": "(TODO|FIXME|BUG|\\!\\!\\!):?",
385
384
  "captures": {
386
385
  "1": {
387
386
  "name": "markup.bold.comment.nix"
388
387
  }
389
- },
390
- "match": "(TODO|FIXME|BUG|\\!\\!\\!):?"
388
+ }
391
389
  },
392
390
  "constants": {
393
391
  "patterns": [
394
392
  {
395
393
  "begin": "\\b(builtins|true|false|null)\\b",
394
+ "end": "(?=([\\])};,]|\\b(else|then)\\b))",
395
+ "patterns": [
396
+ {
397
+ "include": "#expression-cont"
398
+ }
399
+ ],
396
400
  "beginCaptures": {
397
401
  "0": {
398
402
  "name": "constant.language.nix"
399
403
  }
400
- },
404
+ }
405
+ },
406
+ {
407
+ "begin": "\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b",
401
408
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
402
409
  "patterns": [
403
410
  {
404
411
  "include": "#expression-cont"
405
412
  }
406
- ]
407
- },
408
- {
409
- "begin": "\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b",
413
+ ],
410
414
  "beginCaptures": {
411
415
  "0": {
412
416
  "name": "support.function.nix"
413
417
  }
414
- },
418
+ }
419
+ },
420
+ {
421
+ "begin": "\\b[0-9]+\\b",
415
422
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
416
423
  "patterns": [
417
424
  {
418
425
  "include": "#expression-cont"
419
426
  }
420
- ]
421
- },
422
- {
423
- "begin": "\\b[0-9]+\\b",
427
+ ],
424
428
  "beginCaptures": {
425
429
  "0": {
426
430
  "name": "constant.numeric.nix"
427
431
  }
428
- },
429
- "end": "(?=([\\])};,]|\\b(else|then)\\b))",
430
- "patterns": [
431
- {
432
- "include": "#expression-cont"
433
- }
434
- ]
432
+ }
435
433
  }
436
434
  ]
437
435
  },
@@ -510,8 +508,8 @@
510
508
  "include": "#attrset-or-function"
511
509
  },
512
510
  {
513
- "match": "(\\bor\\b|\\.|==|!=|!|\\<\\=|\\<|\\>\\=|\\>|&&|\\|\\||-\\>|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)",
514
- "name": "keyword.operator.nix"
511
+ "name": "keyword.operator.nix",
512
+ "match": "(\\bor\\b|\\.|==|!=|!|\\\u003c\\=|\\\u003c|\\\u003e\\=|\\\u003e|\u0026\u0026|\\|\\||-\\\u003e|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)"
515
513
  },
516
514
  {
517
515
  "include": "#constants"
@@ -538,17 +536,17 @@
538
536
  },
539
537
  "function-body-from-colon": {
540
538
  "begin": "(\\:)",
541
- "beginCaptures": {
542
- "0": {
543
- "name": "punctuation.definition.function.nix"
544
- }
545
- },
546
539
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
547
540
  "patterns": [
548
541
  {
549
542
  "include": "#expression"
550
543
  }
551
- ]
544
+ ],
545
+ "beginCaptures": {
546
+ "0": {
547
+ "name": "punctuation.definition.function.nix"
548
+ }
549
+ }
552
550
  },
553
551
  "function-contents": {
554
552
  "patterns": [
@@ -576,11 +574,6 @@
576
574
  "patterns": [
577
575
  {
578
576
  "begin": "(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",
579
- "beginCaptures": {
580
- "0": {
581
- "name": "variable.parameter.function.4.nix"
582
- }
583
- },
584
577
  "end": "(?=\\:)",
585
578
  "patterns": [
586
579
  {
@@ -598,7 +591,12 @@
598
591
  {
599
592
  "include": "#others"
600
593
  }
601
- ]
594
+ ],
595
+ "beginCaptures": {
596
+ "0": {
597
+ "name": "variable.parameter.function.4.nix"
598
+ }
599
+ }
602
600
  },
603
601
  {
604
602
  "begin": "(?=\\{)",
@@ -661,25 +659,20 @@
661
659
  },
662
660
  "function-header-close-brace-no-arg": {
663
661
  "begin": "\\}",
664
- "beginCaptures": {
665
- "0": {
666
- "name": "punctuation.definition.entity.function.nix"
667
- }
668
- },
669
662
  "end": "(?=\\:)",
670
663
  "patterns": [
671
664
  {
672
665
  "include": "#others"
673
666
  }
674
- ]
675
- },
676
- "function-header-close-brace-with-arg": {
677
- "begin": "\\}",
667
+ ],
678
668
  "beginCaptures": {
679
669
  "0": {
680
670
  "name": "punctuation.definition.entity.function.nix"
681
671
  }
682
- },
672
+ }
673
+ },
674
+ "function-header-close-brace-with-arg": {
675
+ "begin": "\\}",
683
676
  "end": "(?=\\:)",
684
677
  "patterns": [
685
678
  {
@@ -688,21 +681,26 @@
688
681
  {
689
682
  "include": "#others"
690
683
  }
691
- ]
692
- },
693
- "function-header-open-brace": {
694
- "begin": "\\{",
684
+ ],
695
685
  "beginCaptures": {
696
686
  "0": {
697
- "name": "punctuation.definition.entity.function.2.nix"
687
+ "name": "punctuation.definition.entity.function.nix"
698
688
  }
699
- },
689
+ }
690
+ },
691
+ "function-header-open-brace": {
692
+ "begin": "\\{",
700
693
  "end": "(?=\\})",
701
694
  "patterns": [
702
695
  {
703
696
  "include": "#function-contents"
704
697
  }
705
- ]
698
+ ],
699
+ "beginCaptures": {
700
+ "0": {
701
+ "name": "punctuation.definition.entity.function.2.nix"
702
+ }
703
+ }
706
704
  },
707
705
  "function-header-terminal-arg": {
708
706
  "begin": "(?=@)",
@@ -713,9 +711,9 @@
713
711
  "end": "(?=\\:)",
714
712
  "patterns": [
715
713
  {
714
+ "name": "variable.parameter.function.3.nix",
716
715
  "begin": "(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",
717
- "end": "(?=\\:)",
718
- "name": "variable.parameter.function.3.nix"
716
+ "end": "(?=\\:)"
719
717
  },
720
718
  {
721
719
  "include": "#others"
@@ -754,9 +752,9 @@
754
752
  "function-parameter": {
755
753
  "patterns": [
756
754
  {
755
+ "name": "keyword.operator.nix",
757
756
  "begin": "(\\.\\.\\.)",
758
757
  "end": "(,|(?=\\}))",
759
- "name": "keyword.operator.nix",
760
758
  "patterns": [
761
759
  {
762
760
  "include": "#others"
@@ -765,17 +763,7 @@
765
763
  },
766
764
  {
767
765
  "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",
768
- "beginCaptures": {
769
- "0": {
770
- "name": "variable.parameter.function.1.nix"
771
- }
772
- },
773
766
  "end": "(,|(?=\\}))",
774
- "endCaptures": {
775
- "0": {
776
- "name": "keyword.operator.nix"
777
- }
778
- },
779
767
  "patterns": [
780
768
  {
781
769
  "include": "#whitespace"
@@ -789,7 +777,17 @@
789
777
  {
790
778
  "include": "#expression"
791
779
  }
792
- ]
780
+ ],
781
+ "beginCaptures": {
782
+ "0": {
783
+ "name": "variable.parameter.function.1.nix"
784
+ }
785
+ },
786
+ "endCaptures": {
787
+ "0": {
788
+ "name": "keyword.operator.nix"
789
+ }
790
+ }
793
791
  },
794
792
  {
795
793
  "include": "#others"
@@ -798,17 +796,17 @@
798
796
  },
799
797
  "function-parameter-default": {
800
798
  "begin": "\\?",
801
- "beginCaptures": {
802
- "0": {
803
- "name": "keyword.operator.nix"
804
- }
805
- },
806
799
  "end": "(?=[,}])",
807
800
  "patterns": [
808
801
  {
809
802
  "include": "#expression"
810
803
  }
811
- ]
804
+ ],
805
+ "beginCaptures": {
806
+ "0": {
807
+ "name": "keyword.operator.nix"
808
+ }
809
+ }
812
810
  },
813
811
  "if": {
814
812
  "begin": "(?=\\bif\\b)",
@@ -816,86 +814,86 @@
816
814
  "patterns": [
817
815
  {
818
816
  "begin": "\\bif\\b",
817
+ "end": "\\bth(?=en\\b)",
818
+ "patterns": [
819
+ {
820
+ "include": "#expression"
821
+ }
822
+ ],
819
823
  "beginCaptures": {
820
824
  "0": {
821
825
  "name": "keyword.other.nix"
822
826
  }
823
827
  },
824
- "end": "\\bth(?=en\\b)",
825
828
  "endCaptures": {
826
829
  "0": {
827
830
  "name": "keyword.other.nix"
828
831
  }
829
- },
832
+ }
833
+ },
834
+ {
835
+ "begin": "(?\u003c=th)en\\b",
836
+ "end": "\\bel(?=se\\b)",
830
837
  "patterns": [
831
838
  {
832
839
  "include": "#expression"
833
840
  }
834
- ]
835
- },
836
- {
837
- "begin": "(?<=th)en\\b",
841
+ ],
838
842
  "beginCaptures": {
839
843
  "0": {
840
844
  "name": "keyword.other.nix"
841
845
  }
842
846
  },
843
- "end": "\\bel(?=se\\b)",
844
847
  "endCaptures": {
845
848
  "0": {
846
849
  "name": "keyword.other.nix"
847
850
  }
848
- },
851
+ }
852
+ },
853
+ {
854
+ "begin": "(?\u003c=el)se\\b",
855
+ "end": "(?=([\\])};,]|\\b(else|then)\\b))",
849
856
  "patterns": [
850
857
  {
851
858
  "include": "#expression"
852
859
  }
853
- ]
854
- },
855
- {
856
- "begin": "(?<=el)se\\b",
860
+ ],
857
861
  "beginCaptures": {
858
862
  "0": {
859
863
  "name": "keyword.other.nix"
860
864
  }
861
865
  },
862
- "end": "(?=([\\])};,]|\\b(else|then)\\b))",
863
866
  "endCaptures": {
864
867
  "0": {
865
868
  "name": "keyword.other.nix"
866
869
  }
867
- },
868
- "patterns": [
869
- {
870
- "include": "#expression"
871
- }
872
- ]
870
+ }
873
871
  }
874
872
  ]
875
873
  },
876
874
  "illegal": {
877
- "match": ".",
878
- "name": "invalid.illegal"
875
+ "name": "invalid.illegal",
876
+ "match": "."
879
877
  },
880
878
  "interpolation": {
879
+ "name": "markup.italic",
881
880
  "begin": "\\$\\{",
881
+ "end": "\\}",
882
+ "patterns": [
883
+ {
884
+ "include": "#expression"
885
+ }
886
+ ],
882
887
  "beginCaptures": {
883
888
  "0": {
884
889
  "name": "punctuation.section.embedded.begin.nix"
885
890
  }
886
891
  },
887
- "end": "\\}",
888
892
  "endCaptures": {
889
893
  "0": {
890
894
  "name": "punctuation.section.embedded.end.nix"
891
895
  }
892
- },
893
- "name": "markup.italic",
894
- "patterns": [
895
- {
896
- "include": "#expression"
897
- }
898
- ]
896
+ }
899
897
  },
900
898
  "let": {
901
899
  "begin": "(?=\\blet\\b)",
@@ -903,11 +901,6 @@
903
901
  "patterns": [
904
902
  {
905
903
  "begin": "\\blet\\b",
906
- "beginCaptures": {
907
- "0": {
908
- "name": "keyword.other.nix"
909
- }
910
- },
911
904
  "end": "(?=([\\])};,]|\\b(in|else|then)\\b))",
912
905
  "patterns": [
913
906
  {
@@ -924,7 +917,7 @@
924
917
  ]
925
918
  },
926
919
  {
927
- "begin": "(^|(?<=\\}))",
920
+ "begin": "(^|(?\u003c=\\}))",
928
921
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
929
922
  "patterns": [
930
923
  {
@@ -943,42 +936,47 @@
943
936
  {
944
937
  "include": "#others"
945
938
  }
946
- ]
947
- },
948
- {
949
- "begin": "\\bin\\b",
939
+ ],
950
940
  "beginCaptures": {
951
941
  "0": {
952
942
  "name": "keyword.other.nix"
953
943
  }
954
- },
944
+ }
945
+ },
946
+ {
947
+ "begin": "\\bin\\b",
955
948
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
956
949
  "patterns": [
957
950
  {
958
951
  "include": "#expression"
959
952
  }
960
- ]
953
+ ],
954
+ "beginCaptures": {
955
+ "0": {
956
+ "name": "keyword.other.nix"
957
+ }
958
+ }
961
959
  }
962
960
  ]
963
961
  },
964
962
  "list": {
965
963
  "begin": "\\[",
964
+ "end": "\\]",
965
+ "patterns": [
966
+ {
967
+ "include": "#expression"
968
+ }
969
+ ],
966
970
  "beginCaptures": {
967
971
  "0": {
968
972
  "name": "punctuation.definition.list.nix"
969
973
  }
970
974
  },
971
- "end": "\\]",
972
975
  "endCaptures": {
973
976
  "0": {
974
977
  "name": "punctuation.definition.list.nix"
975
978
  }
976
- },
977
- "patterns": [
978
- {
979
- "include": "#expression"
980
- }
981
- ]
979
+ }
982
980
  },
983
981
  "list-and-cont": {
984
982
  "begin": "(?=\\[)",
@@ -993,8 +991,8 @@
993
991
  ]
994
992
  },
995
993
  "operator-unary": {
996
- "match": "(!|-)",
997
- "name": "keyword.operator.unary.nix"
994
+ "name": "keyword.operator.unary.nix",
995
+ "match": "(!|-)"
998
996
  },
999
997
  "others": {
1000
998
  "patterns": [
@@ -1010,45 +1008,45 @@
1010
1008
  ]
1011
1009
  },
1012
1010
  "parameter-name": {
1011
+ "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",
1013
1012
  "captures": {
1014
1013
  "0": {
1015
1014
  "name": "variable.parameter.name.nix"
1016
1015
  }
1017
- },
1018
- "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"
1016
+ }
1019
1017
  },
1020
1018
  "parameter-name-and-cont": {
1021
1019
  "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",
1022
- "beginCaptures": {
1023
- "0": {
1024
- "name": "variable.parameter.name.nix"
1025
- }
1026
- },
1027
1020
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
1028
1021
  "patterns": [
1029
1022
  {
1030
1023
  "include": "#expression-cont"
1031
1024
  }
1032
- ]
1025
+ ],
1026
+ "beginCaptures": {
1027
+ "0": {
1028
+ "name": "variable.parameter.name.nix"
1029
+ }
1030
+ }
1033
1031
  },
1034
1032
  "parens": {
1035
1033
  "begin": "\\(",
1034
+ "end": "\\)",
1035
+ "patterns": [
1036
+ {
1037
+ "include": "#expression"
1038
+ }
1039
+ ],
1036
1040
  "beginCaptures": {
1037
1041
  "0": {
1038
1042
  "name": "punctuation.definition.expression.nix"
1039
1043
  }
1040
1044
  },
1041
- "end": "\\)",
1042
1045
  "endCaptures": {
1043
1046
  "0": {
1044
1047
  "name": "punctuation.definition.expression.nix"
1045
1048
  }
1046
- },
1047
- "patterns": [
1048
- {
1049
- "include": "#expression"
1050
- }
1051
- ]
1049
+ }
1052
1050
  },
1053
1051
  "parens-and-cont": {
1054
1052
  "begin": "(?=\\()",
@@ -1069,28 +1067,28 @@
1069
1067
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
1070
1068
  "patterns": [
1071
1069
  {
1070
+ "name": "string.quoted.other.nix",
1072
1071
  "begin": "\\'\\'",
1072
+ "end": "\\'\\'(?!\\$|\\'|\\\\.)",
1073
+ "patterns": [
1074
+ {
1075
+ "name": "constant.character.escape.nix",
1076
+ "match": "\\'\\'(\\$|\\'|\\\\.)"
1077
+ },
1078
+ {
1079
+ "include": "#interpolation"
1080
+ }
1081
+ ],
1073
1082
  "beginCaptures": {
1074
1083
  "0": {
1075
1084
  "name": "punctuation.definition.string.other.start.nix"
1076
1085
  }
1077
1086
  },
1078
- "end": "\\'\\'(?!\\$|\\'|\\\\.)",
1079
1087
  "endCaptures": {
1080
1088
  "0": {
1081
1089
  "name": "punctuation.definition.string.other.end.nix"
1082
1090
  }
1083
- },
1084
- "name": "string.quoted.other.nix",
1085
- "patterns": [
1086
- {
1087
- "match": "\\'\\'(\\$|\\'|\\\\.)",
1088
- "name": "constant.character.escape.nix"
1089
- },
1090
- {
1091
- "include": "#interpolation"
1092
- }
1093
- ]
1091
+ }
1094
1092
  },
1095
1093
  {
1096
1094
  "include": "#expression-cont"
@@ -1111,90 +1109,88 @@
1111
1109
  },
1112
1110
  {
1113
1111
  "begin": "([a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)",
1112
+ "end": "(?=([\\])};,]|\\b(else|then)\\b))",
1113
+ "patterns": [
1114
+ {
1115
+ "include": "#expression-cont"
1116
+ }
1117
+ ],
1114
1118
  "beginCaptures": {
1115
1119
  "0": {
1116
1120
  "name": "string.unquoted.path.nix"
1117
1121
  }
1118
- },
1122
+ }
1123
+ },
1124
+ {
1125
+ "begin": "(\\\u003c[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\\u003e)",
1119
1126
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
1120
1127
  "patterns": [
1121
1128
  {
1122
1129
  "include": "#expression-cont"
1123
1130
  }
1124
- ]
1125
- },
1126
- {
1127
- "begin": "(\\<[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\>)",
1131
+ ],
1128
1132
  "beginCaptures": {
1129
1133
  "0": {
1130
1134
  "name": "string.unquoted.spath.nix"
1131
1135
  }
1132
- },
1136
+ }
1137
+ },
1138
+ {
1139
+ "begin": "([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\\u0026\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)",
1133
1140
  "end": "(?=([\\])};,]|\\b(else|then)\\b))",
1134
1141
  "patterns": [
1135
1142
  {
1136
1143
  "include": "#expression-cont"
1137
1144
  }
1138
- ]
1139
- },
1140
- {
1141
- "begin": "([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\&\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)",
1145
+ ],
1142
1146
  "beginCaptures": {
1143
1147
  "0": {
1144
1148
  "name": "string.unquoted.url.nix"
1145
1149
  }
1146
- },
1147
- "end": "(?=([\\])};,]|\\b(else|then)\\b))",
1148
- "patterns": [
1149
- {
1150
- "include": "#expression-cont"
1151
- }
1152
- ]
1150
+ }
1153
1151
  }
1154
1152
  ]
1155
1153
  },
1156
1154
  "string-quoted": {
1155
+ "name": "string.quoted.double.nix",
1157
1156
  "begin": "\\\"",
1157
+ "end": "\\\"",
1158
+ "patterns": [
1159
+ {
1160
+ "name": "constant.character.escape.nix",
1161
+ "match": "\\\\."
1162
+ },
1163
+ {
1164
+ "include": "#interpolation"
1165
+ }
1166
+ ],
1158
1167
  "beginCaptures": {
1159
1168
  "0": {
1160
1169
  "name": "punctuation.definition.string.double.start.nix"
1161
1170
  }
1162
1171
  },
1163
- "end": "\\\"",
1164
1172
  "endCaptures": {
1165
1173
  "0": {
1166
1174
  "name": "punctuation.definition.string.double.end.nix"
1167
1175
  }
1168
- },
1169
- "name": "string.quoted.double.nix",
1170
- "patterns": [
1171
- {
1172
- "match": "\\\\.",
1173
- "name": "constant.character.escape.nix"
1174
- },
1175
- {
1176
- "include": "#interpolation"
1177
- }
1178
- ]
1176
+ }
1179
1177
  },
1180
1178
  "whitespace": {
1181
1179
  "match": "\\s+"
1182
1180
  },
1183
1181
  "with-assert": {
1184
- "begin": "(?<![\\w'-])(with|assert)(?![\\w'-])",
1185
- "beginCaptures": {
1186
- "0": {
1187
- "name": "keyword.other.nix"
1188
- }
1189
- },
1182
+ "begin": "(?\u003c![\\w'-])(with|assert)(?![\\w'-])",
1190
1183
  "end": "\\;",
1191
1184
  "patterns": [
1192
1185
  {
1193
1186
  "include": "#expression"
1194
1187
  }
1195
- ]
1188
+ ],
1189
+ "beginCaptures": {
1190
+ "0": {
1191
+ "name": "keyword.other.nix"
1192
+ }
1193
+ }
1196
1194
  }
1197
- },
1198
- "scopeName": "source.nix",
1199
- "uuid": "0514fd5f-acb6-436d-b42c-7643e6d36c8f"
1200
- }
1195
+ }
1196
+ }