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,12 +1,6 @@
1
1
  {
2
- "comment": "\n\t\tThe foldings do not currently work the way I want them to. This\n\t\tmay be a limitation of the way they are applied rather than the\n\t\tregexps in use. Nonetheless, the foldings will end on the last\n\t\tidentically indented blank line following an s-expression. Not\n\t\tideal perhaps, but it works. Also, the #illegal pattern never\n\t\tmatches an unpaired ( as being illegal. Why?! -- Rob Rix\n\t\t\n\t\tOk, hopefully this grammar works better on quoted stuff now. It\n\t\tmay break for fancy macros, but should generally work pretty\n\t\tsmoothly. -- Jacob Rus\n\t\t\n\t\tI have attempted to get this under control but because of the way folding\n\t\tand indentation interact in Textmate, I am not sure if it is possible. In the\n\t\tmeantime, I have implemented Python-style folding anchored at newlines.\n\t\tAdditionally, I have made some minor improvements to the numeric constant\n\t\thighlighting. Next up is square bracket expressions, I guess, but that\n\t\tshould be trivial. -- ozy`\n\t",
3
- "fileTypes": [
4
- "scm",
5
- "sch",
6
- "rkt"
7
- ],
8
- "keyEquivalent": "^~S",
9
2
  "name": "Scheme",
3
+ "scopeName": "source.scheme",
10
4
  "patterns": [
11
5
  {
12
6
  "include": "#comment"
@@ -30,86 +24,83 @@
30
24
  "repository": {
31
25
  "comment": {
32
26
  "begin": "(^[ \\t]+)?(?=;)",
33
- "beginCaptures": {
34
- "1": {
35
- "name": "punctuation.whitespace.comment.leading.scheme"
36
- }
37
- },
38
27
  "end": "(?!\\G)",
39
28
  "patterns": [
40
29
  {
30
+ "name": "comment.line.semicolon.scheme",
41
31
  "begin": ";",
32
+ "end": "\\n",
42
33
  "beginCaptures": {
43
34
  "0": {
44
35
  "name": "punctuation.definition.comment.scheme"
45
36
  }
46
- },
47
- "end": "\\n",
48
- "name": "comment.line.semicolon.scheme"
37
+ }
49
38
  }
50
- ]
39
+ ],
40
+ "beginCaptures": {
41
+ "1": {
42
+ "name": "punctuation.whitespace.comment.leading.scheme"
43
+ }
44
+ }
51
45
  },
52
46
  "constants": {
53
47
  "patterns": [
54
48
  {
55
- "match": "#[t|f]",
56
- "name": "constant.language.boolean.scheme"
49
+ "name": "constant.language.boolean.scheme",
50
+ "match": "#[t|f]"
57
51
  },
58
52
  {
59
- "match": "(?<=[\\(\\s])((#e|#i)?[0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'\",\\[\\]])",
60
- "name": "constant.numeric.scheme"
53
+ "name": "constant.numeric.scheme",
54
+ "match": "(?\u003c=[\\(\\s])((#e|#i)?[0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'\",\\[\\]])"
61
55
  }
62
56
  ]
63
57
  },
64
58
  "illegal": {
65
- "match": "[()\\[\\]]",
66
- "name": "invalid.illegal.parenthesis.scheme"
59
+ "name": "invalid.illegal.parenthesis.scheme",
60
+ "match": "[()\\[\\]]"
67
61
  },
68
62
  "language-functions": {
69
63
  "patterns": [
70
64
  {
71
- "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\(|\\[)) # preceded by space or ( \n\t\t\t\t\t\t( do|or|and|else|quasiquote|begin|if|case|set!|\n\t\t\t\t\t\t cond|let|unquote|define|let\\*|unquote-splicing|delay|\n\t\t\t\t\t\t letrec)\n\t\t\t\t\t\t(?=(\\s|\\())",
72
- "name": "keyword.control.scheme"
65
+ "name": "keyword.control.scheme",
66
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c=(\\s|\\(|\\[)) # preceded by space or ( \n\t\t\t\t\t\t( do|or|and|else|quasiquote|begin|if|case|set!|\n\t\t\t\t\t\t cond|let|unquote|define|let\\*|unquote-splicing|delay|\n\t\t\t\t\t\t letrec)\n\t\t\t\t\t\t(?=(\\s|\\())"
73
67
  },
74
68
  {
75
- "comment": "\n\t\t\t\t\t\tThese functions run a test, and return a boolean\n\t\t\t\t\t\tanswer.\n\t\t\t\t\t",
76
- "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char-alphabetic|char-lower-case|char-numeric|\n\t\t\t\t\t\t char-ready|char-upper-case|char-whitespace|\n\t\t\t\t\t\t (?:char|string)(?:-ci)?(?:=|<=?|>=?)|\n\t\t\t\t\t\t atom|boolean|bound-identifier=|char|complex|\n\t\t\t\t\t\t identifier|integer|symbol|free-identifier=|inexact|\n\t\t\t\t\t\t eof-object|exact|list|(?:input|output)-port|pair|\n\t\t\t\t\t\t real|rational|zero|vector|negative|odd|null|string|\n\t\t\t\t\t\t eq|equal|eqv|even|number|positive|procedure\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(\\?)\t\t# name ends with ? sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t",
77
- "name": "support.function.boolean-test.scheme"
69
+ "name": "support.function.boolean-test.scheme",
70
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char-alphabetic|char-lower-case|char-numeric|\n\t\t\t\t\t\t char-ready|char-upper-case|char-whitespace|\n\t\t\t\t\t\t (?:char|string)(?:-ci)?(?:=|\u003c=?|\u003e=?)|\n\t\t\t\t\t\t atom|boolean|bound-identifier=|char|complex|\n\t\t\t\t\t\t identifier|integer|symbol|free-identifier=|inexact|\n\t\t\t\t\t\t eof-object|exact|list|(?:input|output)-port|pair|\n\t\t\t\t\t\t real|rational|zero|vector|negative|odd|null|string|\n\t\t\t\t\t\t eq|equal|eqv|even|number|positive|procedure\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(\\?)\t\t# name ends with ? sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t"
78
71
  },
79
72
  {
80
- "comment": "\n\t\t\t\t\t\tThese functions change one type into another.\n\t\t\t\t\t",
81
- "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char->integer|exact->inexact|inexact->exact|\n\t\t\t\t\t\t integer->char|symbol->string|list->vector|\n\t\t\t\t\t\t list->string|identifier->symbol|vector->list|\n\t\t\t\t\t\t string->list|string->number|string->symbol|\n\t\t\t\t\t\t number->string\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\t\t\t\t\t\n\t\t\t\t\t",
82
- "name": "support.function.convert-type.scheme"
73
+ "name": "support.function.convert-type.scheme",
74
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char-\u003einteger|exact-\u003einexact|inexact-\u003eexact|\n\t\t\t\t\t\t integer-\u003echar|symbol-\u003estring|list-\u003evector|\n\t\t\t\t\t\t list-\u003estring|identifier-\u003esymbol|vector-\u003elist|\n\t\t\t\t\t\t string-\u003elist|string-\u003enumber|string-\u003esymbol|\n\t\t\t\t\t\t number-\u003estring\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\t\t\t\t\t\n\t\t\t\t\t"
83
75
  },
84
76
  {
85
- "comment": "\n\t\t\t\t\t\tThese functions are potentially dangerous because\n\t\t\t\t\t\tthey have side-effects which could affect other\n\t\t\t\t\t\tparts of the program.\n\t\t\t\t\t",
86
- "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( set-(?:car|cdr)|\t\t\t\t # set car/cdr\n\t\t\t\t\t\t (?:vector|string)-(?:fill|set) # fill/set string/vector\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(!)\t\t\t# name ends with ! sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t",
87
- "name": "support.function.with-side-effects.scheme"
77
+ "name": "support.function.with-side-effects.scheme",
78
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( set-(?:car|cdr)|\t\t\t\t # set car/cdr\n\t\t\t\t\t\t (?:vector|string)-(?:fill|set) # fill/set string/vector\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(!)\t\t\t# name ends with ! sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t"
88
79
  },
89
80
  {
90
- "comment": "\n\t\t\t\t\t\t+, -, *, /, =, >, etc. \n\t\t\t\t\t",
91
- "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( >=?|<=?|=|[*/+-])\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t\t",
92
- "name": "keyword.operator.arithmetic.scheme"
81
+ "name": "keyword.operator.arithmetic.scheme",
82
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( \u003e=?|\u003c=?|=|[*/+-])\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t\t"
93
83
  },
94
84
  {
95
- "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( append|apply|approximate|\n\t\t\t\t\t\t call-with-current-continuation|call/cc|catch|\n\t\t\t\t\t\t construct-identifier|define-syntax|display|foo|\n\t\t\t\t\t\t for-each|force|cd|gen-counter|gen-loser|\n\t\t\t\t\t\t generate-identifier|last-pair|length|let-syntax|\n\t\t\t\t\t\t letrec-syntax|list|list-ref|list-tail|load|log|\n\t\t\t\t\t\t macro|magnitude|map|map-streams|max|member|memq|\n\t\t\t\t\t\t memv|min|newline|nil|not|peek-char|rationalize|\n\t\t\t\t\t\t read|read-char|return|reverse|sequence|substring|\n\t\t\t\t\t\t syntax|syntax-rules|transcript-off|transcript-on|\n\t\t\t\t\t\t truncate|unwrap-syntax|values-list|write|write-char|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # cons, car, cdr, etc\n\t\t\t\t\t\t cons|c(a|d){1,4}r| \n \n\t\t\t\t\t\t # unary math operators\n\t\t\t\t\t\t abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|\n\t\t\t\t\t\t cos|floor|round|sin|sqrt|tan|\n\t\t\t\t\t\t (?:real|imag)-part|numerator|denominator\n \n\t\t\t\t\t\t # other math operators\n\t\t\t\t\t\t modulo|exp|expt|remainder|quotient|lcm|\n \n\t\t\t\t\t\t # ports / files\n\t\t\t\t\t\t call-with-(?:input|output)-file|\n\t\t\t\t\t\t (?:close|current)-(?:input|output)-port|\n\t\t\t\t\t\t with-(?:input|output)-from-file|\n\t\t\t\t\t\t open-(?:input|output)-file|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # char-«foo»\n\t\t\t\t\t\t char-(?:downcase|upcase|ready)|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # make-«foo»\n\t\t\t\t\t\t make-(?:polar|promise|rectangular|string|vector)\n\t\t\t\t\t\t \n\t\t\t\t\t\t # string-«foo», vector-«foo»\n\t\t\t\t\t\t string(?:-(?:append|copy|length|ref))?|\n\t\t\t\t\t\t vector(?:-length|-ref)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t",
96
- "name": "support.function.general.scheme"
85
+ "name": "support.function.general.scheme",
86
+ "match": "(?x)\n\t\t\t\t\t\t(?\u003c=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( append|apply|approximate|\n\t\t\t\t\t\t call-with-current-continuation|call/cc|catch|\n\t\t\t\t\t\t construct-identifier|define-syntax|display|foo|\n\t\t\t\t\t\t for-each|force|cd|gen-counter|gen-loser|\n\t\t\t\t\t\t generate-identifier|last-pair|length|let-syntax|\n\t\t\t\t\t\t letrec-syntax|list|list-ref|list-tail|load|log|\n\t\t\t\t\t\t macro|magnitude|map|map-streams|max|member|memq|\n\t\t\t\t\t\t memv|min|newline|nil|not|peek-char|rationalize|\n\t\t\t\t\t\t read|read-char|return|reverse|sequence|substring|\n\t\t\t\t\t\t syntax|syntax-rules|transcript-off|transcript-on|\n\t\t\t\t\t\t truncate|unwrap-syntax|values-list|write|write-char|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # cons, car, cdr, etc\n\t\t\t\t\t\t cons|c(a|d){1,4}r| \n \n\t\t\t\t\t\t # unary math operators\n\t\t\t\t\t\t abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|\n\t\t\t\t\t\t cos|floor|round|sin|sqrt|tan|\n\t\t\t\t\t\t (?:real|imag)-part|numerator|denominator\n \n\t\t\t\t\t\t # other math operators\n\t\t\t\t\t\t modulo|exp|expt|remainder|quotient|lcm|\n \n\t\t\t\t\t\t # ports / files\n\t\t\t\t\t\t call-with-(?:input|output)-file|\n\t\t\t\t\t\t (?:close|current)-(?:input|output)-port|\n\t\t\t\t\t\t with-(?:input|output)-from-file|\n\t\t\t\t\t\t open-(?:input|output)-file|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # char-«foo»\n\t\t\t\t\t\t char-(?:downcase|upcase|ready)|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # make-«foo»\n\t\t\t\t\t\t make-(?:polar|promise|rectangular|string|vector)\n\t\t\t\t\t\t \n\t\t\t\t\t\t # string-«foo», vector-«foo»\n\t\t\t\t\t\t string(?:-(?:append|copy|length|ref))?|\n\t\t\t\t\t\t vector(?:-length|-ref)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t"
97
87
  }
98
88
  ]
99
89
  },
100
90
  "quote": {
101
- "comment": "\n\t\t\t\tWe need to be able to quote any kind of item, which creates\n\t\t\t\ta tiny bit of complexity in our grammar. It is hopefully\n\t\t\t\tnot overwhelming complexity.\n\t\t\t\t\n\t\t\t\tNote: the first two matches are special cases. quoted\n\t\t\t\tsymbols, and quoted empty lists are considered constant.other\n\t\t\t\t\n\t\t\t",
102
91
  "patterns": [
103
92
  {
93
+ "name": "constant.other.symbol.scheme",
94
+ "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t([[:alnum:]][[:alnum:]!$%\u0026*+-./:\u003c=\u003e?@^_~]*)\n\t\t\t\t\t",
104
95
  "captures": {
105
96
  "1": {
106
97
  "name": "punctuation.section.quoted.symbol.scheme"
107
98
  }
108
- },
109
- "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t",
110
- "name": "constant.other.symbol.scheme"
99
+ }
111
100
  },
112
101
  {
102
+ "name": "constant.other.empty-list.schem",
103
+ "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t((\\()\\s*(\\)))\n\t\t\t\t\t",
113
104
  "captures": {
114
105
  "1": {
115
106
  "name": "punctuation.section.quoted.empty-list.scheme"
@@ -123,43 +114,39 @@
123
114
  "4": {
124
115
  "name": "punctuation.section.expression.end.scheme"
125
116
  }
126
- },
127
- "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t((\\()\\s*(\\)))\n\t\t\t\t\t",
128
- "name": "constant.other.empty-list.schem"
117
+ }
129
118
  },
130
119
  {
131
- "begin": "(')\\s*",
132
- "beginCaptures": {
133
- "1": {
134
- "name": "punctuation.section.quoted.scheme"
135
- }
136
- },
137
- "comment": "quoted double-quoted string or s-expression",
138
- "end": "(?=[\\s()])|(?<=\\n)",
139
120
  "name": "string.other.quoted-object.scheme",
121
+ "begin": "(')\\s*",
122
+ "end": "(?=[\\s()])|(?\u003c=\\n)",
140
123
  "patterns": [
141
124
  {
142
125
  "include": "#quoted"
143
126
  }
144
- ]
127
+ ],
128
+ "beginCaptures": {
129
+ "1": {
130
+ "name": "punctuation.section.quoted.scheme"
131
+ }
132
+ }
145
133
  }
146
134
  ]
147
135
  },
148
136
  "quote-sexp": {
149
- "begin": "(?<=\\()\\s*(quote)\\b\\s*",
150
- "beginCaptures": {
151
- "1": {
152
- "name": "keyword.control.quote.scheme"
153
- }
154
- },
155
- "comment": "\n\t\t\t\tSomething quoted with (quote «thing»). In this case «thing»\n\t\t\t\twill not be evaluated, so we are considering it a string.\n\t\t\t",
156
137
  "contentName": "string.other.quote.scheme",
157
- "end": "(?=[\\s)])|(?<=\\n)",
138
+ "begin": "(?\u003c=\\()\\s*(quote)\\b\\s*",
139
+ "end": "(?=[\\s)])|(?\u003c=\\n)",
158
140
  "patterns": [
159
141
  {
160
142
  "include": "#quoted"
161
143
  }
162
- ]
144
+ ],
145
+ "beginCaptures": {
146
+ "1": {
147
+ "name": "keyword.control.quote.scheme"
148
+ }
149
+ }
163
150
  },
164
151
  "quoted": {
165
152
  "patterns": [
@@ -167,24 +154,24 @@
167
154
  "include": "#string"
168
155
  },
169
156
  {
157
+ "name": "meta.expression.scheme",
170
158
  "begin": "(\\()",
159
+ "end": "(\\))",
160
+ "patterns": [
161
+ {
162
+ "include": "#quoted"
163
+ }
164
+ ],
171
165
  "beginCaptures": {
172
166
  "1": {
173
167
  "name": "punctuation.section.expression.begin.scheme"
174
168
  }
175
169
  },
176
- "end": "(\\))",
177
170
  "endCaptures": {
178
171
  "1": {
179
172
  "name": "punctuation.section.expression.end.scheme"
180
173
  }
181
- },
182
- "name": "meta.expression.scheme",
183
- "patterns": [
184
- {
185
- "include": "#quoted"
186
- }
187
- ]
174
+ }
188
175
  },
189
176
  {
190
177
  "include": "#quote"
@@ -195,28 +182,28 @@
195
182
  ]
196
183
  },
197
184
  "sexp": {
185
+ "name": "meta.expression.scheme",
198
186
  "begin": "(\\()",
199
- "beginCaptures": {
200
- "1": {
201
- "name": "punctuation.section.expression.begin.scheme"
202
- }
203
- },
204
187
  "end": "(\\))(\\n)?",
205
- "endCaptures": {
206
- "1": {
207
- "name": "punctuation.section.expression.end.scheme"
208
- },
209
- "2": {
210
- "name": "meta.after-expression.scheme"
211
- }
212
- },
213
- "name": "meta.expression.scheme",
214
188
  "patterns": [
215
189
  {
216
190
  "include": "#comment"
217
191
  },
218
192
  {
219
- "begin": "(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(define)\\s+ # define\n\t\t\t\t\t\t(\\() # list of parameters\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t\t ((\\s+\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t )*\n\t\t\t\t\t\t )\\s*\n\t\t\t\t\t\t(\\))\n\t\t\t\t\t",
193
+ "name": "meta.declaration.procedure.scheme",
194
+ "begin": "(?x)\n\t\t\t\t\t\t(?\u003c=\\() # preceded by (\n\t\t\t\t\t\t(define)\\s+ # define\n\t\t\t\t\t\t(\\() # list of parameters\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%\u0026*+-./:\u003c=\u003e?@^_~]*)\n\t\t\t\t\t\t ((\\s+\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%\u0026*+-./:\u003c=\u003e?@^_~]*|[._])\n\t\t\t\t\t\t )*\n\t\t\t\t\t\t )\\s*\n\t\t\t\t\t\t(\\))\n\t\t\t\t\t",
195
+ "end": "(?=\\))",
196
+ "patterns": [
197
+ {
198
+ "include": "#comment"
199
+ },
200
+ {
201
+ "include": "#sexp"
202
+ },
203
+ {
204
+ "include": "#illegal"
205
+ }
206
+ ],
220
207
  "captures": {
221
208
  "1": {
222
209
  "name": "keyword.control.scheme"
@@ -233,9 +220,12 @@
233
220
  "7": {
234
221
  "name": "punctuation.definition.function.scheme"
235
222
  }
236
- },
237
- "end": "(?=\\))",
223
+ }
224
+ },
225
+ {
238
226
  "name": "meta.declaration.procedure.scheme",
227
+ "begin": "(?x)\n\t\t\t\t\t\t(?\u003c=\\() # preceded by (\n\t\t\t\t\t\t(lambda)\\s+\n\t\t\t\t\t\t(\\() # opening paren\n\t\t\t\t\t\t((?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%\u0026*+-./:\u003c=\u003e?@^_~]*|[._])\n\t\t\t\t\t\t \\s+\n\t\t\t\t\t\t)*(?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%\u0026*+-./:\u003c=\u003e?@^_~]*|[._])\n\t\t\t\t\t\t)?)\n\t\t\t\t\t\t(\\)) # closing paren\n\t\t\t\t\t",
228
+ "end": "(?=\\))",
239
229
  "patterns": [
240
230
  {
241
231
  "include": "#comment"
@@ -246,10 +236,7 @@
246
236
  {
247
237
  "include": "#illegal"
248
238
  }
249
- ]
250
- },
251
- {
252
- "begin": "(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(lambda)\\s+\n\t\t\t\t\t\t(\\() # opening paren\n\t\t\t\t\t\t((?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t \\s+\n\t\t\t\t\t\t)*(?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t)?)\n\t\t\t\t\t\t(\\)) # closing paren\n\t\t\t\t\t",
239
+ ],
253
240
  "captures": {
254
241
  "1": {
255
242
  "name": "keyword.control.scheme"
@@ -263,10 +250,12 @@
263
250
  "6": {
264
251
  "name": "punctuation.definition.variable.scheme"
265
252
  }
266
- },
267
- "comment": "\n\t\t\t\t\t\tNot sure this one is quite correct. That \\s* is\n\t\t\t\t\t\tparticularly troubling\n\t\t\t\t\t",
253
+ }
254
+ },
255
+ {
256
+ "name": "meta.declaration.variable.scheme",
257
+ "begin": "(?\u003c=\\()(define)\\s([[:alnum:]][[:alnum:]!$%\u0026*+-./:\u003c=\u003e?@^_~]*)\\s*.*?",
268
258
  "end": "(?=\\))",
269
- "name": "meta.declaration.procedure.scheme",
270
259
  "patterns": [
271
260
  {
272
261
  "include": "#comment"
@@ -277,10 +266,7 @@
277
266
  {
278
267
  "include": "#illegal"
279
268
  }
280
- ]
281
- },
282
- {
283
- "begin": "(?<=\\()(define)\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\s*.*?",
269
+ ],
284
270
  "captures": {
285
271
  "1": {
286
272
  "name": "keyword.control.scheme"
@@ -288,20 +274,7 @@
288
274
  "2": {
289
275
  "name": "variable.other.scheme"
290
276
  }
291
- },
292
- "end": "(?=\\))",
293
- "name": "meta.declaration.variable.scheme",
294
- "patterns": [
295
- {
296
- "include": "#comment"
297
- },
298
- {
299
- "include": "#sexp"
300
- },
301
- {
302
- "include": "#illegal"
303
- }
304
- ]
277
+ }
305
278
  },
306
279
  {
307
280
  "include": "#quote-sexp"
@@ -319,21 +292,20 @@
319
292
  "include": "#constants"
320
293
  },
321
294
  {
322
- "match": "(?<=[\\(\\s])(#\\\\)(space|newline|tab)(?=[\\s\\)])",
323
- "name": "constant.character.named.scheme"
295
+ "name": "constant.character.named.scheme",
296
+ "match": "(?\u003c=[\\(\\s])(#\\\\)(space|newline|tab)(?=[\\s\\)])"
324
297
  },
325
298
  {
326
- "match": "(?<=[\\(\\s])(#\\\\)x[0-9A-F]{2,4}(?=[\\s\\)])",
327
- "name": "constant.character.hex-literal.scheme"
299
+ "name": "constant.character.hex-literal.scheme",
300
+ "match": "(?\u003c=[\\(\\s])(#\\\\)x[0-9A-F]{2,4}(?=[\\s\\)])"
328
301
  },
329
302
  {
330
- "match": "(?<=[\\(\\s])(#\\\\).(?=[\\s\\)])",
331
- "name": "constant.character.escape.scheme"
303
+ "name": "constant.character.escape.scheme",
304
+ "match": "(?\u003c=[\\(\\s])(#\\\\).(?=[\\s\\)])"
332
305
  },
333
306
  {
334
- "comment": "\n\t\t\t\t\t\tthe . in (a . b) which conses together two elements\n\t\t\t\t\t\ta and b. (a b c) == (a . (b . (c . nil)))\n\t\t\t\t\t",
335
- "match": "(?<=[ ()])\\.(?=[ ()])",
336
- "name": "punctuation.separator.cons.scheme"
307
+ "name": "punctuation.separator.cons.scheme",
308
+ "match": "(?\u003c=[ ()])\\.(?=[ ()])"
337
309
  },
338
310
  {
339
311
  "include": "#sexp"
@@ -341,30 +313,41 @@
341
313
  {
342
314
  "include": "#illegal"
343
315
  }
344
- ]
316
+ ],
317
+ "beginCaptures": {
318
+ "1": {
319
+ "name": "punctuation.section.expression.begin.scheme"
320
+ }
321
+ },
322
+ "endCaptures": {
323
+ "1": {
324
+ "name": "punctuation.section.expression.end.scheme"
325
+ },
326
+ "2": {
327
+ "name": "meta.after-expression.scheme"
328
+ }
329
+ }
345
330
  },
346
331
  "string": {
332
+ "name": "string.quoted.double.scheme",
347
333
  "begin": "(\")",
334
+ "end": "(\")",
335
+ "patterns": [
336
+ {
337
+ "name": "constant.character.escape.scheme",
338
+ "match": "\\\\."
339
+ }
340
+ ],
348
341
  "beginCaptures": {
349
342
  "1": {
350
343
  "name": "punctuation.definition.string.begin.scheme"
351
344
  }
352
345
  },
353
- "end": "(\")",
354
346
  "endCaptures": {
355
347
  "1": {
356
348
  "name": "punctuation.definition.string.end.scheme"
357
349
  }
358
- },
359
- "name": "string.quoted.double.scheme",
360
- "patterns": [
361
- {
362
- "match": "\\\\.",
363
- "name": "constant.character.escape.scheme"
364
- }
365
- ]
350
+ }
366
351
  }
367
- },
368
- "scopeName": "source.scheme",
369
- "uuid": "3EC2CFD0-909C-4692-AC29-1A60ADBC161E"
370
- }
352
+ }
353
+ }
@@ -1,84 +1,80 @@
1
1
  {
2
- "fileTypes": [
3
- "sce",
4
- "sci",
5
- "tst",
6
- "dem"
7
- ],
8
2
  "name": "Scilab",
3
+ "scopeName": "source.scilab",
9
4
  "patterns": [
10
5
  {
11
6
  "begin": "(^[ \\t]+)?(?=//)",
12
- "beginCaptures": {
13
- "1": {
14
- "name": "punctuation.whitespace.comment.leading.scilab"
15
- }
16
- },
17
7
  "end": "(?!\\G)",
18
8
  "patterns": [
19
9
  {
10
+ "name": "comment.line.double-slash.scilab",
20
11
  "begin": "//",
12
+ "end": "\\n",
21
13
  "beginCaptures": {
22
14
  "0": {
23
15
  "name": "punctuation.definition.comment.scilab"
24
16
  }
25
- },
26
- "end": "\\n",
27
- "name": "comment.line.double-slash.scilab"
17
+ }
28
18
  }
29
- ]
19
+ ],
20
+ "beginCaptures": {
21
+ "1": {
22
+ "name": "punctuation.whitespace.comment.leading.scilab"
23
+ }
24
+ }
30
25
  },
31
26
  {
32
- "match": "\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?\\b",
33
- "name": "constant.numeric.scilab"
27
+ "name": "constant.numeric.scilab",
28
+ "match": "\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?\\b"
34
29
  },
35
30
  {
36
- "match": "(%inf|%i|%pi|%eps|%e|%nan|%s|%t|%f)\\b",
37
- "name": "support.constant.scilab"
31
+ "name": "support.constant.scilab",
32
+ "match": "(%inf|%i|%pi|%eps|%e|%nan|%s|%t|%f)\\b"
38
33
  },
39
34
  {
35
+ "name": "string.quoted.double.scilab",
40
36
  "begin": "\"",
37
+ "end": "\"(?!\")",
38
+ "patterns": [
39
+ {
40
+ "name": "constant.character.escape.scilab",
41
+ "match": "''|\"\""
42
+ }
43
+ ],
41
44
  "beginCaptures": {
42
45
  "0": {
43
46
  "name": "punctuation.definition.string.begin.scilab"
44
47
  }
45
48
  },
46
- "end": "\"(?!\")",
47
49
  "endCaptures": {
48
50
  "0": {
49
51
  "name": "punctuation.definition.string.end.scilab"
50
52
  }
51
- },
52
- "name": "string.quoted.double.scilab",
53
+ }
54
+ },
55
+ {
56
+ "name": "string.quoted.single.scilab",
57
+ "begin": "(?\u003c![\\w\\]\\)])'",
58
+ "end": "'(?!')",
53
59
  "patterns": [
54
60
  {
55
- "match": "''|\"\"",
56
- "name": "constant.character.escape.scilab"
61
+ "name": "constant.character.escape.scilab",
62
+ "match": "''|\"\""
57
63
  }
58
- ]
59
- },
60
- {
61
- "begin": "(?<![\\w\\]\\)])'",
64
+ ],
62
65
  "beginCaptures": {
63
66
  "0": {
64
67
  "name": "punctuation.definition.string.begin.scilab"
65
68
  }
66
69
  },
67
- "end": "'(?!')",
68
70
  "endCaptures": {
69
71
  "0": {
70
72
  "name": "punctuation.definition.string.end.scilab"
71
73
  }
72
- },
73
- "name": "string.quoted.single.scilab",
74
- "patterns": [
75
- {
76
- "match": "''|\"\"",
77
- "name": "constant.character.escape.scilab"
78
- }
79
- ]
74
+ }
80
75
  },
81
76
  {
77
+ "match": "\\b(function)\\s+(?:[^=]+=\\s*)?(\\w+)(?:\\s*\\(.*\\))?",
82
78
  "captures": {
83
79
  "1": {
84
80
  "name": "keyword.control.scilab"
@@ -86,18 +82,15 @@
86
82
  "2": {
87
83
  "name": "entity.name.function.scilab"
88
84
  }
89
- },
90
- "match": "\\b(function)\\s+(?:[^=]+=\\s*)?(\\w+)(?:\\s*\\(.*\\))?"
85
+ }
91
86
  },
92
87
  {
93
- "match": "\\b(if|then|else|elseif|while|for|function|end|endfunction|return|select|case|break|global)\\b",
94
- "name": "keyword.control.scilab"
88
+ "name": "keyword.control.scilab",
89
+ "match": "\\b(if|then|else|elseif|while|for|function|end|endfunction|return|select|case|break|global)\\b"
95
90
  },
96
91
  {
97
- "match": "\\.\\.\\.\\s*$",
98
- "name": "punctuation.separator.continuation.scilab"
92
+ "name": "punctuation.separator.continuation.scilab",
93
+ "match": "\\.\\.\\.\\s*$"
99
94
  }
100
- ],
101
- "scopeName": "source.scilab",
102
- "uuid": "14374AA3-A329-4623-8DFA-1ACC2CE222B9"
103
- }
95
+ ]
96
+ }