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
@@ -9,43 +9,50 @@
9
9
  "regex-character-class": {
10
10
  "patterns": [
11
11
  {
12
- "match": "\\\\[wWsSdDtrnvf]|\\.",
13
- "name": "constant.character.character-class.regexp"
12
+ "name": "constant.character.character-class.regexp",
13
+ "match": "\\\\[wWsSdDtrnvf]|\\."
14
14
  },
15
15
  {
16
- "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",
17
- "name": "constant.character.numeric.regexp"
16
+ "name": "constant.character.numeric.regexp",
17
+ "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"
18
18
  },
19
19
  {
20
- "match": "\\\\c[A-Z]",
21
- "name": "constant.character.control.regexp"
20
+ "name": "constant.character.control.regexp",
21
+ "match": "\\\\c[A-Z]"
22
22
  },
23
23
  {
24
- "match": "\\\\.",
25
- "name": "constant.character.escape.backslash.regexp"
24
+ "name": "constant.character.escape.backslash.regexp",
25
+ "match": "\\\\."
26
26
  }
27
27
  ]
28
28
  },
29
29
  "regexp": {
30
30
  "patterns": [
31
31
  {
32
- "match": "\\\\[bB]|\\^|\\$",
33
- "name": "keyword.control.anchor.regexp"
32
+ "name": "keyword.control.anchor.regexp",
33
+ "match": "\\\\[bB]|\\^|\\$"
34
34
  },
35
35
  {
36
- "match": "\\\\[1-9]\\d*",
37
- "name": "keyword.other.back-reference.regexp"
36
+ "name": "keyword.other.back-reference.regexp",
37
+ "match": "\\\\[1-9]\\d*"
38
38
  },
39
39
  {
40
- "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",
41
- "name": "keyword.operator.quantifier.regexp"
40
+ "name": "keyword.operator.quantifier.regexp",
41
+ "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"
42
42
  },
43
43
  {
44
- "match": "\\|",
45
- "name": "keyword.operator.or.regexp"
44
+ "name": "keyword.operator.or.regexp",
45
+ "match": "\\|"
46
46
  },
47
47
  {
48
+ "name": "meta.group.assertion.regexp",
48
49
  "begin": "(\\()((\\?=)|(\\?!))",
50
+ "end": "(\\))",
51
+ "patterns": [
52
+ {
53
+ "include": "#regexp"
54
+ }
55
+ ],
49
56
  "beginCaptures": {
50
57
  "1": {
51
58
  "name": "punctuation.definition.group.regexp"
@@ -57,58 +64,40 @@
57
64
  "name": "meta.assertion.negative-look-ahead.regexp"
58
65
  }
59
66
  },
60
- "end": "(\\))",
61
67
  "endCaptures": {
62
68
  "1": {
63
69
  "name": "punctuation.definition.group.regexp"
64
70
  }
65
- },
66
- "name": "meta.group.assertion.regexp",
71
+ }
72
+ },
73
+ {
74
+ "name": "meta.group.regexp",
75
+ "begin": "\\((\\?:)?",
76
+ "end": "\\)",
67
77
  "patterns": [
68
78
  {
69
79
  "include": "#regexp"
70
80
  }
71
- ]
72
- },
73
- {
74
- "begin": "\\((\\?:)?",
81
+ ],
75
82
  "beginCaptures": {
76
83
  "0": {
77
84
  "name": "punctuation.definition.group.regexp"
78
85
  }
79
86
  },
80
- "end": "\\)",
81
87
  "endCaptures": {
82
88
  "0": {
83
89
  "name": "punctuation.definition.group.regexp"
84
90
  }
85
- },
86
- "name": "meta.group.regexp",
87
- "patterns": [
88
- {
89
- "include": "#regexp"
90
- }
91
- ]
91
+ }
92
92
  },
93
93
  {
94
+ "name": "constant.other.character-class.set.regexp",
94
95
  "begin": "(\\[)(\\^)?",
95
- "beginCaptures": {
96
- "1": {
97
- "name": "punctuation.definition.character-class.regexp"
98
- },
99
- "2": {
100
- "name": "keyword.operator.negation.regexp"
101
- }
102
- },
103
96
  "end": "(\\])",
104
- "endCaptures": {
105
- "1": {
106
- "name": "punctuation.definition.character-class.regexp"
107
- }
108
- },
109
- "name": "constant.other.character-class.set.regexp",
110
97
  "patterns": [
111
98
  {
99
+ "name": "constant.other.character-class.range.regexp",
100
+ "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",
112
101
  "captures": {
113
102
  "1": {
114
103
  "name": "constant.character.numeric.regexp"
@@ -128,14 +117,25 @@
128
117
  "6": {
129
118
  "name": "constant.character.escape.backslash.regexp"
130
119
  }
131
- },
132
- "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",
133
- "name": "constant.other.character-class.range.regexp"
120
+ }
134
121
  },
135
122
  {
136
123
  "include": "#regex-character-class"
137
124
  }
138
- ]
125
+ ],
126
+ "beginCaptures": {
127
+ "1": {
128
+ "name": "punctuation.definition.character-class.regexp"
129
+ },
130
+ "2": {
131
+ "name": "keyword.operator.negation.regexp"
132
+ }
133
+ },
134
+ "endCaptures": {
135
+ "1": {
136
+ "name": "punctuation.definition.character-class.regexp"
137
+ }
138
+ }
139
139
  },
140
140
  {
141
141
  "include": "#regex-character-class"
@@ -143,4 +143,4 @@
143
143
  ]
144
144
  }
145
145
  }
146
- }
146
+ }
@@ -9,18 +9,18 @@
9
9
  "regexp-replacement": {
10
10
  "patterns": [
11
11
  {
12
- "match": "\\$([1-9][0-9]|[1-9]|0[1-9]|[&`'])",
13
- "name": "variable.regexp.replacement"
12
+ "name": "variable.regexp.replacement",
13
+ "match": "\\$([1-9][0-9]|[1-9]|0[1-9]|[\u0026`'])"
14
14
  },
15
15
  {
16
- "match": "\\$\\$",
17
- "name": "constant.character.escape.dollar.regexp.replacement"
16
+ "name": "constant.character.escape.dollar.regexp.replacement",
17
+ "match": "\\$\\$"
18
18
  },
19
19
  {
20
- "match": "\\\\[^$]",
21
- "name": "constant.character.escape.backslash.regexp.replacement"
20
+ "name": "constant.character.escape.backslash.regexp.replacement",
21
+ "match": "\\\\[^$]"
22
22
  }
23
23
  ]
24
24
  }
25
25
  }
26
- }
26
+ }
@@ -1,8 +1,9 @@
1
1
  {
2
- "scopeName": "source.jsdoc",
3
2
  "name": "JSDoc",
3
+ "scopeName": "source.jsdoc",
4
4
  "patterns": [
5
5
  {
6
+ "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b",
6
7
  "captures": {
7
8
  "1": {
8
9
  "name": "storage.type.class.jsdoc"
@@ -13,11 +14,10 @@
13
14
  "3": {
14
15
  "name": "constant.language.access-type.jsdoc"
15
16
  }
16
- },
17
- "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"
17
+ }
18
18
  },
19
19
  {
20
- "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",
20
+ "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s\u003c\u003e*/]\n (?:[^@\u003c\u003e*/]|\\*[^/])*\n)\n(?:\n \\s*\n (\u003c)\n ([^\u003e\\s]+)\n (\u003e)\n)?",
21
21
  "captures": {
22
22
  "1": {
23
23
  "name": "storage.type.class.jsdoc"
@@ -40,7 +40,7 @@
40
40
  }
41
41
  },
42
42
  {
43
- "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>",
43
+ "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \u003cthat namepath\u003e\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # \u003cthis namepath\u003e",
44
44
  "captures": {
45
45
  "1": {
46
46
  "name": "storage.type.class.jsdoc"
@@ -63,20 +63,14 @@
63
63
  "name": "meta.example.jsdoc",
64
64
  "begin": "((@)example)\\s+",
65
65
  "end": "(?=@|\\*/)",
66
- "beginCaptures": {
67
- "1": {
68
- "name": "storage.type.class.jsdoc"
69
- },
70
- "2": {
71
- "name": "punctuation.definition.block.tag.jsdoc"
72
- }
73
- },
74
66
  "patterns": [
75
67
  {
76
68
  "match": "^\\s\\*\\s+"
77
69
  },
78
70
  {
79
- "begin": "\\G(<)caption(>)",
71
+ "contentName": "constant.other.description.jsdoc",
72
+ "begin": "\\G(\u003c)caption(\u003e)",
73
+ "end": "(\u003c/)caption(\u003e)|(?=\\*/)",
80
74
  "beginCaptures": {
81
75
  "0": {
82
76
  "name": "entity.name.tag.inline.jsdoc"
@@ -88,8 +82,6 @@
88
82
  "name": "punctuation.definition.bracket.angle.end.jsdoc"
89
83
  }
90
84
  },
91
- "contentName": "constant.other.description.jsdoc",
92
- "end": "(</)caption(>)|(?=\\*/)",
93
85
  "endCaptures": {
94
86
  "0": {
95
87
  "name": "entity.name.tag.inline.jsdoc"
@@ -115,9 +107,18 @@
115
107
  }
116
108
  }
117
109
  }
118
- ]
110
+ ],
111
+ "beginCaptures": {
112
+ "1": {
113
+ "name": "storage.type.class.jsdoc"
114
+ },
115
+ "2": {
116
+ "name": "punctuation.definition.block.tag.jsdoc"
117
+ }
118
+ }
119
119
  },
120
120
  {
121
+ "match": "(?x)\n((@)kind)\n\\s+\n(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\n\\b",
121
122
  "captures": {
122
123
  "1": {
123
124
  "name": "storage.type.class.jsdoc"
@@ -128,10 +129,10 @@
128
129
  "3": {
129
130
  "name": "constant.language.symbol-type.jsdoc"
130
131
  }
131
- },
132
- "match": "(?x)\n((@)kind)\n\\s+\n(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\n\\b"
132
+ }
133
133
  },
134
134
  {
135
+ "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)",
135
136
  "captures": {
136
137
  "1": {
137
138
  "name": "storage.type.class.jsdoc"
@@ -145,10 +146,10 @@
145
146
  "4": {
146
147
  "name": "entity.name.type.instance.jsdoc"
147
148
  }
148
- },
149
- "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)"
149
+ }
150
150
  },
151
151
  {
152
+ "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)",
152
153
  "captures": {
153
154
  "1": {
154
155
  "name": "storage.type.class.jsdoc"
@@ -160,15 +161,15 @@
160
161
  "name": "variable.other.jsdoc",
161
162
  "patterns": [
162
163
  {
163
- "match": ",",
164
- "name": "punctuation.delimiter.object.comma.jsdoc"
164
+ "name": "punctuation.delimiter.object.comma.jsdoc",
165
+ "match": ","
165
166
  }
166
167
  ]
167
168
  }
168
- },
169
- "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)"
169
+ }
170
170
  },
171
171
  {
172
+ "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)",
172
173
  "captures": {
173
174
  "1": {
174
175
  "name": "storage.type.class.jsdoc"
@@ -179,19 +180,10 @@
179
180
  "3": {
180
181
  "name": "variable.other.jsdoc"
181
182
  }
182
- },
183
- "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)"
183
+ }
184
184
  },
185
185
  {
186
186
  "begin": "((@)typedef)\\s+(?={)",
187
- "beginCaptures": {
188
- "1": {
189
- "name": "storage.type.class.jsdoc"
190
- },
191
- "2": {
192
- "name": "punctuation.definition.block.tag.jsdoc"
193
- }
194
- },
195
187
  "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",
196
188
  "patterns": [
197
189
  {
@@ -201,10 +193,7 @@
201
193
  "name": "entity.name.type.instance.jsdoc",
202
194
  "match": "(?:[^@\\s*/]|\\*[^/])+"
203
195
  }
204
- ]
205
- },
206
- {
207
- "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",
196
+ ],
208
197
  "beginCaptures": {
209
198
  "1": {
210
199
  "name": "storage.type.class.jsdoc"
@@ -212,19 +201,22 @@
212
201
  "2": {
213
202
  "name": "punctuation.definition.block.tag.jsdoc"
214
203
  }
215
- },
204
+ }
205
+ },
206
+ {
207
+ "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",
216
208
  "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",
217
209
  "patterns": [
218
210
  {
219
211
  "include": "#type"
220
212
  },
221
213
  {
222
- "match": "([A-Za-z_$][\\w$.\\[\\]]*)",
223
- "name": "variable.other.jsdoc"
214
+ "name": "variable.other.jsdoc",
215
+ "match": "([A-Za-z_$][\\w$.\\[\\]]*)"
224
216
  },
225
217
  {
226
218
  "name": "variable.other.jsdoc",
227
- "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else (sorry)\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",
219
+ "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?\u003e\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else (sorry)\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",
228
220
  "captures": {
229
221
  "1": {
230
222
  "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc"
@@ -251,10 +243,7 @@
251
243
  }
252
244
  }
253
245
  }
254
- ]
255
- },
256
- {
257
- "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",
246
+ ],
258
247
  "beginCaptures": {
259
248
  "1": {
260
249
  "name": "storage.type.class.jsdoc"
@@ -262,15 +251,27 @@
262
251
  "2": {
263
252
  "name": "punctuation.definition.block.tag.jsdoc"
264
253
  }
265
- },
254
+ }
255
+ },
256
+ {
257
+ "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",
266
258
  "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",
267
259
  "patterns": [
268
260
  {
269
261
  "include": "#type"
270
262
  }
271
- ]
263
+ ],
264
+ "beginCaptures": {
265
+ "1": {
266
+ "name": "storage.type.class.jsdoc"
267
+ },
268
+ "2": {
269
+ "name": "punctuation.definition.block.tag.jsdoc"
270
+ }
271
+ }
272
272
  },
273
273
  {
274
+ "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",
274
275
  "captures": {
275
276
  "1": {
276
277
  "name": "storage.type.class.jsdoc"
@@ -281,11 +282,12 @@
281
282
  "3": {
282
283
  "name": "entity.name.type.instance.jsdoc"
283
284
  }
284
- },
285
- "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)"
285
+ }
286
286
  },
287
287
  {
288
+ "contentName": "variable.other.jsdoc",
288
289
  "begin": "((@)(?:default(?:value)?|license|version))\\s+((['\"]))",
290
+ "end": "(\\3)|(?=$|\\*/)",
289
291
  "beginCaptures": {
290
292
  "1": {
291
293
  "name": "storage.type.class.jsdoc"
@@ -300,8 +302,6 @@
300
302
  "name": "punctuation.definition.string.begin.jsdoc"
301
303
  }
302
304
  },
303
- "contentName": "variable.other.jsdoc",
304
- "end": "(\\3)|(?=$|\\*/)",
305
305
  "endCaptures": {
306
306
  "0": {
307
307
  "name": "variable.other.jsdoc"
@@ -312,6 +312,7 @@
312
312
  }
313
313
  },
314
314
  {
315
+ "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",
315
316
  "captures": {
316
317
  "1": {
317
318
  "name": "storage.type.class.jsdoc"
@@ -322,17 +323,16 @@
322
323
  "3": {
323
324
  "name": "variable.other.jsdoc"
324
325
  }
325
- },
326
- "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"
326
+ }
327
327
  },
328
328
  {
329
+ "name": "storage.type.class.jsdoc",
330
+ "match": "(?x) (@)\n(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles\n|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright\n|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception\n|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func\n|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc\n|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method\n|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects\n|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected\n|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary\n|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation\n|version|virtual|writeOnce|yields?)\n\\b",
329
331
  "captures": {
330
332
  "1": {
331
333
  "name": "punctuation.definition.block.tag.jsdoc"
332
334
  }
333
- },
334
- "match": "(?x) (@)\n(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles\n|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright\n|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception\n|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func\n|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc\n|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method\n|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects\n|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected\n|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary\n|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation\n|version|virtual|writeOnce|yields?)\n\\b",
335
- "name": "storage.type.class.jsdoc"
335
+ }
336
336
  },
337
337
  {
338
338
  "include": "#inline-tags"
@@ -364,6 +364,8 @@
364
364
  "inline-tags": {
365
365
  "patterns": [
366
366
  {
367
+ "name": "constant.other.description.jsdoc",
368
+ "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",
367
369
  "captures": {
368
370
  "1": {
369
371
  "name": "punctuation.definition.bracket.square.begin.jsdoc"
@@ -371,32 +373,15 @@
371
373
  "2": {
372
374
  "name": "punctuation.definition.bracket.square.end.jsdoc"
373
375
  }
374
- },
375
- "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",
376
- "name": "constant.other.description.jsdoc"
376
+ }
377
377
  },
378
378
  {
379
+ "name": "entity.name.type.instance.jsdoc",
379
380
  "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*",
380
- "beginCaptures": {
381
- "1": {
382
- "name": "punctuation.definition.bracket.curly.begin.jsdoc"
383
- },
384
- "2": {
385
- "name": "storage.type.class.jsdoc"
386
- },
387
- "3": {
388
- "name": "punctuation.definition.inline.tag.jsdoc"
389
- }
390
- },
391
381
  "end": "}|(?=\\*/)",
392
- "endCaptures": {
393
- "0": {
394
- "name": "punctuation.definition.bracket.curly.end.jsdoc"
395
- }
396
- },
397
- "name": "entity.name.type.instance.jsdoc",
398
382
  "patterns": [
399
383
  {
384
+ "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",
400
385
  "captures": {
401
386
  "1": {
402
387
  "name": "variable.other.link.underline.jsdoc"
@@ -404,10 +389,10 @@
404
389
  "2": {
405
390
  "name": "punctuation.separator.pipe.jsdoc"
406
391
  }
407
- },
408
- "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"
392
+ }
409
393
  },
410
394
  {
395
+ "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",
411
396
  "captures": {
412
397
  "1": {
413
398
  "name": "variable.other.description.jsdoc"
@@ -415,21 +400,43 @@
415
400
  "2": {
416
401
  "name": "punctuation.separator.pipe.jsdoc"
417
402
  }
418
- },
419
- "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"
403
+ }
420
404
  }
421
- ]
405
+ ],
406
+ "beginCaptures": {
407
+ "1": {
408
+ "name": "punctuation.definition.bracket.curly.begin.jsdoc"
409
+ },
410
+ "2": {
411
+ "name": "storage.type.class.jsdoc"
412
+ },
413
+ "3": {
414
+ "name": "punctuation.definition.inline.tag.jsdoc"
415
+ }
416
+ },
417
+ "endCaptures": {
418
+ "0": {
419
+ "name": "punctuation.definition.bracket.curly.end.jsdoc"
420
+ }
421
+ }
422
422
  }
423
423
  ]
424
424
  },
425
425
  "type": {
426
426
  "patterns": [
427
427
  {
428
- "match": "\\G{(?:[^}*]|\\*[^/}])+$",
429
- "name": "invalid.illegal.type.jsdoc"
428
+ "name": "invalid.illegal.type.jsdoc",
429
+ "match": "\\G{(?:[^}*]|\\*[^/}])+$"
430
430
  },
431
431
  {
432
+ "contentName": "entity.name.type.instance.jsdoc",
432
433
  "begin": "\\G({)",
434
+ "end": "((}))\\s*|(?=\\*/)",
435
+ "patterns": [
436
+ {
437
+ "include": "#brackets"
438
+ }
439
+ ],
433
440
  "beginCaptures": {
434
441
  "0": {
435
442
  "name": "entity.name.type.instance.jsdoc"
@@ -438,8 +445,6 @@
438
445
  "name": "punctuation.definition.bracket.curly.begin.jsdoc"
439
446
  }
440
447
  },
441
- "contentName": "entity.name.type.instance.jsdoc",
442
- "end": "((}))\\s*|(?=\\*/)",
443
448
  "endCaptures": {
444
449
  "1": {
445
450
  "name": "entity.name.type.instance.jsdoc"
@@ -447,14 +452,9 @@
447
452
  "2": {
448
453
  "name": "punctuation.definition.bracket.curly.end.jsdoc"
449
454
  }
450
- },
451
- "patterns": [
452
- {
453
- "include": "#brackets"
454
- }
455
- ]
455
+ }
456
456
  }
457
457
  ]
458
458
  }
459
459
  }
460
- }
460
+ }