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,16 +1,6 @@
1
1
  {
2
- "comment": "?i: has to be added everywhere because fortran is case insensitive; NB: order of matching matters",
3
- "fileTypes": [
4
- "f",
5
- "F",
6
- "f77",
7
- "F77",
8
- "for",
9
- "FOR",
10
- "fpp",
11
- "FPP"
12
- ],
13
2
  "name": "Fortran - Punchcard",
3
+ "scopeName": "source.fortran",
14
4
  "patterns": [
15
5
  {
16
6
  "include": "#preprocessor-rule-enabled"
@@ -22,58 +12,24 @@
22
12
  "include": "#preprocessor-rule-other"
23
13
  },
24
14
  {
25
- "comment": "built-in constants",
26
- "match": "(?i:(r8|r4|\\.TRUE\\.|\\.FALSE\\.))",
27
- "name": "constant.language.fortran"
15
+ "name": "constant.language.fortran",
16
+ "match": "(?i:(r8|r4|\\.TRUE\\.|\\.FALSE\\.))"
28
17
  },
29
18
  {
30
- "comment": "numbers",
31
- "match": "\\b[\\+\\-]?[0-9]+\\.?[0-9a-zA-Z_]*\\b",
32
- "name": "constant.numeric.fortran"
19
+ "name": "constant.numeric.fortran",
20
+ "match": "\\b[\\+\\-]?[0-9]+\\.?[0-9a-zA-Z_]*\\b"
33
21
  },
34
22
  {
35
- "begin": "(?x:\t\t\t\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\t\t\t\t# start of line and possibly some space\n\t\t\t\t\t([a-zA-Z\\(\\)]*)(?<!end)\t\t\t\t# 1: possibly some type specification but not the word end\n\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t\t# possibly some space\n\t\t\t\t\t(?i:(function|subroutine))\\b\t\t# 2: function or subroutine\n\t\t\t\t\t\\s+\t\t\t\t\t\t\t\t\t# some space\n\t\t\t\t\t([A-Za-z_][A-Za-z0-9_]*)\t\t\t# 3: name\n\t\t\t\t\t)",
36
- "beginCaptures": {
37
- "1": {
38
- "name": "storage.type.fortran"
39
- },
40
- "2": {
41
- "name": "storage.type.function.fortran"
42
- },
43
- "3": {
44
- "name": "entity.name.function.fortran"
45
- }
46
- },
47
- "comment": "First line of function/subroutine definition",
48
- "end": "(?x:\t\t\t\t\t\t\t\t\t# extended mode\n\t\t\t\t\t((?i:end))\t\t\t\t\t\t\t# 1: the word end\n\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# followed by\n\t\t\t\t\t\t$\t\t\t\t\t\t\t\t# end of line\n\t\t\t\t\t|\t\t\t\t\t\t\t\t\t# or\n\t\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t# possibly some space\n\t\t\t\t\t\t(?i:(function|subroutine))\t\t# 2: function or subroutine\n\t\t\t\t\t\t((\\s+[A-Za-z_][A-Za-z0-9_]*)?)\t# 3: possibly the name\n\t\t\t\t\t)\n\t\t\t\t\t)",
49
- "endCaptures": {
50
- "1": {
51
- "name": "keyword.other.fortran"
52
- },
53
- "3": {
54
- "name": "storage.type.function.fortran"
55
- },
56
- "4": {
57
- "name": "entity.name.function.end.fortran"
58
- }
59
- },
60
23
  "name": "meta.function.fortran",
24
+ "begin": "(?x:\t\t\t\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\t\t\t\t# start of line and possibly some space\n\t\t\t\t\t([a-zA-Z\\(\\)]*)(?\u003c!end)\t\t\t\t# 1: possibly some type specification but not the word end\n\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t\t# possibly some space\n\t\t\t\t\t(?i:(function|subroutine))\\b\t\t# 2: function or subroutine\n\t\t\t\t\t\\s+\t\t\t\t\t\t\t\t\t# some space\n\t\t\t\t\t([A-Za-z_][A-Za-z0-9_]*)\t\t\t# 3: name\n\t\t\t\t\t)",
25
+ "end": "(?x:\t\t\t\t\t\t\t\t\t# extended mode\n\t\t\t\t\t((?i:end))\t\t\t\t\t\t\t# 1: the word end\n\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# followed by\n\t\t\t\t\t\t$\t\t\t\t\t\t\t\t# end of line\n\t\t\t\t\t|\t\t\t\t\t\t\t\t\t# or\n\t\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t# possibly some space\n\t\t\t\t\t\t(?i:(function|subroutine))\t\t# 2: function or subroutine\n\t\t\t\t\t\t((\\s+[A-Za-z_][A-Za-z0-9_]*)?)\t# 3: possibly the name\n\t\t\t\t\t)\n\t\t\t\t\t)",
61
26
  "patterns": [
62
27
  {
63
28
  "begin": "\\G\\s*(\\()",
64
- "beginCaptures": {
65
- "1": {
66
- "name": "punctuation.definition.parameters.begin.fortran"
67
- }
68
- },
69
29
  "end": "\\)",
70
- "endCaptures": {
71
- "0": {
72
- "name": "punctuation.definition.parameters.end.fortran"
73
- }
74
- },
75
30
  "patterns": [
76
31
  {
32
+ "match": "([^\\s),]*)\\s*(,)?",
77
33
  "captures": {
78
34
  "1": {
79
35
  "name": "variable.parameter.fortran"
@@ -81,10 +37,19 @@
81
37
  "2": {
82
38
  "name": "punctuation.separator.arguments.fortan"
83
39
  }
84
- },
85
- "match": "([^\\s),]*)\\s*(,)?"
40
+ }
86
41
  }
87
- ]
42
+ ],
43
+ "beginCaptures": {
44
+ "1": {
45
+ "name": "punctuation.definition.parameters.begin.fortran"
46
+ }
47
+ },
48
+ "endCaptures": {
49
+ "0": {
50
+ "name": "punctuation.definition.parameters.end.fortran"
51
+ }
52
+ }
88
53
  },
89
54
  {
90
55
  "include": "$self"
@@ -92,271 +57,272 @@
92
57
  {
93
58
  "include": "source.fortran.modern"
94
59
  }
95
- ]
96
- },
97
- {
98
- "begin": "\\b(?i:(integer|real|double\\s+precision|complex|logical|character))\\b(?=.*::)",
60
+ ],
99
61
  "beginCaptures": {
100
62
  "1": {
101
63
  "name": "storage.type.fortran"
64
+ },
65
+ "2": {
66
+ "name": "storage.type.function.fortran"
67
+ },
68
+ "3": {
69
+ "name": "entity.name.function.fortran"
102
70
  }
103
71
  },
104
- "comment": "Line of type specification",
105
- "end": "(?=!)|$",
72
+ "endCaptures": {
73
+ "1": {
74
+ "name": "keyword.other.fortran"
75
+ },
76
+ "3": {
77
+ "name": "storage.type.function.fortran"
78
+ },
79
+ "4": {
80
+ "name": "entity.name.function.end.fortran"
81
+ }
82
+ }
83
+ },
84
+ {
106
85
  "name": "meta.specification.fortran",
86
+ "begin": "\\b(?i:(integer|real|double\\s+precision|complex|logical|character))\\b(?=.*::)",
87
+ "end": "(?=!)|$",
107
88
  "patterns": [
108
89
  {
109
90
  "include": "$self"
110
91
  }
111
- ]
92
+ ],
93
+ "beginCaptures": {
94
+ "1": {
95
+ "name": "storage.type.fortran"
96
+ }
97
+ }
112
98
  },
113
99
  {
114
- "comment": "statements controling the flow of the program",
115
- "match": "\\b(?i:(go\\s*to|assign|to|if|then|else|elseif|end\\s*if|continue|stop|pause|do|end\\s*do|while|cycle))\\b",
116
- "name": "keyword.control.fortran"
100
+ "name": "keyword.control.fortran",
101
+ "match": "\\b(?i:(go\\s*to|assign|to|if|then|else|elseif|end\\s*if|continue|stop|pause|do|end\\s*do|while|cycle))\\b"
117
102
  },
118
103
  {
119
- "comment": "programming units",
120
- "match": "\\b(?i:(program|end\\s+program|entry|block\\s+data|call|return|contains|include))\\b",
121
- "name": "keyword.control.programming-units.fortran"
104
+ "name": "keyword.control.programming-units.fortran",
105
+ "match": "\\b(?i:(program|end\\s+program|entry|block\\s+data|call|return|contains|include))\\b"
122
106
  },
123
107
  {
124
- "comment": "i/o statements",
125
- "match": "\\b(?i:(open|close|read|write|print|inquire|backspace|endfile|format))\\b",
126
- "name": "keyword.control.io.fortran"
108
+ "name": "keyword.control.io.fortran",
109
+ "match": "\\b(?i:(open|close|read|write|print|inquire|backspace|endfile|format))\\b"
127
110
  },
128
111
  {
129
- "comment": "operators",
130
- "match": "((?<!\\=)\\=(?!\\=)|\\-|\\+|\\/\\/|\\/|(?!^)\\*|::)",
131
- "name": "keyword.operator.fortran"
112
+ "name": "keyword.operator.fortran",
113
+ "match": "((?\u003c!\\=)\\=(?!\\=)|\\-|\\+|\\/\\/|\\/|(?!^)\\*|::)"
132
114
  },
133
115
  {
134
- "comment": "logical operators",
135
- "match": "(?i:(\\.and\\.|\\.or\\.|\\.eq\\.|\\.lt\\.|\\.le\\.|\\.gt\\.|\\.ge\\.|\\.ne\\.|\\.not\\.|\\.eqv\\.|\\.neqv\\.))",
136
- "name": "keyword.operator.logical.fortran"
116
+ "name": "keyword.operator.logical.fortran",
117
+ "match": "(?i:(\\.and\\.|\\.or\\.|\\.eq\\.|\\.lt\\.|\\.le\\.|\\.gt\\.|\\.ge\\.|\\.ne\\.|\\.not\\.|\\.eqv\\.|\\.neqv\\.))"
137
118
  },
138
119
  {
139
- "comment": "argument related intrisics",
140
- "match": "\\b(?i:(present)(?=\\())",
141
- "name": "keyword.other.instrisic.argument.fortran"
120
+ "name": "keyword.other.instrisic.argument.fortran",
121
+ "match": "\\b(?i:(present)(?=\\())"
142
122
  },
143
123
  {
144
- "comment": "numeric intrisics",
145
- "match": "\\b(?i:(abs|aimag|aint|anint|cmplx|conjg|dble|dim|dprod|int|max|min|mod|nint|real|sign|digits|epsilon|huge|maxexponent|minexponent|precision|radix|range|tiny)(?=\\())",
146
- "name": "keyword.other.instrisic.numeric.fortran"
124
+ "name": "keyword.other.instrisic.numeric.fortran",
125
+ "match": "\\b(?i:(abs|aimag|aint|anint|cmplx|conjg|dble|dim|dprod|int|max|min|mod|nint|real|sign|digits|epsilon|huge|maxexponent|minexponent|precision|radix|range|tiny)(?=\\())"
147
126
  },
148
127
  {
149
- "comment": "character string intrinsics",
150
- "match": "\\b(?i:(achar|adjustl|adjustr|char|iachar|ichar|index|len_trim|repeat|scan|string|trim|verify|len)(?=\\())",
151
- "name": "keyword.other.instrisic.string.fortran"
128
+ "name": "keyword.other.instrisic.string.fortran",
129
+ "match": "\\b(?i:(achar|adjustl|adjustr|char|iachar|ichar|index|len_trim|repeat|scan|string|trim|verify|len)(?=\\())"
152
130
  },
153
131
  {
154
- "comment": "mathematical intrisics",
155
- "match": "\\b(?i:(((acos|asin|atan|atan2|cos|cosh|exp|log|log10|sin|sinh|sqrt|tan|tanh)(?=\\())|(random_number|random_seed)))\\b",
156
- "name": "keyword.other.instrisic.math.fortran"
132
+ "name": "keyword.other.instrisic.math.fortran",
133
+ "match": "\\b(?i:(((acos|asin|atan|atan2|cos|cosh|exp|log|log10|sin|sinh|sqrt|tan|tanh)(?=\\())|(random_number|random_seed)))\\b"
157
134
  },
158
135
  {
159
- "comment": "data kind intrinsics",
160
- "match": "\\b(?i:(kind|selected_int_kind|selected_real_kind|transfer)(?=\\())",
161
- "name": "keyword.other.instrisic.data.fortran"
136
+ "name": "keyword.other.instrisic.data.fortran",
137
+ "match": "\\b(?i:(kind|selected_int_kind|selected_real_kind|transfer)(?=\\())"
162
138
  },
163
139
  {
164
- "comment": "logical intrinsics",
165
- "match": "\\b(?i:(logical)(?=\\())",
166
- "name": "keyword.other.instrisic.logical.fortran"
140
+ "name": "keyword.other.instrisic.logical.fortran",
141
+ "match": "\\b(?i:(logical)(?=\\())"
167
142
  },
168
143
  {
169
- "comment": "bit operations intrinsics",
170
- "match": "\\b(?i:(((bit_size|btest|iand|ibclr|ibits|ibset|ieor|ior|ishift|ishiftc|not)(?=\\())|mvbits))\\b",
171
- "name": "keyword.other.instrisic.bit.fortran"
144
+ "name": "keyword.other.instrisic.bit.fortran",
145
+ "match": "\\b(?i:(((bit_size|btest|iand|ibclr|ibits|ibset|ieor|ior|ishift|ishiftc|not)(?=\\())|mvbits))\\b"
172
146
  },
173
147
  {
174
- "comment": "floating point intrinsics",
175
- "match": "\\b(?i:(exponent|fraction|nearest|rrspacing|scale|set_exponent|spacing)(?=\\())",
176
- "name": "keyword.other.instrisic.floating-point.fortran"
148
+ "name": "keyword.other.instrisic.floating-point.fortran",
149
+ "match": "\\b(?i:(exponent|fraction|nearest|rrspacing|scale|set_exponent|spacing)(?=\\())"
177
150
  },
178
151
  {
179
- "comment": "matrix/vector/array intrisics",
180
- "match": "\\b(?i:(((dot_product|sum|matmul|transpose|all|any|count|maxval|minval|maxloc|minloc|product|sum|lbound|ubound|shape|size|merge|pack|unpack|reshape|spread|cshift|eoshift)(?=\\())|(where|elsewhere|end\\s*where)))\\b",
181
- "name": "keyword.other.instrisic.array.fortran"
152
+ "name": "keyword.other.instrisic.array.fortran",
153
+ "match": "\\b(?i:(((dot_product|sum|matmul|transpose|all|any|count|maxval|minval|maxloc|minloc|product|sum|lbound|ubound|shape|size|merge|pack|unpack|reshape|spread|cshift|eoshift)(?=\\())|(where|elsewhere|end\\s*where)))\\b"
182
154
  },
183
155
  {
184
- "comment": "other intrisics",
185
- "match": "\\b(?i:(((dtime)(?=\\())|(date_and_time|system_clock)))\\b",
186
- "name": "keyword.other.instrisic.fortran"
156
+ "name": "keyword.other.instrisic.fortran",
157
+ "match": "\\b(?i:(((dtime)(?=\\())|(date_and_time|system_clock)))\\b"
187
158
  },
188
159
  {
189
- "comment": "data specification",
190
- "match": "\\b(?i:(integer|real|double\\s+precision|complex|logical|character|block\\sdata|operator|assignment))\\b",
191
- "name": "storage.type.fortran"
160
+ "name": "storage.type.fortran",
161
+ "match": "\\b(?i:(integer|real|double\\s+precision|complex|logical|character|block\\sdata|operator|assignment))\\b"
192
162
  },
193
163
  {
194
- "comment": "data type attributes",
195
- "match": "\\b(?i:(dimension|common|equivalence|parameter|external|intrinsic|save|data|implicit\\s*none|implicit|intent|in|out|inout))\\b",
196
- "name": "storage.modifier.fortran"
164
+ "name": "storage.modifier.fortran",
165
+ "match": "\\b(?i:(dimension|common|equivalence|parameter|external|intrinsic|save|data|implicit\\s*none|implicit|intent|in|out|inout))\\b"
197
166
  },
198
167
  {
199
- "applyEndPatternLast": 1,
168
+ "name": "string.quoted.single.fortran",
200
169
  "begin": "'",
170
+ "end": "'",
171
+ "patterns": [
172
+ {
173
+ "name": "constant.character.escape.apostrophe.fortran",
174
+ "match": "''"
175
+ }
176
+ ],
201
177
  "beginCaptures": {
202
178
  "0": {
203
179
  "name": "punctuation.definition.string.begin.fortran"
204
180
  }
205
181
  },
206
- "comment": "String",
207
- "end": "'",
208
182
  "endCaptures": {
209
183
  "0": {
210
184
  "name": "punctuation.definition.string.end.fortran"
211
185
  }
212
186
  },
213
- "name": "string.quoted.single.fortran",
214
- "patterns": [
215
- {
216
- "match": "''",
217
- "name": "constant.character.escape.apostrophe.fortran"
218
- }
219
- ]
187
+ "applyEndPatternLast": true
220
188
  },
221
189
  {
222
- "applyEndPatternLast": 1,
190
+ "name": "string.quoted.double.fortran",
223
191
  "begin": "\"",
192
+ "end": "\"",
193
+ "patterns": [
194
+ {
195
+ "name": "constant.character.escape.quote.fortran",
196
+ "match": "\"\""
197
+ }
198
+ ],
224
199
  "beginCaptures": {
225
200
  "0": {
226
201
  "name": "punctuation.definition.string.begin.fortran"
227
202
  }
228
203
  },
229
- "comment": "String",
230
- "end": "\"",
231
204
  "endCaptures": {
232
205
  "0": {
233
206
  "name": "punctuation.definition.string.end.fortran"
234
207
  }
235
208
  },
236
- "name": "string.quoted.double.fortran",
237
- "patterns": [
238
- {
239
- "match": "\"\"",
240
- "name": "constant.character.escape.quote.fortran"
241
- }
242
- ]
209
+ "applyEndPatternLast": true
243
210
  },
244
211
  {
212
+ "name": "comment.line.c.fortran",
245
213
  "begin": "^[Cc](?=\\b|[Cc])",
246
- "beginCaptures": {
247
- "0": {
248
- "name": "punctuation.definition.comment.fortran"
249
- }
250
- },
251
214
  "end": "$\\n?",
252
- "name": "comment.line.c.fortran",
253
215
  "patterns": [
254
216
  {
255
217
  "match": "\\\\\\s*\\n"
256
218
  }
257
- ]
258
- },
259
- {
260
- "begin": "^\\*",
219
+ ],
261
220
  "beginCaptures": {
262
221
  "0": {
263
222
  "name": "punctuation.definition.comment.fortran"
264
223
  }
265
- },
266
- "end": "$\\n?",
224
+ }
225
+ },
226
+ {
267
227
  "name": "comment.line.asterisk.fortran",
228
+ "begin": "^\\*",
229
+ "end": "$\\n?",
268
230
  "patterns": [
269
231
  {
270
232
  "match": "\\\\\\s*\\n"
271
233
  }
272
- ]
234
+ ],
235
+ "beginCaptures": {
236
+ "0": {
237
+ "name": "punctuation.definition.comment.fortran"
238
+ }
239
+ }
273
240
  },
274
241
  {
242
+ "name": "meta.preprocessor.diagnostic.fortran",
275
243
  "begin": "^\\s*#\\s*(error|warning)\\b",
276
- "captures": {
277
- "1": {
278
- "name": "keyword.control.import.error.fortran"
279
- }
280
- },
281
244
  "end": "$\\n?",
282
- "name": "meta.preprocessor.diagnostic.fortran",
283
245
  "patterns": [
284
246
  {
285
- "match": "(?>\\\\\\s*\\n)",
286
- "name": "punctuation.separator.continuation.fortran"
247
+ "name": "punctuation.separator.continuation.fortran",
248
+ "match": "(?\u003e\\\\\\s*\\n)"
287
249
  }
288
- ]
289
- },
290
- {
291
- "begin": "^\\s*#\\s*(include|import)\\b\\s+",
250
+ ],
292
251
  "captures": {
293
252
  "1": {
294
- "name": "keyword.control.import.include.fortran"
253
+ "name": "keyword.control.import.error.fortran"
295
254
  }
296
- },
297
- "end": "(?=(?://|/\\*))|$\\n?",
255
+ }
256
+ },
257
+ {
298
258
  "name": "meta.preprocessor.fortran.include",
259
+ "begin": "^\\s*#\\s*(include|import)\\b\\s+",
260
+ "end": "(?=(?://|/\\*))|$\\n?",
299
261
  "patterns": [
300
262
  {
301
- "match": "(?>\\\\\\s*\\n)",
302
- "name": "punctuation.separator.continuation.fortran"
263
+ "name": "punctuation.separator.continuation.fortran",
264
+ "match": "(?\u003e\\\\\\s*\\n)"
303
265
  },
304
266
  {
267
+ "name": "string.quoted.double.include.fortran",
305
268
  "begin": "\"",
269
+ "end": "\"",
306
270
  "beginCaptures": {
307
271
  "0": {
308
272
  "name": "punctuation.definition.string.begin.fortran"
309
273
  }
310
274
  },
311
- "end": "\"",
312
275
  "endCaptures": {
313
276
  "0": {
314
277
  "name": "punctuation.definition.string.end.fortran"
315
278
  }
316
- },
317
- "name": "string.quoted.double.include.fortran"
279
+ }
318
280
  },
319
281
  {
320
- "begin": "<",
282
+ "name": "string.quoted.other.lt-gt.include.fortran",
283
+ "begin": "\u003c",
284
+ "end": "\u003e",
321
285
  "beginCaptures": {
322
286
  "0": {
323
287
  "name": "punctuation.definition.string.begin.fortran"
324
288
  }
325
289
  },
326
- "end": ">",
327
290
  "endCaptures": {
328
291
  "0": {
329
292
  "name": "punctuation.definition.string.end.fortran"
330
293
  }
331
- },
332
- "name": "string.quoted.other.lt-gt.include.fortran"
294
+ }
333
295
  }
334
- ]
296
+ ],
297
+ "captures": {
298
+ "1": {
299
+ "name": "keyword.control.import.include.fortran"
300
+ }
301
+ }
335
302
  },
336
303
  {
337
304
  "include": "#pragma-mark"
338
305
  },
339
306
  {
307
+ "name": "meta.preprocessor.fortran",
340
308
  "begin": "^\\s*#\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef)\\b",
341
- "captures": {
342
- "1": {
343
- "name": "keyword.control.import.fortran"
344
- }
345
- },
346
309
  "end": "(?=(?://|/\\*))|$\\n?",
347
- "name": "meta.preprocessor.fortran",
348
310
  "patterns": [
349
311
  {
350
- "match": "(?>\\\\\\s*\\n)",
351
- "name": "punctuation.separator.continuation.fortran"
312
+ "name": "punctuation.separator.continuation.fortran",
313
+ "match": "(?\u003e\\\\\\s*\\n)"
352
314
  }
353
- ]
315
+ ],
316
+ "captures": {
317
+ "1": {
318
+ "name": "keyword.control.import.fortran"
319
+ }
320
+ }
354
321
  }
355
322
  ],
356
323
  "repository": {
357
324
  "disabled": {
358
325
  "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
359
- "comment": "eat nested preprocessor if(def)s",
360
326
  "end": "^\\s*#\\s*endif\\b.*$",
361
327
  "patterns": [
362
328
  {
@@ -368,6 +334,8 @@
368
334
  ]
369
335
  },
370
336
  "pragma-mark": {
337
+ "name": "meta.section",
338
+ "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
371
339
  "captures": {
372
340
  "1": {
373
341
  "name": "meta.preprocessor.fortran"
@@ -378,27 +346,20 @@
378
346
  "3": {
379
347
  "name": "meta.toc-list.pragma-mark.fortran"
380
348
  }
381
- },
382
- "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
383
- "name": "meta.section"
349
+ }
384
350
  },
385
351
  "preprocessor-rule-disabled": {
386
352
  "begin": "^\\s*(#(if)\\s+(0)\\b).*",
387
- "captures": {
388
- "1": {
389
- "name": "meta.preprocessor.fortran"
390
- },
391
- "2": {
392
- "name": "keyword.control.import.if.fortran"
393
- },
394
- "3": {
395
- "name": "constant.numeric.preprocessor.fortran"
396
- }
397
- },
398
353
  "end": "^\\s*(#\\s*(endif)\\b)",
399
354
  "patterns": [
400
355
  {
401
356
  "begin": "^\\s*(#\\s*(else)\\b)",
357
+ "end": "(?=^\\s*#\\s*endif\\b.*$)",
358
+ "patterns": [
359
+ {
360
+ "include": "$base"
361
+ }
362
+ ],
402
363
  "captures": {
403
364
  "1": {
404
365
  "name": "meta.preprocessor.fortran"
@@ -406,18 +367,11 @@
406
367
  "2": {
407
368
  "name": "keyword.control.import.else.fortran"
408
369
  }
409
- },
410
- "end": "(?=^\\s*#\\s*endif\\b.*$)",
411
- "patterns": [
412
- {
413
- "include": "$base"
414
- }
415
- ]
370
+ }
416
371
  },
417
372
  {
418
- "begin": "",
419
- "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
420
373
  "name": "comment.block.preprocessor.if-branch",
374
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
421
375
  "patterns": [
422
376
  {
423
377
  "include": "#disabled"
@@ -427,10 +381,7 @@
427
381
  }
428
382
  ]
429
383
  }
430
- ]
431
- },
432
- "preprocessor-rule-enabled": {
433
- "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
384
+ ],
434
385
  "captures": {
435
386
  "1": {
436
387
  "name": "meta.preprocessor.fortran"
@@ -441,20 +392,15 @@
441
392
  "3": {
442
393
  "name": "constant.numeric.preprocessor.fortran"
443
394
  }
444
- },
395
+ }
396
+ },
397
+ "preprocessor-rule-enabled": {
398
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
445
399
  "end": "^\\s*(#\\s*(endif)\\b)",
446
400
  "patterns": [
447
401
  {
448
- "begin": "^\\s*(#\\s*(else)\\b).*",
449
- "captures": {
450
- "1": {
451
- "name": "meta.preprocessor.fortran"
452
- },
453
- "2": {
454
- "name": "keyword.control.import.else.fortran"
455
- }
456
- },
457
402
  "contentName": "comment.block.preprocessor.else-branch",
403
+ "begin": "^\\s*(#\\s*(else)\\b).*",
458
404
  "end": "(?=^\\s*#\\s*endif\\b.*$)",
459
405
  "patterns": [
460
406
  {
@@ -463,10 +409,17 @@
463
409
  {
464
410
  "include": "#pragma-mark"
465
411
  }
466
- ]
412
+ ],
413
+ "captures": {
414
+ "1": {
415
+ "name": "meta.preprocessor.fortran"
416
+ },
417
+ "2": {
418
+ "name": "keyword.control.import.else.fortran"
419
+ }
420
+ }
467
421
  },
468
422
  {
469
- "begin": "",
470
423
  "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)",
471
424
  "patterns": [
472
425
  {
@@ -474,26 +427,35 @@
474
427
  }
475
428
  ]
476
429
  }
477
- ]
478
- },
479
- "preprocessor-rule-other": {
480
- "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
430
+ ],
481
431
  "captures": {
482
432
  "1": {
483
433
  "name": "meta.preprocessor.fortran"
484
434
  },
485
435
  "2": {
486
- "name": "keyword.control.import.fortran"
436
+ "name": "keyword.control.import.if.fortran"
437
+ },
438
+ "3": {
439
+ "name": "constant.numeric.preprocessor.fortran"
487
440
  }
488
- },
441
+ }
442
+ },
443
+ "preprocessor-rule-other": {
444
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
489
445
  "end": "^\\s*(#\\s*(endif)\\b).*$",
490
446
  "patterns": [
491
447
  {
492
448
  "include": "$base"
493
449
  }
494
- ]
450
+ ],
451
+ "captures": {
452
+ "1": {
453
+ "name": "meta.preprocessor.fortran"
454
+ },
455
+ "2": {
456
+ "name": "keyword.control.import.fortran"
457
+ }
458
+ }
495
459
  }
496
- },
497
- "scopeName": "source.fortran",
498
- "uuid": "45253F88-F7CC-49C5-9C32-F3FADD2AB579"
499
- }
460
+ }
461
+ }