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,62 +1,48 @@
1
1
  {
2
- "fileTypes": [
3
- "txl",
4
- "grm"
5
- ],
6
2
  "name": "TXL",
3
+ "scopeName": "source.txl",
7
4
  "patterns": [
8
5
  {
9
- "comment": "Main keywords",
10
- "match": "\\b(?<!')(define|end|function|keys|compounds|tokens|comments|replace|construct|by|replace|rule|deconstruct|not|where|all|not|assert|export|import|redefine|external|match|skipping|include|then)\\b",
11
- "name": "keyword.control"
6
+ "name": "keyword.control",
7
+ "match": "\\b(?\u003c!')(define|end|function|keys|compounds|tokens|comments|replace|construct|by|replace|rule|deconstruct|not|where|all|not|assert|export|import|redefine|external|match|skipping|include|then)\\b"
12
8
  },
13
9
  {
10
+ "name": "meta.preprocessor",
11
+ "match": "(?\u003c!')#\\s*(pragma|endif|else|define|undef|undefine|ifn|elifn|elifdef|elifndef|ifndef|ifdef|if|end)",
14
12
  "captures": {
15
13
  "1": {
16
14
  "name": "keyword.control"
17
15
  }
18
- },
19
- "comment": "Preprocessor keywords",
20
- "match": "(?<!')#\\s*(pragma|endif|else|define|undef|undefine|ifn|elifn|elifdef|elifndef|ifndef|ifdef|if|end)",
21
- "name": "meta.preprocessor"
16
+ }
22
17
  },
23
18
  {
24
- "begin": "(?<!')%[\\({]",
25
- "comment": "Multi-line comments",
26
- "end": "(?<!')[\\)}]%",
27
- "name": "comment"
19
+ "name": "comment",
20
+ "begin": "(?\u003c!')%[\\({]",
21
+ "end": "(?\u003c!')[\\)}]%"
28
22
  },
29
23
  {
30
- "comment": "Comments",
31
- "match": "(?<!')%.*",
32
- "name": "comment"
24
+ "name": "comment",
25
+ "match": "(?\u003c!')%.*"
33
26
  },
34
27
  {
35
- "comment": "Built in functions, conditionals, repeats, etc",
36
- "match": "(?<!')\\[(not|opt|repeat|list|see|push|pop|\\+|-|/|\\*|=|<|>|\\^|\\.|div|rem|:|#|index|_|length|select|head|tail|,|~=|>=|<=|grep|\\$|quote|unquote|parse|unparse|reparse|typeof|istype|read|write|fget|getp|fput|putp|fputp|fputs|fclose|fopen|fgets|message|pragma|quit|system|pipe|attr) .+?\\]",
37
- "name": "entity.name.function"
28
+ "name": "entity.name.function",
29
+ "match": "(?\u003c!')\\[(not|opt|repeat|list|see|push|pop|\\+|-|/|\\*|=|\u003c|\u003e|\\^|\\.|div|rem|:|#|index|_|length|select|head|tail|,|~=|\u003e=|\u003c=|grep|\\$|quote|unquote|parse|unparse|reparse|typeof|istype|read|write|fget|getp|fput|putp|fputp|fputs|fclose|fopen|fgets|message|pragma|quit|system|pipe|attr) .+?\\]"
38
30
  },
39
31
  {
40
- "comment": "Formatting hints",
41
- "match": "(?<!')\\[(NL|EX(_\\d+)?|IN(_\\d+)?|SP(_\\d+)?|TAB(_\\d+)?|SPON|SPOFF|\\!|round|trunc|toupper|tolower|get|put|gets|print|printattr|debug|breakpoint)\\]",
42
- "name": "constant.language"
32
+ "name": "constant.language",
33
+ "match": "(?\u003c!')\\[(NL|EX(_\\d+)?|IN(_\\d+)?|SP(_\\d+)?|TAB(_\\d+)?|SPON|SPOFF|\\!|round|trunc|toupper|tolower|get|put|gets|print|printattr|debug|breakpoint)\\]"
43
34
  },
44
35
  {
45
- "comment": "Regular non-terminals",
46
- "match": "(?<!')\\[.+?\\]",
47
- "name": "storage.type"
36
+ "name": "storage.type",
37
+ "match": "(?\u003c!')\\[.+?\\]"
48
38
  },
49
39
  {
50
- "comment": "Numbers (including floating point)",
51
- "match": "\\b(\\d+)|(\\d+\\.\\d+([\\+-][Ee]\\d+)?)\\b",
52
- "name": "constant.numeric"
40
+ "name": "constant.numeric",
41
+ "match": "\\b(\\d+)|(\\d+\\.\\d+([\\+-][Ee]\\d+)?)\\b"
53
42
  },
54
43
  {
55
- "comment": "String literals",
56
- "match": "\".*\"",
57
- "name": "string.quoted.double"
44
+ "name": "string.quoted.double",
45
+ "match": "\".*\""
58
46
  }
59
- ],
60
- "scopeName": "source.txl",
61
- "uuid": "fd861065-7297-4ca1-bd27-2568e7d7a654"
62
- }
47
+ ]
48
+ }
@@ -1,9 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "ucf",
4
- "UCF"
5
- ],
6
2
  "name": "ucfconstraints",
3
+ "scopeName": "source.ucfconstraints",
7
4
  "patterns": [
8
5
  {
9
6
  "name": "storage.type.ucfconstraints",
@@ -22,25 +19,25 @@
22
19
  "match": "\\b(?i)(FALSE|TRUE|LVCMOS12|LVCMOS15|LVCMOS18|LVCMOS25|LVCMOS33|LVPECL_25|LVDCI_15|LVDCI_18|LVDS_25|LVDSEXT_25|LVDCI_25|LVDCI_DV2_15|LVDCI_DV2_18|LVDCI_DV2_25|SSTL15_DCI|SSTL15_T_DCI|SSTL15|DIFF_SSTL15|DIFF_SSTL15_T_DCI)\\b"
23
20
  },
24
21
  {
25
- "match": "(#).*$\\n?",
26
- "name": "comment.line"
22
+ "name": "comment.line",
23
+ "match": "(#).*$\\n?"
27
24
  },
28
25
  {
29
- "match": "(//).*$\\n?",
30
- "name": "comment.line.double-slash"
26
+ "name": "comment.line.double-slash",
27
+ "match": "(//).*$\\n?"
31
28
  },
32
29
  {
30
+ "name": "comment.block",
33
31
  "begin": "/\\*",
34
- "end": "\\*/",
35
- "name": "comment.block"
32
+ "end": "\\*/"
36
33
  },
37
34
  {
38
- "match": "\\b(?i)(\\d+\\s*(fs|ps|ns|us|ms|s)?)\\b",
39
- "name": "constant.numeric.ucfconstraints"
35
+ "name": "constant.numeric.ucfconstraints",
36
+ "match": "\\b(?i)(\\d+\\s*(fs|ps|ns|us|ms|s)?)\\b"
40
37
  },
41
38
  {
42
- "match": "(=|;|\\|)",
43
- "name": "keyword.operator"
39
+ "name": "keyword.operator",
40
+ "match": "(=|;|\\|)"
44
41
  },
45
42
  {
46
43
  "include": "#strings"
@@ -50,23 +47,21 @@
50
47
  "strings": {
51
48
  "patterns": [
52
49
  {
50
+ "name": "string.quoted.double.systemverilog",
53
51
  "begin": "\"",
52
+ "end": "\"",
54
53
  "beginCaptures": {
55
54
  "0": {
56
55
  "name": "punctuation.definition.string.begin.systemverilog"
57
56
  }
58
57
  },
59
- "end": "\"",
60
58
  "endCaptures": {
61
59
  "0": {
62
60
  "name": "punctuation.definition.string.end.systemverilog"
63
61
  }
64
- },
65
- "name": "string.quoted.double.systemverilog"
62
+ }
66
63
  }
67
64
  ]
68
65
  }
69
- },
70
- "scopeName": "source.ucfconstraints",
71
- "uuid": "443130c7-cdc8-4a90-836c-a530d3b17266"
72
- }
66
+ }
67
+ }
@@ -1,43 +1,31 @@
1
1
  {
2
- "fileTypes": [
3
- "ur",
4
- "urs",
5
- "urp"
6
- ],
7
2
  "name": "UrWeb",
3
+ "scopeName": "source.ur",
8
4
  "patterns": [
9
5
  {
10
- "comment": "UrWeb keywords",
11
- "match": "\\b(EQUAL|GREATER|LESS|NONE|SOME|abstraction|abstype|and|andalso|array|as|before|bool|case|char|datatype|do|else|end|eqtype|exception|exn|false|fn|fun|functor|handle|if|in|include|infix|infixr|int|let|list|local|nil|nonfix|not|o|of|op|open|option|orelse|overload|print|raise|real|rec|ref|sharing|sig|signature|string|struct|structure|substring|then|true|type|unit|val|vector|where|while|with|withtype|word)\\b",
12
- "name": "keyword.source.ur"
6
+ "name": "keyword.source.ur",
7
+ "match": "\\b(EQUAL|GREATER|LESS|NONE|SOME|abstraction|abstype|and|andalso|array|as|before|bool|case|char|datatype|do|else|end|eqtype|exception|exn|false|fn|fun|functor|handle|if|in|include|infix|infixr|int|let|list|local|nil|nonfix|not|o|of|op|open|option|orelse|overload|print|raise|real|rec|ref|sharing|sig|signature|string|struct|structure|substring|then|true|type|unit|val|vector|where|while|with|withtype|word)\\b"
13
8
  },
14
9
  {
15
- "comment": "Numeric constants",
16
- "match": "\\b[0-9]+\\b",
17
- "name": "constant.numeric.ur"
10
+ "name": "constant.numeric.ur",
11
+ "match": "\\b[0-9]+\\b"
18
12
  },
19
13
  {
20
- "comment": "Built in types",
21
- "match": "\\b[A-Z]([A-z0-9]*)\\b",
22
- "name": "support.type.ur"
14
+ "name": "support.type.ur",
15
+ "match": "\\b[A-Z]([A-z0-9]*)\\b"
23
16
  },
24
17
  {
25
- "comment": "String constant",
26
- "match": "\"(\\\\\"|[^\"])*\"",
27
- "name": "string.ur"
18
+ "name": "string.ur",
19
+ "match": "\"(\\\\\"|[^\"])*\""
28
20
  },
29
21
  {
22
+ "name": "comment.ur",
30
23
  "begin": "\\(\\*",
31
- "comment": "Comment",
32
- "end": "\\*\\)",
33
- "name": "comment.ur"
24
+ "end": "\\*\\)"
34
25
  },
35
26
  {
36
- "comment": "Character",
37
- "match": "(\\(\\)|=>|::|\\[\\]|->|:>)",
38
- "name": "constant.character.ur"
27
+ "name": "constant.character.ur",
28
+ "match": "(\\(\\)|=\u003e|::|\\[\\]|-\u003e|:\u003e)"
39
29
  }
40
- ],
41
- "scopeName": "source.ur",
42
- "uuid": "65be9466-98df-11e4-b8aa-123b93f75cba"
43
- }
30
+ ]
31
+ }
@@ -1,14 +1,10 @@
1
1
  {
2
- "comment": "Based heavily on the Java bundle's language syntax. TODO:\n* Closures\n* Delegates\n* Properties: Better support for properties.\n* Annotations\n* Error domains\n* Named arguments\n* Array slicing, negative indexes, multidimensional\n* construct blocks\n* lock blocks?\n* regex literals\n* DocBlock syntax highlighting. (Currently importing javadoc)\n* Folding rule for comments.\n",
3
- "fileTypes": [
4
- "vala",
5
- "vapi"
6
- ],
7
- "foldingStartMarker": "(\\{\\s*(//.*)?$|^\\s*// \\{\\{\\{)",
8
- "foldingStopMarker": "^\\s*(\\}|// \\}\\}\\}$)",
9
2
  "name": "Vala",
3
+ "scopeName": "source.vala",
10
4
  "patterns": [
11
5
  {
6
+ "name": "meta.using.vala",
7
+ "match": "^\\s*(using)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
12
8
  "captures": {
13
9
  "1": {
14
10
  "name": "keyword.other.using.vala"
@@ -19,9 +15,7 @@
19
15
  "3": {
20
16
  "name": "punctuation.terminator.vala"
21
17
  }
22
- },
23
- "match": "^\\s*(using)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
24
- "name": "meta.using.vala"
18
+ }
25
19
  },
26
20
  {
27
21
  "include": "#code"
@@ -44,24 +38,12 @@
44
38
  "annotations": {
45
39
  "patterns": [
46
40
  {
41
+ "name": "meta.declaration.annotation.vala",
47
42
  "begin": "(@[^ (]+)(\\()",
48
- "beginCaptures": {
49
- "1": {
50
- "name": "storage.type.annotation.vala"
51
- },
52
- "2": {
53
- "name": "punctuation.definition.annotation-arguments.begin.vala"
54
- }
55
- },
56
43
  "end": "(\\))",
57
- "endCaptures": {
58
- "1": {
59
- "name": "punctuation.definition.annotation-arguments.end.vala"
60
- }
61
- },
62
- "name": "meta.declaration.annotation.vala",
63
44
  "patterns": [
64
45
  {
46
+ "match": "(\\w*)\\s*(=)",
65
47
  "captures": {
66
48
  "1": {
67
49
  "name": "constant.other.key.vala"
@@ -69,40 +51,42 @@
69
51
  "2": {
70
52
  "name": "keyword.operator.assignment.vala"
71
53
  }
72
- },
73
- "match": "(\\w*)\\s*(=)"
54
+ }
74
55
  },
75
56
  {
76
57
  "include": "#code"
77
58
  },
78
59
  {
79
- "match": ",",
80
- "name": "punctuation.seperator.property.vala"
60
+ "name": "punctuation.seperator.property.vala",
61
+ "match": ","
81
62
  }
82
- ]
63
+ ],
64
+ "beginCaptures": {
65
+ "1": {
66
+ "name": "storage.type.annotation.vala"
67
+ },
68
+ "2": {
69
+ "name": "punctuation.definition.annotation-arguments.begin.vala"
70
+ }
71
+ },
72
+ "endCaptures": {
73
+ "1": {
74
+ "name": "punctuation.definition.annotation-arguments.end.vala"
75
+ }
76
+ }
83
77
  },
84
78
  {
85
- "match": "@\\w*",
86
- "name": "storage.type.annotation.vala"
79
+ "name": "storage.type.annotation.vala",
80
+ "match": "@\\w*"
87
81
  }
88
82
  ]
89
83
  },
90
84
  "anonymous-classes-and-new": {
91
85
  "begin": "\\bnew\\b",
92
- "beginCaptures": {
93
- "0": {
94
- "name": "keyword.control.new.vala"
95
- }
96
- },
97
- "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)",
86
+ "end": "(?\u003c=\\)|\\])(?!\\s*{)|(?\u003c=})|(?=;)",
98
87
  "patterns": [
99
88
  {
100
89
  "begin": "(\\w+)\\s*(?=\\[)",
101
- "beginCaptures": {
102
- "1": {
103
- "name": "storage.type.vala"
104
- }
105
- },
106
90
  "end": "}|(?=;|\\))",
107
91
  "patterns": [
108
92
  {
@@ -123,76 +107,80 @@
123
107
  }
124
108
  ]
125
109
  }
126
- ]
110
+ ],
111
+ "beginCaptures": {
112
+ "1": {
113
+ "name": "storage.type.vala"
114
+ }
115
+ }
127
116
  },
128
117
  {
129
118
  "begin": "(?=\\w.*\\()",
130
- "end": "(?<=\\))",
119
+ "end": "(?\u003c=\\))",
131
120
  "patterns": [
132
121
  {
133
122
  "include": "#object-types"
134
123
  },
135
124
  {
136
125
  "begin": "\\(",
137
- "beginCaptures": {
138
- "1": {
139
- "name": "storage.type.vala"
140
- }
141
- },
142
126
  "end": "\\)",
143
127
  "patterns": [
144
128
  {
145
129
  "include": "#code"
146
130
  }
147
- ]
131
+ ],
132
+ "beginCaptures": {
133
+ "1": {
134
+ "name": "storage.type.vala"
135
+ }
136
+ }
148
137
  }
149
138
  ]
150
139
  },
151
140
  {
141
+ "name": "meta.inner-class.vala",
152
142
  "begin": "{",
153
143
  "end": "}",
154
- "name": "meta.inner-class.vala",
155
144
  "patterns": [
156
145
  {
157
146
  "include": "#class-body"
158
147
  }
159
148
  ]
160
149
  }
161
- ]
150
+ ],
151
+ "beginCaptures": {
152
+ "0": {
153
+ "name": "keyword.control.new.vala"
154
+ }
155
+ }
162
156
  },
163
157
  "assertions": {
164
158
  "patterns": [
165
159
  {
160
+ "name": "meta.declaration.assertion.vala",
166
161
  "begin": "\\b(assert|requires|ensures)\\s",
167
- "beginCaptures": {
168
- "1": {
169
- "name": "keyword.control.assert.vala"
170
- }
171
- },
172
162
  "end": "$",
173
- "name": "meta.declaration.assertion.vala",
174
163
  "patterns": [
175
164
  {
176
- "match": ":",
177
- "name": "keyword.operator.assert.expression-seperator.vala"
165
+ "name": "keyword.operator.assert.expression-seperator.vala",
166
+ "match": ":"
178
167
  },
179
168
  {
180
169
  "include": "#code"
181
170
  }
182
- ]
171
+ ],
172
+ "beginCaptures": {
173
+ "1": {
174
+ "name": "keyword.control.assert.vala"
175
+ }
176
+ }
183
177
  }
184
178
  ]
185
179
  },
186
180
  "class": {
181
+ "name": "meta.class.vala",
187
182
  "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\s+\\w+)",
188
- "comment": "attempting to put namespace in here.",
189
183
  "end": "}",
190
- "endCaptures": {
191
- "0": {
192
- "name": "punctuation.section.class.end.vala"
193
- }
194
- },
195
- "name": "meta.class.vala",
196
184
  "patterns": [
197
185
  {
198
186
  "include": "#storage-modifiers"
@@ -201,6 +189,8 @@
201
189
  "include": "#comments"
202
190
  },
203
191
  {
192
+ "name": "meta.class.identifier.vala",
193
+ "match": "(class|(?:@)?interface|enum|struct|namespace)\\s+([\\w\\.]+)",
204
194
  "captures": {
205
195
  "1": {
206
196
  "name": "storage.modifier.vala"
@@ -208,19 +198,12 @@
208
198
  "2": {
209
199
  "name": "entity.name.type.class.vala"
210
200
  }
211
- },
212
- "match": "(class|(?:@)?interface|enum|struct|namespace)\\s+([\\w\\.]+)",
213
- "name": "meta.class.identifier.vala"
201
+ }
214
202
  },
215
203
  {
204
+ "name": "meta.definition.class.inherited.classes.vala",
216
205
  "begin": ":",
217
- "beginCaptures": {
218
- "0": {
219
- "name": "storage.modifier.extends.vala"
220
- }
221
- },
222
206
  "end": "(?={|,)",
223
- "name": "meta.definition.class.inherited.classes.vala",
224
207
  "patterns": [
225
208
  {
226
209
  "include": "#object-types-inherited"
@@ -228,17 +211,17 @@
228
211
  {
229
212
  "include": "#comments"
230
213
  }
231
- ]
214
+ ],
215
+ "beginCaptures": {
216
+ "0": {
217
+ "name": "storage.modifier.extends.vala"
218
+ }
219
+ }
232
220
  },
233
221
  {
222
+ "name": "meta.definition.class.implemented.interfaces.vala",
234
223
  "begin": "(,)\\s",
235
- "beginCaptures": {
236
- "1": {
237
- "name": "storage.modifier.implements.vala"
238
- }
239
- },
240
224
  "end": "(?=\\{)",
241
- "name": "meta.definition.class.implemented.interfaces.vala",
242
225
  "patterns": [
243
226
  {
244
227
  "include": "#object-types-inherited"
@@ -246,19 +229,29 @@
246
229
  {
247
230
  "include": "#comments"
248
231
  }
249
- ]
232
+ ],
233
+ "beginCaptures": {
234
+ "1": {
235
+ "name": "storage.modifier.implements.vala"
236
+ }
237
+ }
250
238
  },
251
239
  {
240
+ "name": "meta.class.body.vala",
252
241
  "begin": "{",
253
242
  "end": "(?=})",
254
- "name": "meta.class.body.vala",
255
243
  "patterns": [
256
244
  {
257
245
  "include": "#class-body"
258
246
  }
259
247
  ]
260
248
  }
261
- ]
249
+ ],
250
+ "endCaptures": {
251
+ "0": {
252
+ "name": "punctuation.section.class.end.vala"
253
+ }
254
+ }
262
255
  },
263
256
  "class-body": {
264
257
  "patterns": [
@@ -331,13 +324,13 @@
331
324
  "comments": {
332
325
  "patterns": [
333
326
  {
327
+ "name": "comment.block.empty.vala",
328
+ "match": "/\\*\\*/",
334
329
  "captures": {
335
330
  "0": {
336
331
  "name": "punctuation.definition.comment.vala"
337
332
  }
338
- },
339
- "match": "/\\*\\*/",
340
- "name": "comment.block.empty.vala"
333
+ }
341
334
  },
342
335
  {
343
336
  "include": "text.html.javadoc"
@@ -350,16 +343,17 @@
350
343
  "comments-inline": {
351
344
  "patterns": [
352
345
  {
346
+ "name": "comment.block.vala",
353
347
  "begin": "/\\*",
348
+ "end": "\\*/",
354
349
  "captures": {
355
350
  "0": {
356
351
  "name": "punctuation.definition.comment.vala"
357
352
  }
358
- },
359
- "end": "\\*/",
360
- "name": "comment.block.vala"
353
+ }
361
354
  },
362
355
  {
356
+ "match": "\\s*((//).*$\\n?)",
363
357
  "captures": {
364
358
  "1": {
365
359
  "name": "comment.line.double-slash.vala"
@@ -367,33 +361,32 @@
367
361
  "2": {
368
362
  "name": "punctuation.definition.comment.vala"
369
363
  }
370
- },
371
- "match": "\\s*((//).*$\\n?)"
364
+ }
372
365
  }
373
366
  ]
374
367
  },
375
368
  "constants-and-special-vars": {
376
369
  "patterns": [
377
370
  {
378
- "match": "\\b(true|false|null)\\b",
379
- "name": "constant.language.vala"
371
+ "name": "constant.language.vala",
372
+ "match": "\\b(true|false|null)\\b"
380
373
  },
381
374
  {
382
- "match": "\\b(this|base)\\b",
383
- "name": "variable.language.vala"
375
+ "name": "variable.language.vala",
376
+ "match": "\\b(this|base)\\b"
384
377
  },
385
378
  {
386
- "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",
387
- "name": "constant.numeric.vala"
379
+ "name": "constant.numeric.vala",
380
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b"
388
381
  },
389
382
  {
383
+ "name": "constant.other.vala",
384
+ "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!\u003c|\\.class|\\s*\\w+\\s*=)\\b",
390
385
  "captures": {
391
386
  "1": {
392
387
  "name": "keyword.operator.dereference.vala"
393
388
  }
394
- },
395
- "match": "(\\.)?\\b([A-Z][A-Z0-9_]+)(?!<|\\.class|\\s*\\w+\\s*=)\\b",
396
- "name": "constant.other.vala"
389
+ }
397
390
  }
398
391
  ]
399
392
  },
@@ -402,14 +395,9 @@
402
395
  "end": "(?=;|})",
403
396
  "patterns": [
404
397
  {
398
+ "name": "meta.enum.vala",
405
399
  "begin": "\\w+",
406
- "beginCaptures": {
407
- "0": {
408
- "name": "constant.other.enum.vala"
409
- }
410
- },
411
400
  "end": "(?=,|;|})",
412
- "name": "meta.enum.vala",
413
401
  "patterns": [
414
402
  {
415
403
  "include": "#parens"
@@ -423,89 +411,94 @@
423
411
  }
424
412
  ]
425
413
  }
426
- ]
414
+ ],
415
+ "beginCaptures": {
416
+ "0": {
417
+ "name": "constant.other.enum.vala"
418
+ }
419
+ }
427
420
  }
428
421
  ]
429
422
  },
430
423
  "keywords": {
431
424
  "patterns": [
432
425
  {
433
- "match": "\\b(try|catch|finally|throw)\\b",
434
- "name": "keyword.control.catch-exception.vala"
426
+ "name": "keyword.control.catch-exception.vala",
427
+ "match": "\\b(try|catch|finally|throw)\\b"
435
428
  },
436
429
  {
437
- "match": "\\?|:|\\?\\?",
438
- "name": "keyword.control.vala"
430
+ "name": "keyword.control.vala",
431
+ "match": "\\?|:|\\?\\?"
439
432
  },
440
433
  {
441
- "match": "\\b(return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\b",
442
- "name": "keyword.control.vala"
434
+ "name": "keyword.control.vala",
435
+ "match": "\\b(return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\b"
443
436
  },
444
437
  {
445
- "match": "\\b(typeof|is|as)\\b",
446
- "name": "keyword.operator.vala"
438
+ "name": "keyword.operator.vala",
439
+ "match": "\\b(typeof|is|as)\\b"
447
440
  },
448
441
  {
449
- "match": "(==|!=|<=|>=|<>|<|>)",
450
- "name": "keyword.operator.comparison.vala"
442
+ "name": "keyword.operator.comparison.vala",
443
+ "match": "(==|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e)"
451
444
  },
452
445
  {
453
- "match": "(=)",
454
- "name": "keyword.operator.assignment.vala"
446
+ "name": "keyword.operator.assignment.vala",
447
+ "match": "(=)"
455
448
  },
456
449
  {
457
- "match": "(\\-\\-|\\+\\+)",
458
- "name": "keyword.operator.increment-decrement.vala"
450
+ "name": "keyword.operator.increment-decrement.vala",
451
+ "match": "(\\-\\-|\\+\\+)"
459
452
  },
460
453
  {
461
- "match": "(\\-|\\+|\\*|\\/|%)",
462
- "name": "keyword.operator.arithmetic.vala"
454
+ "name": "keyword.operator.arithmetic.vala",
455
+ "match": "(\\-|\\+|\\*|\\/|%)"
463
456
  },
464
457
  {
465
- "match": "(!|&&|\\|\\|)",
466
- "name": "keyword.operator.logical.vala"
458
+ "name": "keyword.operator.logical.vala",
459
+ "match": "(!|\u0026\u0026|\\|\\|)"
467
460
  },
468
461
  {
469
- "match": "(?<=\\S)\\.(?=\\S)",
470
- "name": "keyword.operator.dereference.vala"
462
+ "name": "keyword.operator.dereference.vala",
463
+ "match": "(?\u003c=\\S)\\.(?=\\S)"
471
464
  },
472
465
  {
473
- "match": ";",
474
- "name": "punctuation.terminator.vala"
466
+ "name": "punctuation.terminator.vala",
467
+ "match": ";"
475
468
  },
476
469
  {
477
- "match": "(owned|unowned)",
478
- "name": "keyword.operator.ownership"
470
+ "name": "keyword.operator.ownership",
471
+ "match": "(owned|unowned)"
479
472
  }
480
473
  ]
481
474
  },
482
475
  "methods": {
476
+ "name": "meta.method.vala",
483
477
  "begin": "(?!new)(?=\\w.*\\s+)(?=[^=]+\\()",
484
478
  "end": "}|(?=;)",
485
- "name": "meta.method.vala",
486
479
  "patterns": [
487
480
  {
488
481
  "include": "#storage-modifiers"
489
482
  },
490
483
  {
484
+ "name": "meta.method.identifier.vala",
491
485
  "begin": "([\\~\\w\\.]+)\\s*\\(",
492
- "beginCaptures": {
493
- "1": {
494
- "name": "entity.name.function.vala"
495
- }
496
- },
497
486
  "end": "\\)",
498
- "name": "meta.method.identifier.vala",
499
487
  "patterns": [
500
488
  {
501
489
  "include": "#parameters"
502
490
  }
503
- ]
491
+ ],
492
+ "beginCaptures": {
493
+ "1": {
494
+ "name": "entity.name.function.vala"
495
+ }
496
+ }
504
497
  },
505
498
  {
499
+ "name": "meta.method.return-type.vala",
506
500
  "begin": "(?=\\w.*\\s+\\w+\\s*\\()",
507
501
  "end": "(?=\\w+\\s*\\()",
508
- "name": "meta.method.return-type.vala",
509
502
  "patterns": [
510
503
  {
511
504
  "include": "#all-types"
@@ -516,9 +509,9 @@
516
509
  "include": "#throws"
517
510
  },
518
511
  {
512
+ "name": "meta.method.body.vala",
519
513
  "begin": "{",
520
514
  "end": "(?=})",
521
- "name": "meta.method.body.vala",
522
515
  "patterns": [
523
516
  {
524
517
  "include": "#code"
@@ -529,18 +522,12 @@
529
522
  },
530
523
  "namespace": {
531
524
  "begin": "^(?=\\s*[A-Z0-9_]+\\s*({|\\(|,))",
532
- "comment": "This is not quite right. See the class grammar right now",
533
525
  "end": "(?=;|})",
534
526
  "patterns": [
535
527
  {
528
+ "name": "meta.namespace.vala",
536
529
  "begin": "\\w+",
537
- "beginCaptures": {
538
- "0": {
539
- "name": "constant.other.namespace.vala"
540
- }
541
- },
542
530
  "end": "(?=,|;|})",
543
- "name": "meta.namespace.vala",
544
531
  "patterns": [
545
532
  {
546
533
  "include": "#parens"
@@ -554,32 +541,36 @@
554
541
  }
555
542
  ]
556
543
  }
557
- ]
544
+ ],
545
+ "beginCaptures": {
546
+ "0": {
547
+ "name": "constant.other.namespace.vala"
548
+ }
549
+ }
558
550
  }
559
551
  ]
560
552
  },
561
553
  "object-types": {
562
554
  "patterns": [
563
555
  {
564
- "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
565
- "end": ">|[^\\w\\s,\\?<\\[\\]]",
566
556
  "name": "storage.type.generic.vala",
557
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c",
558
+ "end": "\u003e|[^\\w\\s,\\?\u003c\\[\\]]",
567
559
  "patterns": [
568
560
  {
569
561
  "include": "#object-types"
570
562
  },
571
563
  {
572
- "begin": "<",
573
- "comment": "This is just to support <>'s with no actual type prefix",
574
- "end": ">|[^\\w\\s,\\[\\]<]",
575
- "name": "storage.type.generic.vala"
564
+ "name": "storage.type.generic.vala",
565
+ "begin": "\u003c",
566
+ "end": "\u003e|[^\\w\\s,\\[\\]\u003c]"
576
567
  }
577
568
  ]
578
569
  },
579
570
  {
571
+ "name": "storage.type.object.array.vala",
580
572
  "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)",
581
573
  "end": "(?=[^\\]\\s])",
582
- "name": "storage.type.object.array.vala",
583
574
  "patterns": [
584
575
  {
585
576
  "begin": "\\[",
@@ -593,50 +584,49 @@
593
584
  ]
594
585
  },
595
586
  {
587
+ "name": "storage.type.vala",
588
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b",
596
589
  "captures": {
597
590
  "1": {
598
591
  "name": "keyword.operator.dereference.vala"
599
592
  }
600
- },
601
- "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*\\b",
602
- "name": "storage.type.vala"
593
+ }
603
594
  }
604
595
  ]
605
596
  },
606
597
  "object-types-inherited": {
607
598
  "patterns": [
608
599
  {
609
- "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)<",
610
- "end": ">|[^\\w\\s,<]",
611
600
  "name": "entity.other.inherited-class.vala",
601
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)\u003c",
602
+ "end": "\u003e|[^\\w\\s,\u003c]",
612
603
  "patterns": [
613
604
  {
614
605
  "include": "#object-types"
615
606
  },
616
607
  {
617
- "begin": "<",
618
- "comment": "This is just to support <>'s with no actual type prefix",
619
- "end": ">|[^\\w\\s,<]",
620
- "name": "storage.type.generic.vala"
608
+ "name": "storage.type.generic.vala",
609
+ "begin": "\u003c",
610
+ "end": "\u003e|[^\\w\\s,\u003c]"
621
611
  }
622
612
  ]
623
613
  },
624
614
  {
615
+ "name": "entity.other.inherited-class.vala",
616
+ "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*",
625
617
  "captures": {
626
618
  "1": {
627
619
  "name": "keyword.operator.dereference.vala"
628
620
  }
629
- },
630
- "match": "\\b(?:[a-z]\\w*(\\.))*[A-Z]+\\w*",
631
- "name": "entity.other.inherited-class.vala"
621
+ }
632
622
  }
633
623
  ]
634
624
  },
635
625
  "parameters": {
636
626
  "patterns": [
637
627
  {
638
- "match": "final",
639
- "name": "storage.modifier.vala"
628
+ "name": "storage.modifier.vala",
629
+ "match": "final"
640
630
  },
641
631
  {
642
632
  "include": "#primitive-arrays"
@@ -648,8 +638,8 @@
648
638
  "include": "#object-types"
649
639
  },
650
640
  {
651
- "match": "\\w+",
652
- "name": "variable.parameter.vala"
641
+ "name": "variable.parameter.vala",
642
+ "match": "\\w+"
653
643
  }
654
644
  ]
655
645
  },
@@ -665,135 +655,133 @@
665
655
  "primitive-arrays": {
666
656
  "patterns": [
667
657
  {
668
- "match": "\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(\\[\\])*\\b",
669
- "name": "storage.type.primitive.array.vala"
658
+ "name": "storage.type.primitive.array.vala",
659
+ "match": "\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(\\[\\])*\\b"
670
660
  }
671
661
  ]
672
662
  },
673
663
  "primitive-types": {
674
664
  "patterns": [
675
665
  {
676
- "comment": "var is not really a primitive, but acts like one in most cases",
677
- "match": "\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b",
678
- "name": "storage.type.primitive.vala"
666
+ "name": "storage.type.primitive.vala",
667
+ "match": "\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b"
679
668
  }
680
669
  ]
681
670
  },
682
671
  "storage-modifiers": {
672
+ "match": "\\b(public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\b",
683
673
  "captures": {
684
674
  "1": {
685
675
  "name": "storage.modifier.vala"
686
676
  }
687
- },
688
- "comment": "Not sure about unsafe and readonly",
689
- "match": "\\b(public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\b"
677
+ }
690
678
  },
691
679
  "strings": {
692
680
  "patterns": [
693
681
  {
682
+ "name": "string.quoted.interpolated.vala",
694
683
  "begin": "@\"",
695
- "beginCaptures": {
696
- "0": {
697
- "name": "punctuation.definition.string.begin.vala"
698
- }
699
- },
700
684
  "end": "\"",
701
- "endCaptures": {
702
- "0": {
703
- "name": "punctuation.definition.string.end.vala"
704
- }
705
- },
706
- "name": "string.quoted.interpolated.vala",
707
685
  "patterns": [
708
686
  {
709
- "match": "\\\\.|%[\\w\\.\\-]+|\\$(\\w+|\\([\\w\\s\\+\\-\\*\\/]+\\))",
710
- "name": "constant.character.escape.vala"
687
+ "name": "constant.character.escape.vala",
688
+ "match": "\\\\.|%[\\w\\.\\-]+|\\$(\\w+|\\([\\w\\s\\+\\-\\*\\/]+\\))"
711
689
  }
712
- ]
713
- },
714
- {
715
- "begin": "\"",
690
+ ],
716
691
  "beginCaptures": {
717
692
  "0": {
718
693
  "name": "punctuation.definition.string.begin.vala"
719
694
  }
720
695
  },
721
- "end": "\"",
722
696
  "endCaptures": {
723
697
  "0": {
724
698
  "name": "punctuation.definition.string.end.vala"
725
699
  }
726
- },
700
+ }
701
+ },
702
+ {
727
703
  "name": "string.quoted.double.vala",
704
+ "begin": "\"",
705
+ "end": "\"",
728
706
  "patterns": [
729
707
  {
730
- "match": "\\\\.",
731
- "name": "constant.character.escape.vala"
708
+ "name": "constant.character.escape.vala",
709
+ "match": "\\\\."
732
710
  },
733
711
  {
734
- "match": "%[\\w\\.\\-]+",
735
- "name": "constant.character.escape.vala"
712
+ "name": "constant.character.escape.vala",
713
+ "match": "%[\\w\\.\\-]+"
736
714
  }
737
- ]
738
- },
739
- {
740
- "begin": "'",
715
+ ],
741
716
  "beginCaptures": {
742
717
  "0": {
743
718
  "name": "punctuation.definition.string.begin.vala"
744
719
  }
745
720
  },
746
- "end": "'",
747
721
  "endCaptures": {
748
722
  "0": {
749
723
  "name": "punctuation.definition.string.end.vala"
750
724
  }
751
- },
725
+ }
726
+ },
727
+ {
752
728
  "name": "string.quoted.single.vala",
729
+ "begin": "'",
730
+ "end": "'",
753
731
  "patterns": [
754
732
  {
755
- "match": "\\\\.",
756
- "name": "constant.character.escape.vala"
733
+ "name": "constant.character.escape.vala",
734
+ "match": "\\\\."
757
735
  }
758
- ]
759
- },
760
- {
761
- "begin": "\"\"\"",
736
+ ],
762
737
  "beginCaptures": {
763
738
  "0": {
764
739
  "name": "punctuation.definition.string.begin.vala"
765
740
  }
766
741
  },
767
- "end": "\"\"\"",
768
742
  "endCaptures": {
769
743
  "0": {
770
744
  "name": "punctuation.definition.string.end.vala"
771
745
  }
772
- },
746
+ }
747
+ },
748
+ {
773
749
  "name": "string.quoted.triple.vala",
750
+ "begin": "\"\"\"",
751
+ "end": "\"\"\"",
774
752
  "patterns": [
775
753
  {
776
- "match": "%[\\w\\.\\-]+",
777
- "name": "constant.character.escape.vala"
754
+ "name": "constant.character.escape.vala",
755
+ "match": "%[\\w\\.\\-]+"
778
756
  }
779
- ]
757
+ ],
758
+ "beginCaptures": {
759
+ "0": {
760
+ "name": "punctuation.definition.string.begin.vala"
761
+ }
762
+ },
763
+ "endCaptures": {
764
+ "0": {
765
+ "name": "punctuation.definition.string.end.vala"
766
+ }
767
+ }
780
768
  }
781
769
  ]
782
770
  },
783
771
  "throws": {
772
+ "name": "meta.throwables.vala",
784
773
  "begin": "throws",
785
- "beginCaptures": {
786
- "0": {
787
- "name": "storage.modifier.vala"
788
- }
789
- },
790
774
  "end": "(?={|;)",
791
- "name": "meta.throwables.vala",
792
775
  "patterns": [
793
776
  {
794
777
  "include": "#object-types"
795
778
  }
796
- ]
779
+ ],
780
+ "beginCaptures": {
781
+ "0": {
782
+ "name": "storage.modifier.vala"
783
+ }
784
+ }
797
785
  },
798
786
  "values": {
799
787
  "patterns": [
@@ -808,7 +796,5 @@
808
796
  }
809
797
  ]
810
798
  }
811
- },
812
- "scopeName": "source.vala",
813
- "uuid": "5FBC8212-3C2F-45AC-83D2-0C9195878913"
814
- }
799
+ }
800
+ }