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,46 +1,39 @@
1
1
  {
2
- "fileTypes": [
3
- "sbt"
4
- ],
5
- "foldingStartMarker": "/\\*\\*|\\{\\s*$",
6
- "foldingStopMarker": "\\*\\*/|^\\s*\\}",
7
- "keyEquivalent": "^~S",
8
2
  "name": "Simple Build Tool",
3
+ "scopeName": "source.sbt",
9
4
  "patterns": [
10
5
  {
6
+ "match": "(\\w*)\\s+(?=.*=)",
11
7
  "captures": {
12
8
  "1": {
13
9
  "name": "constant.other.setting.sbt"
14
10
  }
15
- },
16
- "match": "(\\w*)\\s+(?=.*=)"
11
+ }
17
12
  },
18
13
  {
19
- "match": "\\b(at)\\b",
20
- "name": "keyword.control.directive.sbt"
14
+ "name": "keyword.control.directive.sbt",
15
+ "match": "\\b(at)\\b"
21
16
  },
22
17
  {
18
+ "name": "string.quoted.double.sbt",
23
19
  "begin": "\"",
20
+ "end": "\"",
21
+ "patterns": [
22
+ {
23
+ "name": "constant.character.escape.sbt",
24
+ "match": "\\\\."
25
+ }
26
+ ],
24
27
  "beginCaptures": {
25
28
  "1": {
26
29
  "name": "punctuation.definition.string.begin.sbt"
27
30
  }
28
31
  },
29
- "end": "\"",
30
32
  "endCaptures": {
31
33
  "1": {
32
34
  "name": "punctuation.definition.string.end.sbt"
33
35
  }
34
- },
35
- "name": "string.quoted.double.sbt",
36
- "patterns": [
37
- {
38
- "match": "\\\\.",
39
- "name": "constant.character.escape.sbt"
40
- }
41
- ]
36
+ }
42
37
  }
43
- ],
44
- "scopeName": "source.sbt",
45
- "uuid": "4A4E6D54-9232-4F33-9E4F-777A56075844"
46
- }
38
+ ]
39
+ }
@@ -1,152 +1,145 @@
1
1
  {
2
- "fileTypes": [
3
- "scad"
4
- ],
5
- "foldingStartMarker": "/\\*\\*|\\{\\s*$",
6
- "foldingStopMarker": "\\*\\*/|^\\s*\\}",
7
- "keyEquivalent": "^~S",
8
2
  "name": "OpenSCAD",
3
+ "scopeName": "source.scad",
9
4
  "patterns": [
10
5
  {
6
+ "name": "meta.function.scad",
7
+ "match": "^(module)\\s.*$",
11
8
  "captures": {
12
9
  "1": {
13
10
  "name": "keyword.control.scad"
14
11
  }
15
- },
16
- "match": "^(module)\\s.*$",
17
- "name": "meta.function.scad"
12
+ }
18
13
  },
19
14
  {
20
- "match": "\\b(if|else|for|intersection_for|assign|render|function|include|use)\\b",
21
- "name": "keyword.control.scad"
15
+ "name": "keyword.control.scad",
16
+ "match": "\\b(if|else|for|intersection_for|assign|render|function|include|use)\\b"
22
17
  },
23
18
  {
19
+ "name": "comment.block.documentation.scad",
24
20
  "begin": "/\\*\\*(?!/)",
21
+ "end": "\\*/",
25
22
  "captures": {
26
23
  "0": {
27
24
  "name": "punctuation.definition.comment.scad"
28
25
  }
29
- },
30
- "end": "\\*/",
31
- "name": "comment.block.documentation.scad"
26
+ }
32
27
  },
33
28
  {
29
+ "name": "comment.block.scad",
34
30
  "begin": "/\\*",
31
+ "end": "\\*/",
35
32
  "captures": {
36
33
  "0": {
37
34
  "name": "punctuation.definition.comment.scad"
38
35
  }
39
- },
40
- "end": "\\*/",
41
- "name": "comment.block.scad"
36
+ }
42
37
  },
43
38
  {
39
+ "name": "comment.line.double-slash.scad",
40
+ "match": "(//).*$\\n?",
44
41
  "captures": {
45
42
  "1": {
46
43
  "name": "punctuation.definition.comment.scad"
47
44
  }
48
- },
49
- "match": "(//).*$\\n?",
50
- "name": "comment.line.double-slash.scad"
45
+ }
51
46
  },
52
47
  {
48
+ "name": "string.quoted.double.scad",
53
49
  "begin": "\"",
54
50
  "end": "\"",
55
- "name": "string.quoted.double.scad",
56
51
  "patterns": [
57
52
  {
58
- "match": "\\\\.",
59
- "name": "constant.character.escape.scad"
53
+ "name": "constant.character.escape.scad",
54
+ "match": "\\\\."
60
55
  }
61
56
  ]
62
57
  },
63
58
  {
59
+ "name": "string.quoted.single.scad",
64
60
  "begin": "'",
61
+ "end": "'",
62
+ "patterns": [
63
+ {
64
+ "name": "constant.character.escape.scad",
65
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"
66
+ }
67
+ ],
65
68
  "beginCaptures": {
66
69
  "0": {
67
70
  "name": "punctuation.definition.string.begin.scad"
68
71
  }
69
72
  },
70
- "end": "'",
71
73
  "endCaptures": {
72
74
  "0": {
73
75
  "name": "punctuation.definition.string.end.scad"
74
76
  }
75
- },
76
- "name": "string.quoted.single.scad",
77
- "patterns": [
78
- {
79
- "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",
80
- "name": "constant.character.escape.scad"
81
- }
82
- ]
77
+ }
83
78
  },
84
79
  {
80
+ "name": "string.quoted.double.scad",
85
81
  "begin": "\"",
82
+ "end": "\"",
83
+ "patterns": [
84
+ {
85
+ "name": "constant.character.escape.scad",
86
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)"
87
+ }
88
+ ],
86
89
  "beginCaptures": {
87
90
  "0": {
88
91
  "name": "punctuation.definition.string.begin.scad"
89
92
  }
90
93
  },
91
- "end": "\"",
92
94
  "endCaptures": {
93
95
  "0": {
94
96
  "name": "punctuation.definition.string.end.scad"
95
97
  }
96
- },
97
- "name": "string.quoted.double.scad",
98
- "patterns": [
99
- {
100
- "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)",
101
- "name": "constant.character.escape.scad"
102
- }
103
- ]
98
+ }
104
99
  },
105
100
  {
106
- "match": "\\b(abs|acos|asun|atan|atan2|ceil|cos|exp|floor|ln|log|lookup|max|min|pow|rands|round|sign|sin|sqrt|tan|str|cube|sphere|cylinder|polyhedron|scale|rotate|translate|mirror|multimatrix|color|minkowski|hull|union|difference|intersection|echo)\\b",
107
- "name": "support.function.scad"
101
+ "name": "support.function.scad",
102
+ "match": "\\b(abs|acos|asun|atan|atan2|ceil|cos|exp|floor|ln|log|lookup|max|min|pow|rands|round|sign|sin|sqrt|tan|str|cube|sphere|cylinder|polyhedron|scale|rotate|translate|mirror|multimatrix|color|minkowski|hull|union|difference|intersection|echo)\\b"
108
103
  },
109
104
  {
110
- "match": "\\;",
111
- "name": "punctuation.terminator.statement.scad"
105
+ "name": "punctuation.terminator.statement.scad",
106
+ "match": "\\;"
112
107
  },
113
108
  {
114
- "match": ",[ |\\t]*",
115
- "name": "meta.delimiter.object.comma.scad"
109
+ "name": "meta.delimiter.object.comma.scad",
110
+ "match": ",[ |\\t]*"
116
111
  },
117
112
  {
118
- "match": "\\.",
119
- "name": "meta.delimiter.method.period.scad"
113
+ "name": "meta.delimiter.method.period.scad",
114
+ "match": "\\."
120
115
  },
121
116
  {
122
- "match": "\\{|\\}",
123
- "name": "meta.brace.curly.scad"
117
+ "name": "meta.brace.curly.scad",
118
+ "match": "\\{|\\}"
124
119
  },
125
120
  {
126
- "match": "\\(|\\)",
127
- "name": "meta.brace.round.scad"
121
+ "name": "meta.brace.round.scad",
122
+ "match": "\\(|\\)"
128
123
  },
129
124
  {
130
- "match": "\\[|\\]",
131
- "name": "meta.brace.square.scad"
125
+ "name": "meta.brace.square.scad",
126
+ "match": "\\[|\\]"
132
127
  },
133
128
  {
134
- "match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b",
135
- "name": "keyword.operator.scad"
129
+ "name": "keyword.operator.scad",
130
+ "match": "!|\\$|%|\u0026|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|\u003c=|\u003e=|\u003c\u003c=|\u003e\u003e=|\u003e\u003e\u003e=|\u003c\u003e|\u003c|\u003e|!|\u0026\u0026|\\|\\||\\?\\:|\\*=|(?\u003c!\\()/=|%=|\\+=|\\-=|\u0026=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b"
136
131
  },
137
132
  {
138
- "match": "\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b",
139
- "name": "constant.numeric.scad"
133
+ "name": "constant.numeric.scad",
134
+ "match": "\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b"
140
135
  },
141
136
  {
142
- "match": "\\btrue\\b",
143
- "name": "constant.language.boolean.true.scad"
137
+ "name": "constant.language.boolean.true.scad",
138
+ "match": "\\btrue\\b"
144
139
  },
145
140
  {
146
- "match": "\\bfalse\\b",
147
- "name": "constant.language.boolean.false.scad"
141
+ "name": "constant.language.boolean.false.scad",
142
+ "match": "\\bfalse\\b"
148
143
  }
149
- ],
150
- "scopeName": "source.scad",
151
- "uuid": "ED71CA06-521E-4D30-B9C0-480808749662"
152
- }
144
+ ]
145
+ }
@@ -1,12 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "scala"
4
- ],
5
- "firstLineMatch": "^#!/.*\\b\\w*scala\\b",
6
- "foldingStartMarker": "/\\*\\*|\\{\\s*$",
7
- "foldingStopMarker": "\\*\\*/|^\\s*\\}",
8
- "keyEquivalent": "^~S",
9
2
  "name": "Scala",
3
+ "scopeName": "source.scala",
10
4
  "patterns": [
11
5
  {
12
6
  "include": "#code"
@@ -14,57 +8,57 @@
14
8
  ],
15
9
  "repository": {
16
10
  "block-comments": {
11
+ "name": "comment.block.scala",
17
12
  "begin": "/\\*",
13
+ "end": "\\*/",
14
+ "patterns": [
15
+ {
16
+ "include": "#block-comments"
17
+ }
18
+ ],
18
19
  "beginCaptures": {
19
20
  "1": {
20
21
  "name": "punctuation.definition.comment.begin.scala"
21
22
  }
22
23
  },
23
- "end": "\\*/",
24
24
  "endCaptures": {
25
25
  "1": {
26
26
  "name": "punctuation.definition.comment.end.scala"
27
27
  }
28
- },
29
- "name": "comment.block.scala",
30
- "patterns": [
31
- {
32
- "include": "#block-comments"
33
- }
34
- ]
28
+ }
35
29
  },
36
30
  "char-literal": {
31
+ "name": "constant.character.literal.scala",
37
32
  "begin": "'",
38
- "beginCaptures": {
39
- "0": {
40
- "name": "punctuation.definition.character.begin.scala"
41
- }
42
- },
43
33
  "end": "'",
44
- "endCaptures": {
45
- "0": {
46
- "name": "punctuation.definition.character.end.scala"
47
- }
48
- },
49
- "name": "constant.character.literal.scala",
50
34
  "patterns": [
51
35
  {
52
- "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",
53
- "name": "constant.character.escape.scala"
36
+ "name": "constant.character.escape.scala",
37
+ "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"
54
38
  },
55
39
  {
56
- "match": "\\\\.",
57
- "name": "invalid.illegal.unrecognized-character-escape.scala"
40
+ "name": "invalid.illegal.unrecognized-character-escape.scala",
41
+ "match": "\\\\."
58
42
  },
59
43
  {
60
- "match": "[^']{2,}",
61
- "name": "invalid.illegal.character-literal-too-long"
44
+ "name": "invalid.illegal.character-literal-too-long",
45
+ "match": "[^']{2,}"
62
46
  },
63
47
  {
64
- "match": "(?<!')[^']",
65
- "name": "invalid.illegal.character-literal-too-long"
48
+ "name": "invalid.illegal.character-literal-too-long",
49
+ "match": "(?\u003c!')[^']"
66
50
  }
67
- ]
51
+ ],
52
+ "beginCaptures": {
53
+ "0": {
54
+ "name": "punctuation.definition.character.begin.scala"
55
+ }
56
+ },
57
+ "endCaptures": {
58
+ "0": {
59
+ "name": "punctuation.definition.character.end.scala"
60
+ }
61
+ }
68
62
  },
69
63
  "code": {
70
64
  "patterns": [
@@ -127,30 +121,21 @@
127
121
  "comments": {
128
122
  "patterns": [
129
123
  {
124
+ "name": "comment.block.empty.scala",
125
+ "match": "/\\*\\*/",
130
126
  "captures": {
131
127
  "0": {
132
128
  "name": "punctuation.definition.comment.scala"
133
129
  }
134
- },
135
- "match": "/\\*\\*/",
136
- "name": "comment.block.empty.scala"
130
+ }
137
131
  },
138
132
  {
133
+ "name": "comment.block.documentation.scala",
139
134
  "begin": "^\\s*(/\\*\\*)",
140
- "beginCaptures": {
141
- "1": {
142
- "name": "punctuation.definition.comment.scala"
143
- }
144
- },
145
135
  "end": "\\*/",
146
- "endCaptures": {
147
- "0": {
148
- "name": "punctuation.definition.comment.scala"
149
- }
150
- },
151
- "name": "comment.block.documentation.scala",
152
136
  "patterns": [
153
137
  {
138
+ "match": "(@param)\\s+(\\S+)",
154
139
  "captures": {
155
140
  "1": {
156
141
  "name": "keyword.other.documentation.scaladoc.scala"
@@ -158,10 +143,10 @@
158
143
  "2": {
159
144
  "name": "variable.parameter.scala"
160
145
  }
161
- },
162
- "match": "(@param)\\s+(\\S+)"
146
+ }
163
147
  },
164
148
  {
149
+ "match": "(@(?:tparam|throws))\\s+(\\S+)",
165
150
  "captures": {
166
151
  "1": {
167
152
  "name": "keyword.other.documentation.scaladoc.scala"
@@ -169,14 +154,14 @@
169
154
  "2": {
170
155
  "name": "entity.name.type.class.scala"
171
156
  }
172
- },
173
- "match": "(@(?:tparam|throws))\\s+(\\S+)"
157
+ }
174
158
  },
175
159
  {
176
- "match": "@(return|see|note|example|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b",
177
- "name": "keyword.other.documentation.scaladoc.scala"
160
+ "name": "keyword.other.documentation.scaladoc.scala",
161
+ "match": "@(return|see|note|example|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b"
178
162
  },
179
163
  {
164
+ "match": "(\\[\\[)([^\\]]+)(\\]\\])",
180
165
  "captures": {
181
166
  "1": {
182
167
  "name": "punctuation.definition.documentation.link.scala"
@@ -187,15 +172,25 @@
187
172
  "3": {
188
173
  "name": "punctuation.definition.documentation.link.scala"
189
174
  }
190
- },
191
- "match": "(\\[\\[)([^\\]]+)(\\]\\])"
175
+ }
176
+ }
177
+ ],
178
+ "beginCaptures": {
179
+ "1": {
180
+ "name": "punctuation.definition.comment.scala"
192
181
  }
193
- ]
182
+ },
183
+ "endCaptures": {
184
+ "0": {
185
+ "name": "punctuation.definition.comment.scala"
186
+ }
187
+ }
194
188
  },
195
189
  {
196
190
  "include": "#block-comments"
197
191
  },
198
192
  {
193
+ "match": "\\s*((//).*$\\n?)",
199
194
  "captures": {
200
195
  "1": {
201
196
  "name": "comment.line.double-slash.scala"
@@ -203,38 +198,38 @@
203
198
  "2": {
204
199
  "name": "punctuation.definition.comment.scala"
205
200
  }
206
- },
207
- "match": "\\s*((//).*$\\n?)"
201
+ }
208
202
  }
209
203
  ]
210
204
  },
211
205
  "constants": {
212
206
  "patterns": [
213
207
  {
214
- "match": "\\b(false|null|true|Nil|None)\\b",
215
- "name": "constant.language.scala"
208
+ "name": "constant.language.scala",
209
+ "match": "\\b(false|null|true|Nil|None)\\b"
216
210
  },
217
211
  {
218
- "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",
219
- "name": "constant.numeric.scala"
212
+ "name": "constant.numeric.scala",
213
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b"
220
214
  },
221
215
  {
222
- "match": "\\b(this|super|self)\\b",
223
- "name": "variable.language.scala"
216
+ "name": "variable.language.scala",
217
+ "match": "\\b(this|super|self)\\b"
224
218
  },
225
219
  {
226
- "match": "\\b(Unit|Boolean|Byte|Char|Short|Int|Float|Long|Double)\\b",
227
- "name": "storage.type.primitive.scala"
220
+ "name": "storage.type.primitive.scala",
221
+ "match": "\\b(Unit|Boolean|Byte|Char|Short|Int|Float|Long|Double)\\b"
228
222
  },
229
223
  {
230
- "match": "\\b(String|Symbol)\\b",
231
- "name": "storage.type.scala"
224
+ "name": "storage.type.scala",
225
+ "match": "\\b(String|Symbol)\\b"
232
226
  }
233
227
  ]
234
228
  },
235
229
  "declarations": {
236
230
  "patterns": [
237
231
  {
232
+ "match": "(?x)\n\t\t\t\t\t\t\\b(def)\\s+\n\t\t\t\t\t\t(`[^`]+`|[_$a-zA-Z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[(\\t ])|[_$a-zA-Z][_$a-zA-Z0-9]*|[-?~\u003e\u003c^+*%:!#|/@\\\\]+)",
238
233
  "captures": {
239
234
  "1": {
240
235
  "name": "keyword.control.def.scala"
@@ -242,10 +237,10 @@
242
237
  "2": {
243
238
  "name": "entity.name.function.declaration.scala"
244
239
  }
245
- },
246
- "match": "(?x)\n\t\t\t\t\t\t\\b(def)\\s+\n\t\t\t\t\t\t(`[^`]+`|[_$a-zA-Z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[(\\t ])|[_$a-zA-Z][_$a-zA-Z0-9]*|[-?~><^+*%:!#|/@\\\\]+)"
240
+ }
247
241
  },
248
242
  {
243
+ "match": "(?:(case) +)?\\b(class|trait|object)\\s+([^\\s\\{\\(\\[]+)",
249
244
  "captures": {
250
245
  "1": {
251
246
  "name": "storage.modifier.case.scala"
@@ -256,10 +251,10 @@
256
251
  "3": {
257
252
  "name": "entity.name.type.class.declaration.scala"
258
253
  }
259
- },
260
- "match": "(?:(case) +)?\\b(class|trait|object)\\s+([^\\s\\{\\(\\[]+)"
254
+ }
261
255
  },
262
256
  {
257
+ "match": "\\b(type)\\s+(`[^`]+`|[_$a-zA-Z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[\\t ])|[_$a-zA-Z][_$a-zA-Z0-9]*|[-?~\u003e\u003c^+*%:!#|/@\\\\]+)",
263
258
  "captures": {
264
259
  "1": {
265
260
  "name": "keyword.control.type.scala"
@@ -267,10 +262,10 @@
267
262
  "2": {
268
263
  "name": "entity.name.type.type.declaration.scala"
269
264
  }
270
- },
271
- "match": "\\b(type)\\s+(`[^`]+`|[_$a-zA-Z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[\\t ])|[_$a-zA-Z][_$a-zA-Z0-9]*|[-?~><^+*%:!#|/@\\\\]+)"
265
+ }
272
266
  },
273
267
  {
268
+ "match": "\\b(?:(val)|(var))\\s+(?:(`[^`]+`|[_$a-zA-Z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[\\t ])|[_$a-zA-Z][_$a-zA-Z0-9]*|[-?~\u003e\u003c^+*%:!#|/@\\\\]+)|(?=\\())",
274
269
  "captures": {
275
270
  "1": {
276
271
  "name": "storage.type.stable.scala"
@@ -281,10 +276,10 @@
281
276
  "3": {
282
277
  "name": "entity.name.type.val.declaration.scala"
283
278
  }
284
- },
285
- "match": "\\b(?:(val)|(var))\\s+(?:(`[^`]+`|[_$a-zA-Z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[\\t ])|[_$a-zA-Z][_$a-zA-Z0-9]*|[-?~><^+*%:!#|/@\\\\]+)|(?=\\())"
279
+ }
286
280
  },
287
281
  {
282
+ "match": "\\b(package) (object)\\s+([^\\s\\{\\(\\[]+)",
288
283
  "captures": {
289
284
  "1": {
290
285
  "name": "storage.type.package.scala"
@@ -295,10 +290,11 @@
295
290
  "3": {
296
291
  "name": "entity.name.type.class.declaration.scala"
297
292
  }
298
- },
299
- "match": "\\b(package) (object)\\s+([^\\s\\{\\(\\[]+)"
293
+ }
300
294
  },
301
295
  {
296
+ "name": "meta.package.scala",
297
+ "match": "\\b(package)\\s+([\\w\\.]+)",
302
298
  "captures": {
303
299
  "1": {
304
300
  "name": "storage.type.package.scala"
@@ -306,15 +302,15 @@
306
302
  "2": {
307
303
  "name": "entity.name.type.package.scala"
308
304
  }
309
- },
310
- "match": "\\b(package)\\s+([\\w\\.]+)",
311
- "name": "meta.package.scala"
305
+ }
312
306
  }
313
307
  ]
314
308
  },
315
309
  "empty-blocks": {
316
310
  "patterns": [
317
311
  {
312
+ "name": "meta.parentheses.scala",
313
+ "match": "(\\()(\\))",
318
314
  "captures": {
319
315
  "1": {
320
316
  "name": "punctuation.definition.parentheses.begin.scala"
@@ -322,11 +318,11 @@
322
318
  "2": {
323
319
  "name": "punctuation.definition.parentheses.end.scala"
324
320
  }
325
- },
326
- "match": "(\\()(\\))",
327
- "name": "meta.parentheses.scala"
321
+ }
328
322
  },
329
323
  {
324
+ "name": "meta.braces.scala",
325
+ "match": "(\\{)(\\})",
330
326
  "captures": {
331
327
  "1": {
332
328
  "name": "punctuation.definition.parentheses.begin.scala"
@@ -334,49 +330,33 @@
334
330
  "2": {
335
331
  "name": "punctuation.definition.parentheses.end.scala"
336
332
  }
337
- },
338
- "match": "(\\{)(\\})",
339
- "name": "meta.braces.scala"
333
+ }
340
334
  }
341
335
  ]
342
336
  },
343
337
  "imports": {
344
- "begin": "\\b(import)\\s+",
345
- "beginCaptures": {
346
- "1": {
347
- "name": "keyword.control.import.scala"
348
- }
349
- },
350
- "end": "(?<=[\\n;])",
351
338
  "name": "meta.import.scala",
339
+ "begin": "\\b(import)\\s+",
340
+ "end": "(?\u003c=[\\n;])",
352
341
  "patterns": [
353
342
  {
354
343
  "include": "#comments"
355
344
  },
356
345
  {
357
- "match": "([^\\s{;.]+)\\s*\\.\\s*",
358
- "name": "variable.other.package.scala"
346
+ "name": "variable.other.package.scala",
347
+ "match": "([^\\s{;.]+)\\s*\\.\\s*"
359
348
  },
360
349
  {
361
- "match": "([^\\s{;.]+)\\s*",
362
- "name": "variable.other.import.scala"
350
+ "name": "variable.other.import.scala",
351
+ "match": "([^\\s{;.]+)\\s*"
363
352
  },
364
353
  {
354
+ "name": "meta.import.selector.scala",
365
355
  "begin": "{",
366
- "beginCaptures": {
367
- "0": {
368
- "name": "meta.bracket.scala"
369
- }
370
- },
371
356
  "end": "}",
372
- "endCaptures": {
373
- "0": {
374
- "name": "meta.bracket.scala"
375
- }
376
- },
377
- "name": "meta.import.selector.scala",
378
357
  "patterns": [
379
358
  {
359
+ "match": "(?x) \\s*\n\t\t\t\t([^\\s.,}]+) \\s*\n\t\t\t\t(=\u003e) \\s*\n\t\t\t\t([^\\s.,}]+) \\s*\n\t\t\t ",
380
360
  "captures": {
381
361
  "1": {
382
362
  "name": "variable.other.import.renamed-from.scala"
@@ -387,20 +367,35 @@
387
367
  "3": {
388
368
  "name": "variable.other.import.renamed-to.scala"
389
369
  }
390
- },
391
- "match": "(?x) \\s*\n\t\t\t\t([^\\s.,}]+) \\s*\n\t\t\t\t(=>) \\s*\n\t\t\t\t([^\\s.,}]+) \\s*\n\t\t\t "
370
+ }
392
371
  },
393
372
  {
394
- "match": "([^\\s.,}]+)",
395
- "name": "variable.other.import.scala"
373
+ "name": "variable.other.import.scala",
374
+ "match": "([^\\s.,}]+)"
375
+ }
376
+ ],
377
+ "beginCaptures": {
378
+ "0": {
379
+ "name": "meta.bracket.scala"
396
380
  }
397
- ]
381
+ },
382
+ "endCaptures": {
383
+ "0": {
384
+ "name": "meta.bracket.scala"
385
+ }
386
+ }
398
387
  }
399
- ]
388
+ ],
389
+ "beginCaptures": {
390
+ "1": {
391
+ "name": "keyword.control.import.scala"
392
+ }
393
+ }
400
394
  },
401
395
  "inheritance": {
402
396
  "patterns": [
403
397
  {
398
+ "match": "(extends|with)\\s+([^\\s\\{\\(\\[\\]]+)",
404
399
  "captures": {
405
400
  "1": {
406
401
  "name": "storage.modifier.extends.scala"
@@ -408,12 +403,12 @@
408
403
  "2": {
409
404
  "name": "entity.other.inherited-class.scala"
410
405
  }
411
- },
412
- "match": "(extends|with)\\s+([^\\s\\{\\(\\[\\]]+)"
406
+ }
413
407
  }
414
408
  ]
415
409
  },
416
410
  "initialization": {
411
+ "match": "\\b(new)\\s+([^\\s\\{\\(\\[]+)",
417
412
  "captures": {
418
413
  "1": {
419
414
  "name": "keyword.control.directive.scala"
@@ -421,71 +416,68 @@
421
416
  "2": {
422
417
  "name": "entity.name.type.class.scala"
423
418
  }
424
- },
425
- "match": "\\b(new)\\s+([^\\s\\{\\(\\[]+)"
419
+ }
426
420
  },
427
421
  "keywords": {
428
422
  "patterns": [
429
423
  {
430
- "match": "\\b(return|throw)\\b",
431
- "name": "keyword.control.flow.jump.scala"
424
+ "name": "keyword.control.flow.jump.scala",
425
+ "match": "\\b(return|throw)\\b"
432
426
  },
433
427
  {
434
- "match": "\\b(classOf|isInstanceOf|asInstanceOf)\\b",
435
- "name": "support.function.type-of.scala"
428
+ "name": "support.function.type-of.scala",
429
+ "match": "\\b(classOf|isInstanceOf|asInstanceOf)\\b"
436
430
  },
437
431
  {
438
- "match": "\\b(else|if|do|while|for|yield|match|case)\\b",
439
- "name": "keyword.control.flow.scala"
432
+ "name": "keyword.control.flow.scala",
433
+ "match": "\\b(else|if|do|while|for|yield|match|case)\\b"
440
434
  },
441
435
  {
442
- "match": "\\b(catch|finally|try)\\b",
443
- "name": "keyword.control.exception.scala"
436
+ "name": "keyword.control.exception.scala",
437
+ "match": "\\b(catch|finally|try)\\b"
444
438
  },
445
439
  {
446
- "match": "(==?|!=|<=|>=|<>|<|>)",
447
- "name": "keyword.operator.comparison.scala"
440
+ "name": "keyword.operator.comparison.scala",
441
+ "match": "(==?|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e)"
448
442
  },
449
443
  {
450
- "match": "(\\-|\\+|\\*|/(?![/*])|%|~)",
451
- "name": "keyword.operator.arithmetic.scala"
444
+ "name": "keyword.operator.arithmetic.scala",
445
+ "match": "(\\-|\\+|\\*|/(?![/*])|%|~)"
452
446
  },
453
447
  {
454
- "match": "(!|&&|\\|\\|)",
455
- "name": "keyword.operator.logical.scala"
448
+ "name": "keyword.operator.logical.scala",
449
+ "match": "(!|\u0026\u0026|\\|\\|)"
456
450
  },
457
451
  {
458
- "match": "(<-|←|->|→|=>|⇒|\\?|\\:+|@|\\|)+",
459
- "name": "keyword.operator.scala"
452
+ "name": "keyword.operator.scala",
453
+ "match": "(\u003c-|←|-\u003e|→|=\u003e|⇒|\\?|\\:+|@|\\|)+"
460
454
  }
461
455
  ]
462
456
  },
463
457
  "meta-bounds": {
464
- "comment": "For themes: Matching view bounds",
465
- "match": "<%|=:=|<:<|<%<|>:|<:",
466
- "name": "meta.bounds.scala"
458
+ "name": "meta.bounds.scala",
459
+ "match": "\u003c%|=:=|\u003c:\u003c|\u003c%\u003c|\u003e:|\u003c:"
467
460
  },
468
461
  "meta-brackets": {
469
- "comment": "For themes: Brackets look nice when colored.",
470
462
  "patterns": [
471
463
  {
472
- "match": "{|}|\\(|\\)|\\[|\\]",
473
- "name": "meta.bracket.scala"
464
+ "name": "meta.bracket.scala",
465
+ "match": "{|}|\\(|\\)|\\[|\\]"
474
466
  }
475
467
  ]
476
468
  },
477
469
  "meta-colons": {
478
- "comment": "For themes: Matching type colons",
479
470
  "patterns": [
480
471
  {
481
- "match": "(?<!:):(?!:)",
482
- "name": "meta.colon.scala"
472
+ "name": "meta.colon.scala",
473
+ "match": "(?\u003c!:):(?!:)"
483
474
  }
484
475
  ]
485
476
  },
486
477
  "parameter-list": {
487
478
  "patterns": [
488
479
  {
480
+ "match": "(?\u003c=[^\\._$a-zA-Z0-9])(`[^`]+`|[_$a-z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[\\t ])|[_$a-z][_$a-zA-Z0-9]*|[-?~\u003e\u003c^+*%:!#|/@\\\\]+)\\s*(:)\\s+",
489
481
  "captures": {
490
482
  "1": {
491
483
  "name": "variable.parameter.scala"
@@ -493,124 +485,123 @@
493
485
  "2": {
494
486
  "name": "meta.colon.scala"
495
487
  }
496
- },
497
- "comment": "We do not match param names that start with a Capitol letter",
498
- "match": "(?<=[^\\._$a-zA-Z0-9])(`[^`]+`|[_$a-z][_$a-zA-Z0-9]*(?:_[^\\s])(?=[\\t ])|[_$a-z][_$a-zA-Z0-9]*|[-?~><^+*%:!#|/@\\\\]+)\\s*(:)\\s+"
488
+ }
499
489
  }
500
490
  ]
501
491
  },
502
492
  "qualifiedClassName": {
493
+ "match": "(\\b([A-Z][\\w]*))",
503
494
  "captures": {
504
495
  "1": {
505
496
  "name": "entity.name.type.class.scala"
506
497
  }
507
- },
508
- "match": "(\\b([A-Z][\\w]*))"
498
+ }
509
499
  },
510
500
  "scala-symbol": {
511
- "match": "'\\w+(?=[^'\\w])",
512
- "name": "entity.name.type.symbol.scala"
501
+ "name": "entity.name.type.symbol.scala",
502
+ "match": "'\\w+(?=[^'\\w])"
513
503
  },
514
504
  "storage-modifiers": {
515
505
  "patterns": [
516
506
  {
517
- "match": "\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b",
518
- "name": "storage.modifier.access.scala"
507
+ "name": "storage.modifier.access.scala",
508
+ "match": "\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b"
519
509
  },
520
510
  {
521
- "match": "\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b",
522
- "name": "storage.modifier.other.scala"
511
+ "name": "storage.modifier.other.scala",
512
+ "match": "\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b"
523
513
  }
524
514
  ]
525
515
  },
526
516
  "strings": {
527
517
  "patterns": [
528
518
  {
519
+ "name": "string.quoted.triple.scala",
529
520
  "begin": "\"\"\"",
521
+ "end": "\"\"\"(?!\")",
522
+ "patterns": [
523
+ {
524
+ "name": "constant.character.escape.scala",
525
+ "match": "\\\\\\\\|\\\\u[0-9A-Fa-f]{4}"
526
+ }
527
+ ],
530
528
  "beginCaptures": {
531
529
  "0": {
532
530
  "name": "punctuation.definition.string.begin.scala"
533
531
  }
534
532
  },
535
- "end": "\"\"\"(?!\")",
536
533
  "endCaptures": {
537
534
  "0": {
538
535
  "name": "punctuation.definition.string.end.scala"
539
536
  }
540
- },
541
- "name": "string.quoted.triple.scala",
542
- "patterns": [
543
- {
544
- "match": "\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",
545
- "name": "constant.character.escape.scala"
546
- }
547
- ]
537
+ }
548
538
  },
549
539
  {
540
+ "name": "string.quoted.double.scala",
550
541
  "begin": "\"",
542
+ "end": "\"",
543
+ "patterns": [
544
+ {
545
+ "name": "constant.character.escape.scala",
546
+ "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"
547
+ },
548
+ {
549
+ "name": "invalid.illegal.unrecognized-string-escape.scala",
550
+ "match": "\\\\."
551
+ }
552
+ ],
551
553
  "beginCaptures": {
552
554
  "0": {
553
555
  "name": "punctuation.definition.string.begin.scala"
554
556
  }
555
557
  },
556
- "end": "\"",
557
558
  "endCaptures": {
558
559
  "0": {
559
560
  "name": "punctuation.definition.string.end.scala"
560
561
  }
561
- },
562
- "name": "string.quoted.double.scala",
563
- "patterns": [
564
- {
565
- "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",
566
- "name": "constant.character.escape.scala"
567
- },
568
- {
569
- "match": "\\\\.",
570
- "name": "invalid.illegal.unrecognized-string-escape.scala"
571
- }
572
- ]
562
+ }
573
563
  }
574
564
  ]
575
565
  },
576
566
  "xml-doublequotedString": {
567
+ "name": "string.quoted.double.xml",
577
568
  "begin": "\"",
569
+ "end": "\"",
570
+ "patterns": [
571
+ {
572
+ "include": "#xml-entity"
573
+ }
574
+ ],
578
575
  "beginCaptures": {
579
576
  "0": {
580
577
  "name": "punctuation.definition.string.begin.xml"
581
578
  }
582
579
  },
583
- "end": "\"",
584
580
  "endCaptures": {
585
581
  "0": {
586
582
  "name": "punctuation.definition.string.end.xml"
587
583
  }
588
- },
589
- "name": "string.quoted.double.xml",
590
- "patterns": [
591
- {
592
- "include": "#xml-entity"
593
- }
594
- ]
584
+ }
595
585
  },
596
586
  "xml-embedded-content": {
597
587
  "patterns": [
598
588
  {
589
+ "name": "meta.source.embedded.scala",
599
590
  "begin": "{",
600
- "captures": {
601
- "0": {
602
- "name": "meta.bracket.scala"
603
- }
604
- },
605
591
  "end": "}",
606
- "name": "meta.source.embedded.scala",
607
592
  "patterns": [
608
593
  {
609
594
  "include": "#code"
610
595
  }
611
- ]
596
+ ],
597
+ "captures": {
598
+ "0": {
599
+ "name": "meta.bracket.scala"
600
+ }
601
+ }
612
602
  },
613
603
  {
604
+ "match": " (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=",
614
605
  "captures": {
615
606
  "1": {
616
607
  "name": "entity.other.attribute-name.namespace.xml"
@@ -624,8 +615,7 @@
624
615
  "4": {
625
616
  "name": "entity.other.attribute-name.localname.xml"
626
617
  }
627
- },
628
- "match": " (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)="
618
+ }
629
619
  },
630
620
  {
631
621
  "include": "#xml-doublequotedString"
@@ -636,6 +626,8 @@
636
626
  ]
637
627
  },
638
628
  "xml-entity": {
629
+ "name": "constant.character.entity.xml",
630
+ "match": "(\u0026)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",
639
631
  "captures": {
640
632
  "1": {
641
633
  "name": "punctuation.definition.constant.xml"
@@ -643,14 +635,19 @@
643
635
  "3": {
644
636
  "name": "punctuation.definition.constant.xml"
645
637
  }
646
- },
647
- "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",
648
- "name": "constant.character.entity.xml"
638
+ }
649
639
  },
650
640
  "xml-literal": {
651
641
  "patterns": [
652
642
  {
653
- "begin": "(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^>]*)?></\\2>)",
643
+ "name": "meta.tag.no-content.xml",
644
+ "begin": "(\u003c)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^\u003e]*)?\u003e\u003c/\\2\u003e)",
645
+ "end": "(\u003e(\u003c))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(\u003e)",
646
+ "patterns": [
647
+ {
648
+ "include": "#xml-embedded-content"
649
+ }
650
+ ],
654
651
  "beginCaptures": {
655
652
  "1": {
656
653
  "name": "punctuation.definition.tag.xml"
@@ -668,8 +665,6 @@
668
665
  "name": "entity.name.tag.localname.xml"
669
666
  }
670
667
  },
671
- "comment": "We do not allow a tag name to start with a - since this would\n\t\t\t\t likely conflict with the <- operator. This is not very common\n\t\t\t\t for tag names anyway. Also code such as -- if (val <val2 || val> val3)\n\t\t\t\t will falsly be recognized as an xml tag. The solution is to put a\n\t\t\t\t space on either side of the comparison operator",
672
- "end": "(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)",
673
668
  "endCaptures": {
674
669
  "1": {
675
670
  "name": "punctuation.definition.tag.xml"
@@ -692,16 +687,17 @@
692
687
  "7": {
693
688
  "name": "punctuation.definition.tag.xml"
694
689
  }
695
- },
696
- "name": "meta.tag.no-content.xml",
690
+ }
691
+ },
692
+ {
693
+ "name": "meta.tag.xml",
694
+ "begin": "(\u003c/?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^\u003e]*?\u003e)",
695
+ "end": "(/?\u003e)",
697
696
  "patterns": [
698
697
  {
699
698
  "include": "#xml-embedded-content"
700
699
  }
701
- ]
702
- },
703
- {
704
- "begin": "(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)",
700
+ ],
705
701
  "captures": {
706
702
  "1": {
707
703
  "name": "punctuation.definition.tag.xml"
@@ -718,14 +714,7 @@
718
714
  "5": {
719
715
  "name": "entity.name.tag.localname.xml"
720
716
  }
721
- },
722
- "end": "(/?>)",
723
- "name": "meta.tag.xml",
724
- "patterns": [
725
- {
726
- "include": "#xml-embedded-content"
727
- }
728
- ]
717
+ }
729
718
  },
730
719
  {
731
720
  "include": "#xml-entity"
@@ -733,26 +722,24 @@
733
722
  ]
734
723
  },
735
724
  "xml-singlequotedString": {
725
+ "name": "string.quoted.single.xml",
736
726
  "begin": "'",
727
+ "end": "'",
728
+ "patterns": [
729
+ {
730
+ "include": "#xml-entity"
731
+ }
732
+ ],
737
733
  "beginCaptures": {
738
734
  "0": {
739
735
  "name": "punctuation.definition.string.begin.xml"
740
736
  }
741
737
  },
742
- "end": "'",
743
738
  "endCaptures": {
744
739
  "0": {
745
740
  "name": "punctuation.definition.string.end.xml"
746
741
  }
747
- },
748
- "name": "string.quoted.single.xml",
749
- "patterns": [
750
- {
751
- "include": "#xml-entity"
752
- }
753
- ]
742
+ }
754
743
  }
755
- },
756
- "scopeName": "source.scala",
757
- "uuid": "158C0929-299A-40C8-8D89-316BE0C446E8"
758
- }
744
+ }
745
+ }