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,24 +1,19 @@
1
1
  {
2
- "comment": "Specificities of Fortran >= 90",
3
- "fileTypes": [
4
- "f90",
5
- "F90",
6
- "f95",
7
- "F95",
8
- "f03",
9
- "F03",
10
- "f08",
11
- "F08"
12
- ],
13
- "firstLineMatch": "(?i)-[*]- mode: f90 -[*]-",
14
- "keyEquivalent": "^~F",
15
2
  "name": "Fortran - Modern",
3
+ "scopeName": "source.fortran.modern",
16
4
  "patterns": [
17
5
  {
18
6
  "include": "source.fortran"
19
7
  },
20
8
  {
9
+ "name": "meta.function.interface.operator.fortran.modern",
21
10
  "begin": "(?x:\t\t\t\t\t# extended mode\n\t\t\t\t\t^\n\t\t\t\t\t\\s*\t\t\t\t\t# start of line and possibly some space\n\t\t\t\t\t(?i:(interface))\t\t# 1: word interface\n\t\t\t\t\t\\s+\t\t\t\t\t# some space\n\t\t\t\t\t(?i:(operator|assignment))\t\t# 2: the words operator or assignment\n\t\t\t\t\t\\(\t\t\t\t\t# opening parenthesis\n\t\t\t\t\t((\\.[a-zA-Z0-9_]+\\.)|[\\+\\-\\=\\/\\*]+)\t# 3: an operator\n\t\t\t\t\t\n\t\t\t\t\t\\)\t\t\t\t\t# closing parenthesis\n\t\t\t\t\t)",
11
+ "end": "(?x:\n\t\t\t\t\t((?i:end))\t\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t\t# possibly some space\n\t\t\t\t\t((?i:interface)?) \t\t# 2: possibly interface\n\t\t\t\t\t)",
12
+ "patterns": [
13
+ {
14
+ "include": "$self"
15
+ }
16
+ ],
22
17
  "beginCaptures": {
23
18
  "1": {
24
19
  "name": "storage.type.function.fortran"
@@ -30,8 +25,6 @@
30
25
  "name": "keyword.operator.fortran"
31
26
  }
32
27
  },
33
- "comment": "Interface declaration of operator/assignments",
34
- "end": "(?x:\n\t\t\t\t\t((?i:end))\t\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t\t# possibly some space\n\t\t\t\t\t((?i:interface)?) \t\t# 2: possibly interface\n\t\t\t\t\t)",
35
28
  "endCaptures": {
36
29
  "1": {
37
30
  "name": "keyword.other.fortran"
@@ -39,16 +32,17 @@
39
32
  "2": {
40
33
  "name": "storage.type.function.fortran"
41
34
  }
42
- },
43
- "name": "meta.function.interface.operator.fortran.modern",
35
+ }
36
+ },
37
+ {
38
+ "name": "meta.function.interface.fortran.modern",
39
+ "begin": "(?x:\t\t\t\t\t# extended mode\n\t\t\t\t\t^\n\t\t\t\t\t\\s*\t\t\t\t\t# start of line and possibly some space\n\t\t\t\t\t(?i:(interface))\t\t# 1: word interface\n\t\t\t\t\t\\s+\t\t\t\t\t# some space\n\t\t\t\t\t([A-Za-z_][A-Za-z0-9_]*)\t# 1: name\n\t\t\t\t\t)",
40
+ "end": "(?x:\t\t\t\t# extended mode\n\t\t\t\t\t((?i:end))\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t# possibly some space\n\t\t\t\t\t((?i:interface)?) \t# 2: possibly interface\n\t\t\t\t\t)",
44
41
  "patterns": [
45
42
  {
46
43
  "include": "$self"
47
44
  }
48
- ]
49
- },
50
- {
51
- "begin": "(?x:\t\t\t\t\t# extended mode\n\t\t\t\t\t^\n\t\t\t\t\t\\s*\t\t\t\t\t# start of line and possibly some space\n\t\t\t\t\t(?i:(interface))\t\t# 1: word interface\n\t\t\t\t\t\\s+\t\t\t\t\t# some space\n\t\t\t\t\t([A-Za-z_][A-Za-z0-9_]*)\t# 1: name\n\t\t\t\t\t)",
45
+ ],
52
46
  "beginCaptures": {
53
47
  "1": {
54
48
  "name": "storage.type.function.fortran"
@@ -57,8 +51,6 @@
57
51
  "name": "entity.name.function.fortran"
58
52
  }
59
53
  },
60
- "comment": "Interface declaration of function/subroutines",
61
- "end": "(?x:\t\t\t\t# extended mode\n\t\t\t\t\t((?i:end))\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t# possibly some space\n\t\t\t\t\t((?i:interface)?) \t# 2: possibly interface\n\t\t\t\t\t)",
62
54
  "endCaptures": {
63
55
  "1": {
64
56
  "name": "keyword.other.fortran"
@@ -66,16 +58,17 @@
66
58
  "2": {
67
59
  "name": "storage.type.function.fortran"
68
60
  }
69
- },
70
- "name": "meta.function.interface.fortran.modern",
61
+ }
62
+ },
63
+ {
64
+ "name": "meta.type-definition.fortran.modern",
65
+ "begin": "(?x:\t\t\t# extended mode\n\t\t\t\t\t^\\s*\t\t\t# begining of line and some space\n\t\t\t\t\t(?i:(type))\t# 1: word type\n\t\t\t\t\t\\s+\t\t\t# some space\n\t\t\t\t\t([a-zA-Z_][a-zA-Z0-9_]*)\t# 2: type name\n\t\t\t\t\t)",
66
+ "end": "(?x:\n\t\t\t\t\t((?i:end))\t\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t\t# possibly some space\n\t\t\t\t\t(?i:(type))? \t\t\t# 2: possibly the word type\n\t\t\t\t\t(\\s+[A-Za-z_][A-Za-z0-9_]*)?\t# 3: possibly the name\n\t\t\t\t\t)",
71
67
  "patterns": [
72
68
  {
73
69
  "include": "$self"
74
70
  }
75
- ]
76
- },
77
- {
78
- "begin": "(?x:\t\t\t# extended mode\n\t\t\t\t\t^\\s*\t\t\t# begining of line and some space\n\t\t\t\t\t(?i:(type))\t# 1: word type\n\t\t\t\t\t\\s+\t\t\t# some space\n\t\t\t\t\t([a-zA-Z_][a-zA-Z0-9_]*)\t# 2: type name\n\t\t\t\t\t)",
71
+ ],
79
72
  "beginCaptures": {
80
73
  "1": {
81
74
  "name": "storage.type.fortran.modern"
@@ -84,8 +77,6 @@
84
77
  "name": "entity.name.type.fortran.modern"
85
78
  }
86
79
  },
87
- "comment": "Type definition",
88
- "end": "(?x:\n\t\t\t\t\t((?i:end))\t\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t\t# possibly some space\n\t\t\t\t\t(?i:(type))? \t\t\t# 2: possibly the word type\n\t\t\t\t\t(\\s+[A-Za-z_][A-Za-z0-9_]*)?\t# 3: possibly the name\n\t\t\t\t\t)",
89
80
  "endCaptures": {
90
81
  "1": {
91
82
  "name": "keyword.other.fortran"
@@ -96,131 +87,114 @@
96
87
  "3": {
97
88
  "name": "entity.name.type.end.fortran.modern"
98
89
  }
99
- },
100
- "name": "meta.type-definition.fortran.modern",
101
- "patterns": [
102
- {
103
- "include": "$self"
104
- }
105
- ]
90
+ }
106
91
  },
107
92
  {
108
93
  "begin": "(^[ \\t]+)?(?=!-)",
109
- "beginCaptures": {
110
- "1": {
111
- "name": "punctuation.whitespace.comment.leading.ruby"
112
- }
113
- },
114
94
  "end": "(?!\\G)",
115
95
  "patterns": [
116
96
  {
97
+ "name": "comment.line.exclamation.mark.fortran.modern",
117
98
  "begin": "!-",
118
- "beginCaptures": {
119
- "0": {
120
- "name": "punctuation.definition.comment.fortran"
121
- }
122
- },
123
99
  "end": "\\n",
124
- "name": "comment.line.exclamation.mark.fortran.modern",
125
100
  "patterns": [
126
101
  {
127
102
  "match": "\\\\\\s*\\n"
128
103
  }
129
- ]
104
+ ],
105
+ "beginCaptures": {
106
+ "0": {
107
+ "name": "punctuation.definition.comment.fortran"
108
+ }
109
+ }
130
110
  }
131
- ]
132
- },
133
- {
134
- "begin": "(^[ \\t]+)?(?=!)",
111
+ ],
135
112
  "beginCaptures": {
136
113
  "1": {
137
114
  "name": "punctuation.whitespace.comment.leading.ruby"
138
115
  }
139
- },
116
+ }
117
+ },
118
+ {
119
+ "begin": "(^[ \\t]+)?(?=!)",
140
120
  "end": "(?!\\G)",
141
121
  "patterns": [
142
122
  {
123
+ "name": "comment.line.exclamation.fortran.modern",
143
124
  "begin": "!",
144
- "beginCaptures": {
145
- "0": {
146
- "name": "punctuation.definition.comment.fortran"
147
- }
148
- },
149
125
  "end": "\\n",
150
- "name": "comment.line.exclamation.fortran.modern",
151
126
  "patterns": [
152
127
  {
153
128
  "match": "\\\\\\s*\\n"
154
129
  }
155
- ]
130
+ ],
131
+ "beginCaptures": {
132
+ "0": {
133
+ "name": "punctuation.definition.comment.fortran"
134
+ }
135
+ }
156
136
  }
157
- ]
137
+ ],
138
+ "beginCaptures": {
139
+ "1": {
140
+ "name": "punctuation.whitespace.comment.leading.ruby"
141
+ }
142
+ }
158
143
  },
159
144
  {
160
- "comment": "statements controling the flow of the program",
161
- "match": "\\b(?i:(select\\s+case|case(\\s+default)?|end\\s+select|use|(end\\s+)?forall))\\b",
162
- "name": "keyword.control.fortran.modern"
145
+ "name": "keyword.control.fortran.modern",
146
+ "match": "\\b(?i:(select\\s+case|case(\\s+default)?|end\\s+select|use|(end\\s+)?forall))\\b"
163
147
  },
164
148
  {
165
- "comment": "input/output instrinsics",
166
- "match": "\\b(?i:(access|action|advance|append|apostrophe|asis|blank|delete|delim|direct|end|eor|err|exist|file|fmt|form|formatted|iolength|iostat|keep|name|named|nextrec|new|nml|no|null|number|old|opened|pad|position|quote|read|readwrite|rec|recl|replace|scratch|sequential|size|status|undefined|unformatted|unit|unknown|write|yes|zero|namelist)(?=\\())",
167
- "name": "keyword.control.io.fortran.modern"
149
+ "name": "keyword.control.io.fortran.modern",
150
+ "match": "\\b(?i:(access|action|advance|append|apostrophe|asis|blank|delete|delim|direct|end|eor|err|exist|file|fmt|form|formatted|iolength|iostat|keep|name|named|nextrec|new|nml|no|null|number|old|opened|pad|position|quote|read|readwrite|rec|recl|replace|scratch|sequential|size|status|undefined|unformatted|unit|unknown|write|yes|zero|namelist)(?=\\())"
168
151
  },
169
152
  {
170
- "comment": "logical operators in symbolic format",
171
- "match": "\\b(\\=\\=|\\/\\=|\\>\\=|\\>|\\<|\\<\\=)\\b",
172
- "name": "keyword.operator.logical.fortran.modern"
153
+ "name": "keyword.operator.logical.fortran.modern",
154
+ "match": "\\b(\\=\\=|\\/\\=|\\\u003e\\=|\\\u003e|\\\u003c|\\\u003c\\=)\\b"
173
155
  },
174
156
  {
175
- "comment": "operators",
176
- "match": "(\\%|\\=\\>)",
177
- "name": "keyword.operator.fortran.modern"
157
+ "name": "keyword.operator.fortran.modern",
158
+ "match": "(\\%|\\=\\\u003e)"
178
159
  },
179
160
  {
180
- "comment": "numeric instrinsics",
181
- "match": "\\b(?i:(ceiling|floor|modulo)(?=\\())",
182
- "name": "keyword.other.instrinsic.numeric.fortran.modern"
161
+ "name": "keyword.other.instrinsic.numeric.fortran.modern",
162
+ "match": "\\b(?i:(ceiling|floor|modulo)(?=\\())"
183
163
  },
184
164
  {
185
- "comment": "matrix/vector/array instrinsics",
186
- "match": "\\b(?i:(allocate|allocated|deallocate)(?=\\())",
187
- "name": "keyword.other.instrinsic.array.fortran.modern"
165
+ "name": "keyword.other.instrinsic.array.fortran.modern",
166
+ "match": "\\b(?i:(allocate|allocated|deallocate)(?=\\())"
188
167
  },
189
168
  {
190
- "comment": "pointer instrinsics",
191
- "match": "\\b(?i:(associated)(?=\\())",
192
- "name": "keyword.other.instrinsic.pointer.fortran.modern"
169
+ "name": "keyword.other.instrinsic.pointer.fortran.modern",
170
+ "match": "\\b(?i:(associated)(?=\\())"
193
171
  },
194
172
  {
195
- "comment": "programming units",
196
- "match": "\\b(?i:((end\\s*)?(interface|procedure|module)))\\b",
197
- "name": "keyword.other.programming-units.fortran.modern"
173
+ "name": "keyword.other.programming-units.fortran.modern",
174
+ "match": "\\b(?i:((end\\s*)?(interface|procedure|module)))\\b"
198
175
  },
199
176
  {
177
+ "name": "meta.specification.fortran.modern",
200
178
  "begin": "\\b(?i:(type(?=\\s*\\()))\\b(?=.*::)",
201
- "beginCaptures": {
202
- "1": {
203
- "name": "storage.type.fortran.modern"
204
- }
205
- },
206
- "comment": "Line of type specification",
207
179
  "end": "(?=!)|$",
208
- "name": "meta.specification.fortran.modern",
209
180
  "patterns": [
210
181
  {
211
182
  "include": "$base"
212
183
  }
213
- ]
184
+ ],
185
+ "beginCaptures": {
186
+ "1": {
187
+ "name": "storage.type.fortran.modern"
188
+ }
189
+ }
214
190
  },
215
191
  {
216
- "match": "\\b(?i:(type(?=\\s*\\()))\\b",
217
- "name": "storage.type.fortran.modern"
192
+ "name": "storage.type.fortran.modern",
193
+ "match": "\\b(?i:(type(?=\\s*\\()))\\b"
218
194
  },
219
195
  {
220
- "match": "\\b(?i:(optional|recursive|pointer|allocatable|target|private|public))\\b",
221
- "name": "storage.modifier.fortran.modern"
196
+ "name": "storage.modifier.fortran.modern",
197
+ "match": "\\b(?i:(optional|recursive|pointer|allocatable|target|private|public))\\b"
222
198
  }
223
- ],
224
- "scopeName": "source.fortran.modern",
225
- "uuid": "016CA1B6-8351-4B17-9215-29C275D5D973"
226
- }
199
+ ]
200
+ }
@@ -1,14 +1,9 @@
1
1
  {
2
2
  "name": "fsharp.fsi",
3
3
  "scopeName": "source.fsharp.fsi",
4
- "fileTypes": [
5
- "fsi"
6
- ],
7
- "foldingStartMarker": "",
8
- "foldingStopMarker": "",
9
4
  "patterns": [
10
5
  {
11
6
  "include": "source.fsharp"
12
7
  }
13
8
  ]
14
- }
9
+ }
@@ -1,14 +1,9 @@
1
1
  {
2
2
  "name": "fsharp.fsl",
3
3
  "scopeName": "source.fsharp.fsl",
4
- "fileTypes": [
5
- "fsl"
6
- ],
7
- "foldingStartMarker": "",
8
- "foldingStopMarker": "",
9
4
  "patterns": [
10
5
  {
11
6
  "include": "source.fsharp"
12
7
  }
13
8
  ]
14
- }
9
+ }
@@ -1,11 +1,6 @@
1
1
  {
2
2
  "name": "fsharp.fsx",
3
3
  "scopeName": "source.fsharp.fsx",
4
- "fileTypes": [
5
- "fsx"
6
- ],
7
- "foldingStartMarker": "",
8
- "foldingStopMarker": "",
9
4
  "patterns": [
10
5
  {
11
6
  "include": "source.fsharp"
@@ -15,4 +10,4 @@
15
10
  "match": "^#(load|r|I|time)"
16
11
  }
17
12
  ]
18
- }
13
+ }
@@ -1,11 +1,6 @@
1
1
  {
2
2
  "name": "fsharp",
3
3
  "scopeName": "source.fsharp",
4
- "fileTypes": [
5
- "fs"
6
- ],
7
- "foldingStartMarker": "",
8
- "foldingStopMarker": "",
9
4
  "patterns": [
10
5
  {
11
6
  "include": "#comments"
@@ -59,7 +54,12 @@
59
54
  {
60
55
  "name": "function.anonymous",
61
56
  "begin": "\\b(fun)\\b",
62
- "end": "[(->)\\n]",
57
+ "end": "[(-\u003e)\\n]",
58
+ "patterns": [
59
+ {
60
+ "include": "#variables"
61
+ }
62
+ ],
63
63
  "beginCaptures": {
64
64
  "1": {
65
65
  "name": "keyword.other.function-definition.fsharp"
@@ -69,12 +69,7 @@
69
69
  "1": {
70
70
  "name": "keyword.other.fsharp"
71
71
  }
72
- },
73
- "patterns": [
74
- {
75
- "include": "#variables"
76
- }
77
- ]
72
+ }
78
73
  }
79
74
  ]
80
75
  },
@@ -82,8 +77,8 @@
82
77
  "patterns": [
83
78
  {
84
79
  "name": "support.function.attribute.fsharp",
85
- "begin": "\\[\\<",
86
- "end": "\\>\\]",
80
+ "begin": "\\[\\\u003c",
81
+ "end": "\\\u003e\\]",
87
82
  "patterns": [
88
83
  {
89
84
  "include": "$self"
@@ -92,6 +87,32 @@
92
87
  }
93
88
  ]
94
89
  },
90
+ "cexprs": {
91
+ "patterns": [
92
+ {
93
+ "name": "cexpr.fsharp",
94
+ "match": "\\b([[:alpha:]]*\\s+\\{)",
95
+ "captures": {
96
+ "1": {
97
+ "name": "keyword.other.fsharp"
98
+ }
99
+ }
100
+ }
101
+ ]
102
+ },
103
+ "chars": {
104
+ "patterns": [
105
+ {
106
+ "name": "char.fsharp",
107
+ "match": "('\\\\?.')",
108
+ "captures": {
109
+ "1": {
110
+ "name": "string.quoted.single.fsharp"
111
+ }
112
+ }
113
+ }
114
+ ]
115
+ },
95
116
  "comments": {
96
117
  "patterns": [
97
118
  {
@@ -139,8 +160,13 @@
139
160
  "patterns": [
140
161
  {
141
162
  "name": "binding.fsharp",
142
- "begin": "\\b(val mutable|val|let mutable|let inline|let|member|static member|override|let!)(\\s+rec|mutable)?(\\s+private|internal|public)?\\s+(\\([^\\s-]*\\)|[_[:alpha:]]([_[:alpha:]0-9,\\.]|(?<=,)\\s)*)",
163
+ "begin": "\\b(val mutable|val|let mutable|let inline|let|member|static member|override|let!)(\\s+rec|mutable)?(\\s+private|internal|public)?\\s+(\\([^\\s-]*\\)|[_[:alpha:]]([_[:alpha:]0-9,\\.]|(?\u003c=,)\\s)*)",
143
164
  "end": "((``.*``)|(with)|=|$)",
165
+ "patterns": [
166
+ {
167
+ "include": "#variables"
168
+ }
169
+ ],
144
170
  "beginCaptures": {
145
171
  "1": {
146
172
  "name": "keyword.other.binding.fsharp"
@@ -165,12 +191,26 @@
165
191
  "3": {
166
192
  "name": "keyword.other.fsharp"
167
193
  }
168
- },
169
- "patterns": [
170
- {
171
- "include": "#variables"
194
+ }
195
+ }
196
+ ]
197
+ },
198
+ "double_tick": {
199
+ "patterns": [
200
+ {
201
+ "name": "variable.other.binding.fsharp",
202
+ "match": "(``)(.*)(``)",
203
+ "captures": {
204
+ "1": {
205
+ "name": "string.quoted.single.fsharp"
206
+ },
207
+ "2": {
208
+ "name": "variable.other.binding.fsharp"
209
+ },
210
+ "3": {
211
+ "name": "string.quoted.single.fsharp"
172
212
  }
173
- ]
213
+ }
174
214
  }
175
215
  ]
176
216
  },
@@ -187,7 +227,7 @@
187
227
  },
188
228
  {
189
229
  "name": "keyword.other.fsharp",
190
- "match": "(&&&|\\|\\|\\||\\^\\^\\^|~~~|<<<|>>>|\\|>|\\->|\\<\\-|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|{|}|\\||_|\\.\\.|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\<\\<)"
230
+ "match": "(\u0026\u0026\u0026|\\|\\|\\||\\^\\^\\^|~~~|\u003c\u003c\u003c|\u003e\u003e\u003e|\\|\u003e|\\-\u003e|\\\u003c\\-|:\u003e|:\\?\u003e|:|\\[|\\]|\\;|\u003c\u003e|=|@|\\|\\||\u0026\u0026|{|}|\\||_|\\.\\.|\\+|\\-|\\*|\\/|\\^|\\!|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003c|\\\u003c\\=|\\\u003c\\\u003c)"
191
231
  }
192
232
  ]
193
233
  },
@@ -197,6 +237,20 @@
197
237
  "name": "entity.name.section.fsharp",
198
238
  "begin": "\\b(namespace|module)(\\s+public|internal|private)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)",
199
239
  "end": "(\\s|$)",
240
+ "patterns": [
241
+ {
242
+ "name": "entity.name.section.fsharp",
243
+ "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)",
244
+ "captures": {
245
+ "1": {
246
+ "name": "punctuation.separator.namespace-reference.fsharp"
247
+ },
248
+ "2": {
249
+ "name": "entity.name.section.fsharp"
250
+ }
251
+ }
252
+ }
253
+ ],
200
254
  "beginCaptures": {
201
255
  "1": {
202
256
  "name": "keyword.other.fsharp"
@@ -207,11 +261,16 @@
207
261
  "3": {
208
262
  "name": "entity.name.section.fsharp"
209
263
  }
210
- },
264
+ }
265
+ },
266
+ {
267
+ "name": "namespace.open.fsharp",
268
+ "begin": "\\b(open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",
269
+ "end": "(\\s|$)",
211
270
  "patterns": [
212
271
  {
213
272
  "name": "entity.name.section.fsharp",
214
- "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)",
273
+ "match": "(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",
215
274
  "captures": {
216
275
  "1": {
217
276
  "name": "punctuation.separator.namespace-reference.fsharp"
@@ -221,12 +280,7 @@
221
280
  }
222
281
  }
223
282
  }
224
- ]
225
- },
226
- {
227
- "name": "namespace.open.fsharp",
228
- "begin": "\\b(open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",
229
- "end": "(\\s|$)",
283
+ ],
230
284
  "beginCaptures": {
231
285
  "1": {
232
286
  "name": "keyword.other.fsharp"
@@ -234,11 +288,16 @@
234
288
  "2": {
235
289
  "name": "entity.name.section.fsharp"
236
290
  }
237
- },
291
+ }
292
+ },
293
+ {
294
+ "name": "namespace.alias.fsharp",
295
+ "begin": "^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)",
296
+ "end": "(\\s|$)",
238
297
  "patterns": [
239
298
  {
240
299
  "name": "entity.name.section.fsharp",
241
- "match": "(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",
300
+ "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)",
242
301
  "captures": {
243
302
  "1": {
244
303
  "name": "punctuation.separator.namespace-reference.fsharp"
@@ -248,12 +307,7 @@
248
307
  }
249
308
  }
250
309
  }
251
- ]
252
- },
253
- {
254
- "name": "namespace.alias.fsharp",
255
- "begin": "^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)",
256
- "end": "(\\s|$)",
310
+ ],
257
311
  "beginCaptures": {
258
312
  "1": {
259
313
  "name": "keyword.other.namespace-definition.fsharp"
@@ -267,21 +321,41 @@
267
321
  "4": {
268
322
  "name": "entity.name.section.fsharp"
269
323
  }
270
- },
271
- "patterns": [
272
- {
273
- "name": "entity.name.section.fsharp",
274
- "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)",
275
- "captures": {
276
- "1": {
277
- "name": "punctuation.separator.namespace-reference.fsharp"
278
- },
279
- "2": {
280
- "name": "entity.name.section.fsharp"
281
- }
282
- }
324
+ }
325
+ }
326
+ ]
327
+ },
328
+ "records": {
329
+ "patterns": [
330
+ {
331
+ "name": "record.fsharp",
332
+ "match": "(type)[\\s]+(private|internal|public)?[\\s]*([[:alpha:]0-9'\u003c\u003e^:,. ]+)[\\s]*(\\([[:alpha:]0-9'\u003c\u003e^:,. ]+\\))?[\\s]*((with)|(as [[:alpha:]0-9']+)|(=)|(\\(\\)))",
333
+ "captures": {
334
+ "1": {
335
+ "name": "keyword.other.fsharp"
336
+ },
337
+ "2": {
338
+ "name": "keyword.other.fsharp"
339
+ },
340
+ "3": {
341
+ "name": "entity.name.type.fsharp"
342
+ },
343
+ "4": {
344
+ "name": "entity.name.type.fsharp"
345
+ },
346
+ "6": {
347
+ "name": "keyword.other.fsharp"
348
+ },
349
+ "7": {
350
+ "name": "keyword.other.fsharp"
351
+ },
352
+ "8": {
353
+ "name": "keyword.other.fsharp"
354
+ },
355
+ "9": {
356
+ "name": "constant.language.unit.fsharp"
283
357
  }
284
- ]
358
+ }
285
359
  }
286
360
  ]
287
361
  },
@@ -291,6 +365,12 @@
291
365
  "name": "string.quoted.literal.fsharp",
292
366
  "begin": "(?=[^\\\\])(@\")",
293
367
  "end": "(\")(?!\")",
368
+ "patterns": [
369
+ {
370
+ "name": "constant.character.string.escape.fsharp",
371
+ "match": "\"(\")"
372
+ }
373
+ ],
294
374
  "beginCaptures": {
295
375
  "1": {
296
376
  "name": "punctuation.definition.string.begin.fsharp"
@@ -300,13 +380,7 @@
300
380
  "1": {
301
381
  "name": "punctuation.definition.string.end.fsharp"
302
382
  }
303
- },
304
- "patterns": [
305
- {
306
- "name": "constant.character.string.escape.fsharp",
307
- "match": "\"(\")"
308
- }
309
- ]
383
+ }
310
384
  },
311
385
  {
312
386
  "name": "string.quoted.triple.fsharp",
@@ -327,16 +401,6 @@
327
401
  "name": "string.quoted.double.fsharp",
328
402
  "begin": "(?=[^\\\\])(\")",
329
403
  "end": "(\")",
330
- "beginCaptures": {
331
- "1": {
332
- "name": "punctuation.definition.string.begin.fsharp"
333
- }
334
- },
335
- "endCaptures": {
336
- "1": {
337
- "name": "punctuation.definition.string.end.fsharp"
338
- }
339
- },
340
404
  "patterns": [
341
405
  {
342
406
  "name": "punctuation.separator.string.ignore-eol.fsharp",
@@ -350,108 +414,39 @@
350
414
  "name": "invalid.illeagal.character.string.fsharp",
351
415
  "match": "\\\\(?![\\\\''ntbr]|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})."
352
416
  }
353
- ]
354
- }
355
- ]
356
- },
357
- "variables": {
358
- "patterns": [
359
- {
360
- "name": "constant.language.unit.fsharp",
361
- "match": "\\(\\)"
362
- },
363
- {
364
- "name": "variable.parameter.fsharp",
365
- "match": "[[:alpha:]']\\w*"
366
- }
367
- ]
368
- },
369
- "double_tick": {
370
- "patterns": [
371
- {
372
- "name": "variable.other.binding.fsharp",
373
- "match": "(``)(.*)(``)",
374
- "captures": {
417
+ ],
418
+ "beginCaptures": {
375
419
  "1": {
376
- "name": "string.quoted.single.fsharp"
377
- },
378
- "2": {
379
- "name": "variable.other.binding.fsharp"
380
- },
381
- "3": {
382
- "name": "string.quoted.single.fsharp"
420
+ "name": "punctuation.definition.string.begin.fsharp"
383
421
  }
384
- }
385
- }
386
- ]
387
- },
388
- "records": {
389
- "patterns": [
390
- {
391
- "name": "record.fsharp",
392
- "match": "(type)[\\s]+(private|internal|public)?[\\s]*([[:alpha:]0-9'<>^:,. ]+)[\\s]*(\\([[:alpha:]0-9'<>^:,. ]+\\))?[\\s]*((with)|(as [[:alpha:]0-9']+)|(=)|(\\(\\)))",
393
- "captures": {
422
+ },
423
+ "endCaptures": {
394
424
  "1": {
395
- "name": "keyword.other.fsharp"
396
- },
397
- "2": {
398
- "name": "keyword.other.fsharp"
399
- },
400
- "3": {
401
- "name": "entity.name.type.fsharp"
402
- },
403
- "4": {
404
- "name": "entity.name.type.fsharp"
405
- },
406
- "6": {
407
- "name": "keyword.other.fsharp"
408
- },
409
- "7": {
410
- "name": "keyword.other.fsharp"
411
- },
412
- "8": {
413
- "name": "keyword.other.fsharp"
414
- },
415
- "9": {
416
- "name": "constant.language.unit.fsharp"
425
+ "name": "punctuation.definition.string.end.fsharp"
417
426
  }
418
427
  }
419
428
  }
420
429
  ]
421
430
  },
422
- "cexprs": {
431
+ "text": {
423
432
  "patterns": [
424
433
  {
425
- "name": "cexpr.fsharp",
426
- "match": "\\b([[:alpha:]]*\\s+\\{)",
427
- "captures": {
428
- "1": {
429
- "name": "keyword.other.fsharp"
430
- }
431
- }
434
+ "name": "text.fsharp",
435
+ "match": "\\\\"
432
436
  }
433
437
  ]
434
438
  },
435
- "chars": {
439
+ "variables": {
436
440
  "patterns": [
437
441
  {
438
- "name": "char.fsharp",
439
- "match": "('\\\\?.')",
440
- "captures": {
441
- "1": {
442
- "name": "string.quoted.single.fsharp"
443
- }
444
- }
445
- }
446
- ]
447
- },
448
- "text": {
449
- "patterns": [
442
+ "name": "constant.language.unit.fsharp",
443
+ "match": "\\(\\)"
444
+ },
450
445
  {
451
- "name": "text.fsharp",
452
- "match": "\\\\"
446
+ "name": "variable.parameter.fsharp",
447
+ "match": "[[:alpha:]']\\w*"
453
448
  }
454
449
  ]
455
450
  }
456
451
  }
457
- }
452
+ }