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,12 +1,6 @@
1
1
  {
2
- "fileTypes": [
3
- "erazor",
4
- "ehtml",
5
- "erazor.html"
6
- ],
7
- "foldingStartMarker": "\\{\\s*$",
8
- "foldingStopMarker": "^\\s*\\}",
9
2
  "name": "Erazor (HTML)",
3
+ "scopeName": "source.erazor",
10
4
  "patterns": [
11
5
  {
12
6
  "include": "#controlblock"
@@ -28,20 +22,10 @@
28
22
  }
29
23
  ],
30
24
  "repository": {
31
- "scriptblock": {
32
- "begin": "@\\{",
25
+ "codeblock": {
26
+ "name": "source.erazor",
27
+ "begin": "\\{",
33
28
  "end": "\\}",
34
- "name": "source.hscript",
35
- "beginCaptures": {
36
- "0": {
37
- "name": "entity.name.tag.erazor"
38
- }
39
- },
40
- "endCaptures": {
41
- "0": {
42
- "name": "entity.name.tag.erazor"
43
- }
44
- },
45
29
  "patterns": [
46
30
  {
47
31
  "include": "#codeblock"
@@ -51,40 +35,53 @@
51
35
  }
52
36
  ]
53
37
  },
54
- "function": {
55
- "begin": "(@([a-zA-Z.]+)?)(\\()",
56
- "end": "\\)",
38
+ "controlblock": {
57
39
  "name": "source.erazor",
40
+ "begin": "(@(if|else|while|for))(\\()",
41
+ "end": "\\)",
42
+ "patterns": [
43
+ {
44
+ "include": "source.haxe.2"
45
+ }
46
+ ],
58
47
  "beginCaptures": {
59
48
  "1": {
60
- "name": "entity.name.function.erazor"
49
+ "name": "keyword.control.haxe.flow-control.2"
61
50
  }
62
- },
51
+ }
52
+ },
53
+ "else": {
63
54
  "patterns": [
64
55
  {
65
- "include": "source.haxe.2"
56
+ "name": "source.erazor",
57
+ "match": "\\}(else)\\{",
58
+ "captures": {
59
+ "1": {
60
+ "name": "keyword.control.haxe.flow-control.2"
61
+ }
62
+ }
66
63
  }
67
64
  ]
68
65
  },
69
- "controlblock": {
70
- "begin": "(@(if|else|while|for))(\\()",
71
- "end": "\\)",
66
+ "function": {
72
67
  "name": "source.erazor",
73
- "beginCaptures": {
74
- "1": {
75
- "name": "keyword.control.haxe.flow-control.2"
76
- }
77
- },
68
+ "begin": "(@([a-zA-Z.]+)?)(\\()",
69
+ "end": "\\)",
78
70
  "patterns": [
79
71
  {
80
72
  "include": "source.haxe.2"
81
73
  }
82
- ]
74
+ ],
75
+ "beginCaptures": {
76
+ "1": {
77
+ "name": "entity.name.function.erazor"
78
+ }
79
+ }
83
80
  },
84
- "codeblock": {
85
- "begin": "\\{",
81
+ "scriptblock": {
82
+ "name": "source.hscript",
83
+ "begin": "@\\{",
86
84
  "end": "\\}",
87
- "name": "source.erazor",
88
85
  "patterns": [
89
86
  {
90
87
  "include": "#codeblock"
@@ -92,13 +89,23 @@
92
89
  {
93
90
  "include": "source.haxe.2"
94
91
  }
95
- ]
92
+ ],
93
+ "beginCaptures": {
94
+ "0": {
95
+ "name": "entity.name.tag.erazor"
96
+ }
97
+ },
98
+ "endCaptures": {
99
+ "0": {
100
+ "name": "entity.name.tag.erazor"
101
+ }
102
+ }
96
103
  },
97
104
  "variables": {
98
105
  "patterns": [
99
106
  {
100
- "match": "(@[A-Za-z0-9_.]+)",
101
107
  "name": "source.erazor",
108
+ "match": "(@[A-Za-z0-9_.]+)",
102
109
  "captures": {
103
110
  "1": {
104
111
  "name": "entity.name.variable.erazor"
@@ -106,21 +113,6 @@
106
113
  }
107
114
  }
108
115
  ]
109
- },
110
- "else": {
111
- "patterns": [
112
- {
113
- "match": "\\}(else)\\{",
114
- "name": "source.erazor",
115
- "captures": {
116
- "1": {
117
- "name": "keyword.control.haxe.flow-control.2"
118
- }
119
- }
120
- }
121
- ]
122
116
  }
123
- },
124
- "scopeName": "source.erazor",
125
- "uuid": "93706aaa-9b66-4e9e-bb64-31a8ffcfb00e"
126
- }
117
+ }
118
+ }
@@ -1,11 +1,6 @@
1
1
  {
2
- "comment": "The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace). Also, the function/module/record/macro names must be given unquoted. -- desp",
3
- "fileTypes": [
4
- "erl",
5
- "hrl"
6
- ],
7
- "keyEquivalent": "^~E",
8
2
  "name": "Erlang",
3
+ "scopeName": "source.erlang",
9
4
  "patterns": [
10
5
  {
11
6
  "include": "#module-directive"
@@ -39,21 +34,13 @@
39
34
  "atom": {
40
35
  "patterns": [
41
36
  {
37
+ "name": "constant.other.symbol.quoted.single.erlang",
42
38
  "begin": "(')",
43
- "beginCaptures": {
44
- "1": {
45
- "name": "punctuation.definition.symbol.begin.erlang"
46
- }
47
- },
48
39
  "end": "(')",
49
- "endCaptures": {
50
- "1": {
51
- "name": "punctuation.definition.symbol.end.erlang"
52
- }
53
- },
54
- "name": "constant.other.symbol.quoted.single.erlang",
55
40
  "patterns": [
56
41
  {
42
+ "name": "constant.other.symbol.escape.erlang",
43
+ "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3})",
57
44
  "captures": {
58
45
  "1": {
59
46
  "name": "punctuation.definition.escape.erlang"
@@ -61,23 +48,33 @@
61
48
  "3": {
62
49
  "name": "punctuation.definition.escape.erlang"
63
50
  }
64
- },
65
- "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3})",
66
- "name": "constant.other.symbol.escape.erlang"
51
+ }
67
52
  },
68
53
  {
69
- "match": "\\\\\\^?.?",
70
- "name": "invalid.illegal.atom.erlang"
54
+ "name": "invalid.illegal.atom.erlang",
55
+ "match": "\\\\\\^?.?"
56
+ }
57
+ ],
58
+ "beginCaptures": {
59
+ "1": {
60
+ "name": "punctuation.definition.symbol.begin.erlang"
61
+ }
62
+ },
63
+ "endCaptures": {
64
+ "1": {
65
+ "name": "punctuation.definition.symbol.end.erlang"
71
66
  }
72
- ]
67
+ }
73
68
  },
74
69
  {
75
- "match": "[a-z][a-zA-Z\\d@_]*+",
76
- "name": "constant.other.symbol.unquoted.erlang"
70
+ "name": "constant.other.symbol.unquoted.erlang",
71
+ "match": "[a-z][a-zA-Z\\d@_]*+"
77
72
  }
78
73
  ]
79
74
  },
80
75
  "behaviour-directive": {
76
+ "name": "meta.directive.behaviour.erlang",
77
+ "match": "^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",
81
78
  "captures": {
82
79
  "1": {
83
80
  "name": "punctuation.section.directive.begin.erlang"
@@ -97,26 +94,15 @@
97
94
  "6": {
98
95
  "name": "punctuation.section.directive.end.erlang"
99
96
  }
100
- },
101
- "match": "^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",
102
- "name": "meta.directive.behaviour.erlang"
97
+ }
103
98
  },
104
99
  "binary": {
105
- "begin": "(<<)",
106
- "beginCaptures": {
107
- "1": {
108
- "name": "punctuation.definition.binary.begin.erlang"
109
- }
110
- },
111
- "end": "(>>)",
112
- "endCaptures": {
113
- "1": {
114
- "name": "punctuation.definition.binary.end.erlang"
115
- }
116
- },
117
100
  "name": "meta.structure.binary.erlang",
101
+ "begin": "(\u003c\u003c)",
102
+ "end": "(\u003e\u003e)",
118
103
  "patterns": [
119
104
  {
105
+ "match": "(,)|(:)",
120
106
  "captures": {
121
107
  "1": {
122
108
  "name": "punctuation.separator.binary.erlang"
@@ -124,8 +110,7 @@
124
110
  "2": {
125
111
  "name": "punctuation.separator.value-size.erlang"
126
112
  }
127
- },
128
- "match": "(,)|(:)"
113
+ }
129
114
  },
130
115
  {
131
116
  "include": "#internal-type-specifiers"
@@ -133,11 +118,23 @@
133
118
  {
134
119
  "include": "#everything-else"
135
120
  }
136
- ]
121
+ ],
122
+ "beginCaptures": {
123
+ "1": {
124
+ "name": "punctuation.definition.binary.begin.erlang"
125
+ }
126
+ },
127
+ "endCaptures": {
128
+ "1": {
129
+ "name": "punctuation.definition.binary.end.erlang"
130
+ }
131
+ }
137
132
  },
138
133
  "character": {
139
134
  "patterns": [
140
135
  {
136
+ "name": "constant.character.erlang",
137
+ "match": "(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3}))",
141
138
  "captures": {
142
139
  "1": {
143
140
  "name": "punctuation.definition.character.erlang"
@@ -151,54 +148,59 @@
151
148
  "5": {
152
149
  "name": "punctuation.definition.escape.erlang"
153
150
  }
154
- },
155
- "match": "(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3}))",
156
- "name": "constant.character.erlang"
151
+ }
157
152
  },
158
153
  {
159
- "match": "\\$\\\\\\^?.?",
160
- "name": "invalid.illegal.character.erlang"
154
+ "name": "invalid.illegal.character.erlang",
155
+ "match": "\\$\\\\\\^?.?"
161
156
  },
162
157
  {
158
+ "name": "constant.character.erlang",
159
+ "match": "(\\$)\\S",
163
160
  "captures": {
164
161
  "1": {
165
162
  "name": "punctuation.definition.character.erlang"
166
163
  }
167
- },
168
- "match": "(\\$)\\S",
169
- "name": "constant.character.erlang"
164
+ }
170
165
  },
171
166
  {
172
- "match": "\\$.?",
173
- "name": "invalid.illegal.character.erlang"
167
+ "name": "invalid.illegal.character.erlang",
168
+ "match": "\\$.?"
174
169
  }
175
170
  ]
176
171
  },
177
172
  "comment": {
178
173
  "begin": "(^[ \\t]+)?(?=%)",
179
- "beginCaptures": {
180
- "1": {
181
- "name": "punctuation.whitespace.comment.leading.erlang"
182
- }
183
- },
184
174
  "end": "(?!\\G)",
185
175
  "patterns": [
186
176
  {
177
+ "name": "comment.line.percentage.erlang",
187
178
  "begin": "%",
179
+ "end": "\\n",
188
180
  "beginCaptures": {
189
181
  "0": {
190
182
  "name": "punctuation.definition.comment.erlang"
191
183
  }
192
- },
193
- "end": "\\n",
194
- "name": "comment.line.percentage.erlang"
184
+ }
195
185
  }
196
- ]
186
+ ],
187
+ "beginCaptures": {
188
+ "1": {
189
+ "name": "punctuation.whitespace.comment.leading.erlang"
190
+ }
191
+ }
197
192
  },
198
193
  "define-directive": {
199
194
  "patterns": [
200
195
  {
196
+ "name": "meta.directive.define.erlang",
201
197
  "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(,)",
198
+ "end": "(\\))\\s*+(\\.)",
199
+ "patterns": [
200
+ {
201
+ "include": "#everything-else"
202
+ }
203
+ ],
202
204
  "beginCaptures": {
203
205
  "1": {
204
206
  "name": "punctuation.section.directive.begin.erlang"
@@ -216,7 +218,6 @@
216
218
  "name": "punctuation.separator.parameters.erlang"
217
219
  }
218
220
  },
219
- "end": "(\\))\\s*+(\\.)",
220
221
  "endCaptures": {
221
222
  "1": {
222
223
  "name": "punctuation.definition.parameters.end.erlang"
@@ -224,29 +225,25 @@
224
225
  "2": {
225
226
  "name": "punctuation.section.directive.end.erlang"
226
227
  }
227
- },
228
- "name": "meta.directive.define.erlang",
229
- "patterns": [
230
- {
231
- "include": "#everything-else"
232
- }
233
- ]
228
+ }
234
229
  },
235
230
  {
231
+ "name": "meta.directive.define.erlang",
236
232
  "begin": "(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()",
237
233
  "end": "(\\))\\s*+(\\.)",
238
- "endCaptures": {
239
- "1": {
240
- "name": "punctuation.definition.parameters.end.erlang"
241
- },
242
- "2": {
243
- "name": "punctuation.section.directive.end.erlang"
244
- }
245
- },
246
- "name": "meta.directive.define.erlang",
247
234
  "patterns": [
248
235
  {
249
236
  "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()",
237
+ "end": "(\\))\\s*(,)",
238
+ "patterns": [
239
+ {
240
+ "name": "punctuation.separator.parameters.erlang",
241
+ "match": ","
242
+ },
243
+ {
244
+ "include": "#everything-else"
245
+ }
246
+ ],
250
247
  "beginCaptures": {
251
248
  "1": {
252
249
  "name": "punctuation.section.directive.begin.erlang"
@@ -264,7 +261,6 @@
264
261
  "name": "punctuation.definition.parameters.begin.erlang"
265
262
  }
266
263
  },
267
- "end": "(\\))\\s*(,)",
268
264
  "endCaptures": {
269
265
  "1": {
270
266
  "name": "punctuation.definition.parameters.end.erlang"
@@ -272,32 +268,38 @@
272
268
  "2": {
273
269
  "name": "punctuation.separator.parameters.erlang"
274
270
  }
275
- },
276
- "patterns": [
277
- {
278
- "match": ",",
279
- "name": "punctuation.separator.parameters.erlang"
280
- },
281
- {
282
- "include": "#everything-else"
283
- }
284
- ]
271
+ }
285
272
  },
286
273
  {
287
- "match": "\\|\\||\\||:|;|,|\\.|->",
288
- "name": "punctuation.separator.define.erlang"
274
+ "name": "punctuation.separator.define.erlang",
275
+ "match": "\\|\\||\\||:|;|,|\\.|-\u003e"
289
276
  },
290
277
  {
291
278
  "include": "#everything-else"
292
279
  }
293
- ]
280
+ ],
281
+ "endCaptures": {
282
+ "1": {
283
+ "name": "punctuation.definition.parameters.end.erlang"
284
+ },
285
+ "2": {
286
+ "name": "punctuation.section.directive.end.erlang"
287
+ }
288
+ }
294
289
  }
295
290
  ]
296
291
  },
297
292
  "directive": {
298
293
  "patterns": [
299
294
  {
295
+ "name": "meta.directive.erlang",
300
296
  "begin": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)",
297
+ "end": "(\\)?)\\s*+(\\.)",
298
+ "patterns": [
299
+ {
300
+ "include": "#everything-else"
301
+ }
302
+ ],
301
303
  "beginCaptures": {
302
304
  "1": {
303
305
  "name": "punctuation.section.directive.begin.erlang"
@@ -309,7 +311,6 @@
309
311
  "name": "punctuation.definition.parameters.begin.erlang"
310
312
  }
311
313
  },
312
- "end": "(\\)?)\\s*+(\\.)",
313
314
  "endCaptures": {
314
315
  "1": {
315
316
  "name": "punctuation.definition.parameters.end.erlang"
@@ -317,15 +318,11 @@
317
318
  "2": {
318
319
  "name": "punctuation.section.directive.end.erlang"
319
320
  }
320
- },
321
- "name": "meta.directive.erlang",
322
- "patterns": [
323
- {
324
- "include": "#everything-else"
325
- }
326
- ]
321
+ }
327
322
  },
328
323
  {
324
+ "name": "meta.directive.erlang",
325
+ "match": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",
329
326
  "captures": {
330
327
  "1": {
331
328
  "name": "punctuation.section.directive.begin.erlang"
@@ -336,9 +333,7 @@
336
333
  "3": {
337
334
  "name": "punctuation.section.directive.end.erlang"
338
335
  }
339
- },
340
- "match": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",
341
- "name": "meta.directive.erlang"
336
+ }
342
337
  }
343
338
  ]
344
339
  },
@@ -400,19 +395,32 @@
400
395
  "expression": {
401
396
  "patterns": [
402
397
  {
398
+ "name": "meta.expression.if.erlang",
403
399
  "begin": "\\b(if)\\b",
400
+ "end": "\\b(end)\\b",
401
+ "patterns": [
402
+ {
403
+ "include": "#internal-expression-punctuation"
404
+ },
405
+ {
406
+ "include": "#everything-else"
407
+ }
408
+ ],
404
409
  "beginCaptures": {
405
410
  "1": {
406
411
  "name": "keyword.control.if.erlang"
407
412
  }
408
413
  },
409
- "end": "\\b(end)\\b",
410
414
  "endCaptures": {
411
415
  "1": {
412
416
  "name": "keyword.control.end.erlang"
413
417
  }
414
- },
415
- "name": "meta.expression.if.erlang",
418
+ }
419
+ },
420
+ {
421
+ "name": "meta.expression.case.erlang",
422
+ "begin": "\\b(case)\\b",
423
+ "end": "\\b(end)\\b",
416
424
  "patterns": [
417
425
  {
418
426
  "include": "#internal-expression-punctuation"
@@ -420,22 +428,22 @@
420
428
  {
421
429
  "include": "#everything-else"
422
430
  }
423
- ]
424
- },
425
- {
426
- "begin": "\\b(case)\\b",
431
+ ],
427
432
  "beginCaptures": {
428
433
  "1": {
429
434
  "name": "keyword.control.case.erlang"
430
435
  }
431
436
  },
432
- "end": "\\b(end)\\b",
433
437
  "endCaptures": {
434
438
  "1": {
435
439
  "name": "keyword.control.end.erlang"
436
440
  }
437
- },
438
- "name": "meta.expression.case.erlang",
441
+ }
442
+ },
443
+ {
444
+ "name": "meta.expression.receive.erlang",
445
+ "begin": "\\b(receive)\\b",
446
+ "end": "\\b(end)\\b",
439
447
  "patterns": [
440
448
  {
441
449
  "include": "#internal-expression-punctuation"
@@ -443,32 +451,20 @@
443
451
  {
444
452
  "include": "#everything-else"
445
453
  }
446
- ]
447
- },
448
- {
449
- "begin": "\\b(receive)\\b",
454
+ ],
450
455
  "beginCaptures": {
451
456
  "1": {
452
457
  "name": "keyword.control.receive.erlang"
453
458
  }
454
459
  },
455
- "end": "\\b(end)\\b",
456
460
  "endCaptures": {
457
461
  "1": {
458
462
  "name": "keyword.control.end.erlang"
459
463
  }
460
- },
461
- "name": "meta.expression.receive.erlang",
462
- "patterns": [
463
- {
464
- "include": "#internal-expression-punctuation"
465
- },
466
- {
467
- "include": "#everything-else"
468
- }
469
- ]
464
+ }
470
465
  },
471
466
  {
467
+ "match": "\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)\\s*+(:)\\s*+)?([a-z][a-zA-Z\\d@_]*+)\\s*(/)",
472
468
  "captures": {
473
469
  "1": {
474
470
  "name": "keyword.control.fun.erlang"
@@ -485,57 +481,46 @@
485
481
  "6": {
486
482
  "name": "punctuation.separator.function-arity.erlang"
487
483
  }
488
- },
489
- "match": "\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)\\s*+(:)\\s*+)?([a-z][a-zA-Z\\d@_]*+)\\s*(/)"
484
+ }
490
485
  },
491
486
  {
487
+ "name": "meta.expression.fun.erlang",
492
488
  "begin": "\\b(fun)\\b",
493
- "beginCaptures": {
494
- "1": {
495
- "name": "keyword.control.fun.erlang"
496
- }
497
- },
498
489
  "end": "\\b(end)\\b",
499
- "endCaptures": {
500
- "1": {
501
- "name": "keyword.control.end.erlang"
502
- }
503
- },
504
- "name": "meta.expression.fun.erlang",
505
490
  "patterns": [
506
491
  {
507
492
  "begin": "(?=\\()",
508
493
  "end": "(;)|(?=\\bend\\b)",
509
- "endCaptures": {
510
- "1": {
511
- "name": "punctuation.separator.clauses.erlang"
512
- }
513
- },
514
494
  "patterns": [
515
495
  {
516
496
  "include": "#internal-function-parts"
517
497
  }
518
- ]
498
+ ],
499
+ "endCaptures": {
500
+ "1": {
501
+ "name": "punctuation.separator.clauses.erlang"
502
+ }
503
+ }
519
504
  },
520
505
  {
521
506
  "include": "#everything-else"
522
507
  }
523
- ]
524
- },
525
- {
526
- "begin": "\\b(try)\\b",
508
+ ],
527
509
  "beginCaptures": {
528
510
  "1": {
529
- "name": "keyword.control.try.erlang"
511
+ "name": "keyword.control.fun.erlang"
530
512
  }
531
513
  },
532
- "end": "\\b(end)\\b",
533
514
  "endCaptures": {
534
515
  "1": {
535
516
  "name": "keyword.control.end.erlang"
536
517
  }
537
- },
518
+ }
519
+ },
520
+ {
538
521
  "name": "meta.expression.try.erlang",
522
+ "begin": "\\b(try)\\b",
523
+ "end": "\\b(end)\\b",
539
524
  "patterns": [
540
525
  {
541
526
  "include": "#internal-expression-punctuation"
@@ -543,22 +528,22 @@
543
528
  {
544
529
  "include": "#everything-else"
545
530
  }
546
- ]
547
- },
548
- {
549
- "begin": "\\b(begin)\\b",
531
+ ],
550
532
  "beginCaptures": {
551
533
  "1": {
552
- "name": "keyword.control.begin.erlang"
534
+ "name": "keyword.control.try.erlang"
553
535
  }
554
536
  },
555
- "end": "\\b(end)\\b",
556
537
  "endCaptures": {
557
538
  "1": {
558
539
  "name": "keyword.control.end.erlang"
559
540
  }
560
- },
541
+ }
542
+ },
543
+ {
561
544
  "name": "meta.expression.begin.erlang",
545
+ "begin": "\\b(begin)\\b",
546
+ "end": "\\b(end)\\b",
562
547
  "patterns": [
563
548
  {
564
549
  "include": "#internal-expression-punctuation"
@@ -566,61 +551,56 @@
566
551
  {
567
552
  "include": "#everything-else"
568
553
  }
569
- ]
570
- },
571
- {
572
- "begin": "\\b(query)\\b",
554
+ ],
573
555
  "beginCaptures": {
574
556
  "1": {
575
- "name": "keyword.control.query.erlang"
557
+ "name": "keyword.control.begin.erlang"
576
558
  }
577
559
  },
578
- "end": "\\b(end)\\b",
579
560
  "endCaptures": {
580
561
  "1": {
581
562
  "name": "keyword.control.end.erlang"
582
563
  }
583
- },
564
+ }
565
+ },
566
+ {
584
567
  "name": "meta.expression.query.erlang",
568
+ "begin": "\\b(query)\\b",
569
+ "end": "\\b(end)\\b",
585
570
  "patterns": [
586
571
  {
587
572
  "include": "#everything-else"
588
573
  }
589
- ]
574
+ ],
575
+ "beginCaptures": {
576
+ "1": {
577
+ "name": "keyword.control.query.erlang"
578
+ }
579
+ },
580
+ "endCaptures": {
581
+ "1": {
582
+ "name": "keyword.control.end.erlang"
583
+ }
584
+ }
590
585
  }
591
586
  ]
592
587
  },
593
588
  "function": {
589
+ "name": "meta.function.erlang",
594
590
  "begin": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()",
595
- "beginCaptures": {
596
- "1": {
597
- "name": "entity.name.function.definition.erlang"
598
- }
599
- },
600
591
  "end": "(\\.)",
601
- "endCaptures": {
602
- "1": {
603
- "name": "punctuation.terminator.function.erlang"
604
- }
605
- },
606
- "name": "meta.function.erlang",
607
592
  "patterns": [
608
593
  {
594
+ "match": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()",
609
595
  "captures": {
610
596
  "1": {
611
597
  "name": "entity.name.function.erlang"
612
598
  }
613
- },
614
- "match": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()"
599
+ }
615
600
  },
616
601
  {
617
602
  "begin": "(?=\\()",
618
603
  "end": "(;)|(?=\\.)",
619
- "endCaptures": {
620
- "1": {
621
- "name": "punctuation.separator.clauses.erlang"
622
- }
623
- },
624
604
  "patterns": [
625
605
  {
626
606
  "include": "#parenthesized-expression"
@@ -628,25 +608,45 @@
628
608
  {
629
609
  "include": "#internal-function-parts"
630
610
  }
631
- ]
611
+ ],
612
+ "endCaptures": {
613
+ "1": {
614
+ "name": "punctuation.separator.clauses.erlang"
615
+ }
616
+ }
632
617
  },
633
618
  {
634
619
  "include": "#everything-else"
635
620
  }
636
- ]
637
- },
638
- "function-call": {
639
- "begin": "(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+\\())",
640
- "end": "(\\))",
641
- "endCaptures": {
621
+ ],
622
+ "beginCaptures": {
642
623
  "1": {
643
- "name": "punctuation.definition.parameters.end.erlang"
624
+ "name": "entity.name.function.definition.erlang"
644
625
  }
645
626
  },
627
+ "endCaptures": {
628
+ "1": {
629
+ "name": "punctuation.terminator.function.erlang"
630
+ }
631
+ }
632
+ },
633
+ "function-call": {
646
634
  "name": "meta.function-call.erlang",
635
+ "begin": "(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+\\())",
636
+ "end": "(\\))",
647
637
  "patterns": [
648
638
  {
649
639
  "begin": "((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()",
640
+ "end": "(?=\\))",
641
+ "patterns": [
642
+ {
643
+ "name": "punctuation.separator.parameters.erlang",
644
+ "match": ","
645
+ },
646
+ {
647
+ "include": "#everything-else"
648
+ }
649
+ ],
650
650
  "beginCaptures": {
651
651
  "2": {
652
652
  "name": "entity.name.type.class.module.erlang"
@@ -660,20 +660,20 @@
660
660
  "5": {
661
661
  "name": "punctuation.definition.parameters.begin.erlang"
662
662
  }
663
- },
663
+ }
664
+ },
665
+ {
666
+ "begin": "(([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(:)\\s*+)?([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\()",
664
667
  "end": "(?=\\))",
665
668
  "patterns": [
666
669
  {
667
- "match": ",",
668
- "name": "punctuation.separator.parameters.erlang"
670
+ "name": "punctuation.separator.parameters.erlang",
671
+ "match": ","
669
672
  },
670
673
  {
671
674
  "include": "#everything-else"
672
675
  }
673
- ]
674
- },
675
- {
676
- "begin": "(([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(:)\\s*+)?([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\()",
676
+ ],
677
677
  "beginCaptures": {
678
678
  "2": {
679
679
  "name": "entity.name.type.class.module.erlang"
@@ -687,24 +687,26 @@
687
687
  "5": {
688
688
  "name": "punctuation.definition.parameters.begin.erlang"
689
689
  }
690
- },
691
- "end": "(?=\\))",
692
- "patterns": [
693
- {
694
- "match": ",",
695
- "name": "punctuation.separator.parameters.erlang"
696
- },
697
- {
698
- "include": "#everything-else"
699
- }
700
- ]
690
+ }
701
691
  }
702
- ]
692
+ ],
693
+ "endCaptures": {
694
+ "1": {
695
+ "name": "punctuation.definition.parameters.end.erlang"
696
+ }
697
+ }
703
698
  },
704
699
  "import-export-directive": {
705
700
  "patterns": [
706
701
  {
702
+ "name": "meta.directive.import.erlang",
707
703
  "begin": "^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",
704
+ "end": "(\\))\\s*+(\\.)",
705
+ "patterns": [
706
+ {
707
+ "include": "#internal-function-list"
708
+ }
709
+ ],
708
710
  "beginCaptures": {
709
711
  "1": {
710
712
  "name": "punctuation.section.directive.begin.erlang"
@@ -722,7 +724,6 @@
722
724
  "name": "punctuation.separator.parameters.erlang"
723
725
  }
724
726
  },
725
- "end": "(\\))\\s*+(\\.)",
726
727
  "endCaptures": {
727
728
  "1": {
728
729
  "name": "punctuation.definition.parameters.end.erlang"
@@ -730,16 +731,17 @@
730
731
  "2": {
731
732
  "name": "punctuation.section.directive.end.erlang"
732
733
  }
733
- },
734
- "name": "meta.directive.import.erlang",
734
+ }
735
+ },
736
+ {
737
+ "name": "meta.directive.export.erlang",
738
+ "begin": "^\\s*+(-)\\s*+(export)\\s*+(\\()",
739
+ "end": "(\\))\\s*+(\\.)",
735
740
  "patterns": [
736
741
  {
737
742
  "include": "#internal-function-list"
738
743
  }
739
- ]
740
- },
741
- {
742
- "begin": "^\\s*+(-)\\s*+(export)\\s*+(\\()",
744
+ ],
743
745
  "beginCaptures": {
744
746
  "1": {
745
747
  "name": "punctuation.section.directive.begin.erlang"
@@ -751,7 +753,6 @@
751
753
  "name": "punctuation.definition.parameters.begin.erlang"
752
754
  }
753
755
  },
754
- "end": "(\\))\\s*+(\\.)",
755
756
  "endCaptures": {
756
757
  "1": {
757
758
  "name": "punctuation.definition.parameters.end.erlang"
@@ -759,17 +760,12 @@
759
760
  "2": {
760
761
  "name": "punctuation.section.directive.end.erlang"
761
762
  }
762
- },
763
- "name": "meta.directive.export.erlang",
764
- "patterns": [
765
- {
766
- "include": "#internal-function-list"
767
- }
768
- ]
763
+ }
769
764
  }
770
765
  ]
771
766
  },
772
767
  "internal-expression-punctuation": {
768
+ "match": "(-\u003e)|(;)|(,)",
773
769
  "captures": {
774
770
  "1": {
775
771
  "name": "punctuation.separator.clause-head-body.erlang"
@@ -780,26 +776,21 @@
780
776
  "3": {
781
777
  "name": "punctuation.separator.expressions.erlang"
782
778
  }
783
- },
784
- "match": "(->)|(;)|(,)"
779
+ }
785
780
  },
786
781
  "internal-function-list": {
782
+ "name": "meta.structure.list.function.erlang",
787
783
  "begin": "(\\[)",
788
- "beginCaptures": {
789
- "1": {
790
- "name": "punctuation.definition.list.begin.erlang"
791
- }
792
- },
793
784
  "end": "(\\])",
794
- "endCaptures": {
795
- "1": {
796
- "name": "punctuation.definition.list.end.erlang"
797
- }
798
- },
799
- "name": "meta.structure.list.function.erlang",
800
785
  "patterns": [
801
786
  {
802
787
  "begin": "([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)",
788
+ "end": "(,)|(?=\\])",
789
+ "patterns": [
790
+ {
791
+ "include": "#everything-else"
792
+ }
793
+ ],
803
794
  "beginCaptures": {
804
795
  "1": {
805
796
  "name": "entity.name.function.erlang"
@@ -808,69 +799,73 @@
808
799
  "name": "punctuation.separator.function-arity.erlang"
809
800
  }
810
801
  },
811
- "end": "(,)|(?=\\])",
812
802
  "endCaptures": {
813
803
  "1": {
814
804
  "name": "punctuation.separator.list.erlang"
815
805
  }
816
- },
817
- "patterns": [
818
- {
819
- "include": "#everything-else"
820
- }
821
- ]
806
+ }
822
807
  },
823
808
  {
824
809
  "include": "#everything-else"
825
810
  }
826
- ]
811
+ ],
812
+ "beginCaptures": {
813
+ "1": {
814
+ "name": "punctuation.definition.list.begin.erlang"
815
+ }
816
+ },
817
+ "endCaptures": {
818
+ "1": {
819
+ "name": "punctuation.definition.list.end.erlang"
820
+ }
821
+ }
827
822
  },
828
823
  "internal-function-parts": {
829
824
  "patterns": [
830
825
  {
831
826
  "begin": "(?=\\()",
832
- "end": "(->)",
833
- "endCaptures": {
834
- "1": {
835
- "name": "punctuation.separator.clause-head-body.erlang"
836
- }
837
- },
827
+ "end": "(-\u003e)",
838
828
  "patterns": [
839
829
  {
840
830
  "begin": "(\\()",
831
+ "end": "(\\))",
832
+ "patterns": [
833
+ {
834
+ "name": "punctuation.separator.parameters.erlang",
835
+ "match": ","
836
+ },
837
+ {
838
+ "include": "#everything-else"
839
+ }
840
+ ],
841
841
  "beginCaptures": {
842
842
  "1": {
843
843
  "name": "punctuation.definition.parameters.begin.erlang"
844
844
  }
845
845
  },
846
- "end": "(\\))",
847
846
  "endCaptures": {
848
847
  "1": {
849
848
  "name": "punctuation.definition.parameters.end.erlang"
850
849
  }
851
- },
852
- "patterns": [
853
- {
854
- "match": ",",
855
- "name": "punctuation.separator.parameters.erlang"
856
- },
857
- {
858
- "include": "#everything-else"
859
- }
860
- ]
850
+ }
861
851
  },
862
852
  {
863
- "match": ",|;",
864
- "name": "punctuation.separator.guards.erlang"
853
+ "name": "punctuation.separator.guards.erlang",
854
+ "match": ",|;"
865
855
  },
866
856
  {
867
857
  "include": "#everything-else"
868
858
  }
869
- ]
859
+ ],
860
+ "endCaptures": {
861
+ "1": {
862
+ "name": "punctuation.separator.clause-head-body.erlang"
863
+ }
864
+ }
870
865
  },
871
866
  {
872
- "match": ",",
873
- "name": "punctuation.separator.expressions.erlang"
867
+ "name": "punctuation.separator.expressions.erlang",
868
+ "match": ","
874
869
  },
875
870
  {
876
871
  "include": "#everything-else"
@@ -878,17 +873,18 @@
878
873
  ]
879
874
  },
880
875
  "internal-record-body": {
876
+ "name": "meta.structure.record.erlang",
881
877
  "begin": "(\\{)",
882
- "beginCaptures": {
883
- "1": {
884
- "name": "punctuation.definition.class.record.begin.erlang"
885
- }
886
- },
887
878
  "end": "(?=\\})",
888
- "name": "meta.structure.record.erlang",
889
879
  "patterns": [
890
880
  {
891
881
  "begin": "(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))\\s*+(=|::)",
882
+ "end": "(,)|(?=\\})",
883
+ "patterns": [
884
+ {
885
+ "include": "#everything-else"
886
+ }
887
+ ],
892
888
  "beginCaptures": {
893
889
  "2": {
894
890
  "name": "variable.other.field.erlang"
@@ -900,19 +896,14 @@
900
896
  "name": "keyword.operator.assignment.erlang"
901
897
  }
902
898
  },
903
- "end": "(,)|(?=\\})",
904
899
  "endCaptures": {
905
- "1": {
906
- "name": "punctuation.separator.class.record.erlang"
907
- }
908
- },
909
- "patterns": [
910
- {
911
- "include": "#everything-else"
900
+ "1": {
901
+ "name": "punctuation.separator.class.record.erlang"
912
902
  }
913
- ]
903
+ }
914
904
  },
915
905
  {
906
+ "match": "([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)?",
916
907
  "captures": {
917
908
  "1": {
918
909
  "name": "variable.other.field.erlang"
@@ -920,24 +911,24 @@
920
911
  "2": {
921
912
  "name": "punctuation.separator.class.record.erlang"
922
913
  }
923
- },
924
- "match": "([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)?"
914
+ }
925
915
  },
926
916
  {
927
917
  "include": "#everything-else"
928
918
  }
929
- ]
930
- },
931
- "internal-type-specifiers": {
932
- "begin": "(/)",
919
+ ],
933
920
  "beginCaptures": {
934
921
  "1": {
935
- "name": "punctuation.separator.value-type.erlang"
922
+ "name": "punctuation.definition.class.record.begin.erlang"
936
923
  }
937
- },
938
- "end": "(?=,|:|>>)",
924
+ }
925
+ },
926
+ "internal-type-specifiers": {
927
+ "begin": "(/)",
928
+ "end": "(?=,|:|\u003e\u003e)",
939
929
  "patterns": [
940
930
  {
931
+ "match": "(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)",
941
932
  "captures": {
942
933
  "1": {
943
934
  "name": "storage.type.erlang"
@@ -954,42 +945,48 @@
954
945
  "5": {
955
946
  "name": "punctuation.separator.type-specifiers.erlang"
956
947
  }
957
- },
958
- "match": "(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)"
948
+ }
959
949
  }
960
- ]
950
+ ],
951
+ "beginCaptures": {
952
+ "1": {
953
+ "name": "punctuation.separator.value-type.erlang"
954
+ }
955
+ }
961
956
  },
962
957
  "keyword": {
963
- "match": "\\b(after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\b",
964
- "name": "keyword.control.erlang"
958
+ "name": "keyword.control.erlang",
959
+ "match": "\\b(after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\b"
965
960
  },
966
961
  "list": {
962
+ "name": "meta.structure.list.erlang",
967
963
  "begin": "(\\[)",
964
+ "end": "(\\])",
965
+ "patterns": [
966
+ {
967
+ "name": "punctuation.separator.list.erlang",
968
+ "match": "\\||\\|\\||,"
969
+ },
970
+ {
971
+ "include": "#everything-else"
972
+ }
973
+ ],
968
974
  "beginCaptures": {
969
975
  "1": {
970
976
  "name": "punctuation.definition.list.begin.erlang"
971
977
  }
972
978
  },
973
- "end": "(\\])",
974
979
  "endCaptures": {
975
980
  "1": {
976
981
  "name": "punctuation.definition.list.end.erlang"
977
982
  }
978
- },
979
- "name": "meta.structure.list.erlang",
980
- "patterns": [
981
- {
982
- "match": "\\||\\|\\||,",
983
- "name": "punctuation.separator.list.erlang"
984
- },
985
- {
986
- "include": "#everything-else"
987
- }
988
- ]
983
+ }
989
984
  },
990
985
  "macro-directive": {
991
986
  "patterns": [
992
987
  {
988
+ "name": "meta.directive.ifdef.erlang",
989
+ "match": "^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
993
990
  "captures": {
994
991
  "1": {
995
992
  "name": "punctuation.section.directive.begin.erlang"
@@ -1009,11 +1006,11 @@
1009
1006
  "6": {
1010
1007
  "name": "punctuation.section.directive.end.erlang"
1011
1008
  }
1012
- },
1013
- "match": "^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1014
- "name": "meta.directive.ifdef.erlang"
1009
+ }
1015
1010
  },
1016
1011
  {
1012
+ "name": "meta.directive.ifndef.erlang",
1013
+ "match": "^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1017
1014
  "captures": {
1018
1015
  "1": {
1019
1016
  "name": "punctuation.section.directive.begin.erlang"
@@ -1033,11 +1030,11 @@
1033
1030
  "6": {
1034
1031
  "name": "punctuation.section.directive.end.erlang"
1035
1032
  }
1036
- },
1037
- "match": "^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1038
- "name": "meta.directive.ifndef.erlang"
1033
+ }
1039
1034
  },
1040
1035
  {
1036
+ "name": "meta.directive.undef.erlang",
1037
+ "match": "^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1041
1038
  "captures": {
1042
1039
  "1": {
1043
1040
  "name": "punctuation.section.directive.begin.erlang"
@@ -1057,13 +1054,13 @@
1057
1054
  "6": {
1058
1055
  "name": "punctuation.section.directive.end.erlang"
1059
1056
  }
1060
- },
1061
- "match": "^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",
1062
- "name": "meta.directive.undef.erlang"
1057
+ }
1063
1058
  }
1064
1059
  ]
1065
1060
  },
1066
1061
  "macro-usage": {
1062
+ "name": "meta.macro-usage.erlang",
1063
+ "match": "(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",
1067
1064
  "captures": {
1068
1065
  "1": {
1069
1066
  "name": "keyword.operator.macro.erlang"
@@ -1071,11 +1068,11 @@
1071
1068
  "2": {
1072
1069
  "name": "entity.name.function.macro.erlang"
1073
1070
  }
1074
- },
1075
- "match": "(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",
1076
- "name": "meta.macro-usage.erlang"
1071
+ }
1077
1072
  },
1078
1073
  "module-directive": {
1074
+ "name": "meta.directive.module.erlang",
1075
+ "match": "^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",
1079
1076
  "captures": {
1080
1077
  "1": {
1081
1078
  "name": "punctuation.section.directive.begin.erlang"
@@ -1095,15 +1092,15 @@
1095
1092
  "6": {
1096
1093
  "name": "punctuation.section.directive.end.erlang"
1097
1094
  }
1098
- },
1099
- "match": "^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",
1100
- "name": "meta.directive.module.erlang"
1095
+ }
1101
1096
  },
1102
1097
  "number": {
1103
1098
  "begin": "(?=\\d)",
1104
1099
  "end": "(?!\\d)",
1105
1100
  "patterns": [
1106
1101
  {
1102
+ "name": "constant.numeric.float.erlang",
1103
+ "match": "\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?",
1107
1104
  "captures": {
1108
1105
  "1": {
1109
1106
  "name": "punctuation.separator.integer-float.erlang"
@@ -1111,357 +1108,362 @@
1111
1108
  "2": {
1112
1109
  "name": "punctuation.separator.float-exponent.erlang"
1113
1110
  }
1114
- },
1115
- "match": "\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?",
1116
- "name": "constant.numeric.float.erlang"
1111
+ }
1117
1112
  },
1118
1113
  {
1114
+ "name": "constant.numeric.integer.binary.erlang",
1115
+ "match": "2(#)[0-1]++",
1119
1116
  "captures": {
1120
1117
  "1": {
1121
1118
  "name": "punctuation.separator.base-integer.erlang"
1122
1119
  }
1123
- },
1124
- "match": "2(#)[0-1]++",
1125
- "name": "constant.numeric.integer.binary.erlang"
1120
+ }
1126
1121
  },
1127
1122
  {
1123
+ "name": "constant.numeric.integer.base-3.erlang",
1124
+ "match": "3(#)[0-2]++",
1128
1125
  "captures": {
1129
1126
  "1": {
1130
1127
  "name": "punctuation.separator.base-integer.erlang"
1131
1128
  }
1132
- },
1133
- "match": "3(#)[0-2]++",
1134
- "name": "constant.numeric.integer.base-3.erlang"
1129
+ }
1135
1130
  },
1136
1131
  {
1132
+ "name": "constant.numeric.integer.base-4.erlang",
1133
+ "match": "4(#)[0-3]++",
1137
1134
  "captures": {
1138
1135
  "1": {
1139
1136
  "name": "punctuation.separator.base-integer.erlang"
1140
1137
  }
1141
- },
1142
- "match": "4(#)[0-3]++",
1143
- "name": "constant.numeric.integer.base-4.erlang"
1138
+ }
1144
1139
  },
1145
1140
  {
1141
+ "name": "constant.numeric.integer.base-5.erlang",
1142
+ "match": "5(#)[0-4]++",
1146
1143
  "captures": {
1147
1144
  "1": {
1148
1145
  "name": "punctuation.separator.base-integer.erlang"
1149
1146
  }
1150
- },
1151
- "match": "5(#)[0-4]++",
1152
- "name": "constant.numeric.integer.base-5.erlang"
1147
+ }
1153
1148
  },
1154
1149
  {
1150
+ "name": "constant.numeric.integer.base-6.erlang",
1151
+ "match": "6(#)[0-5]++",
1155
1152
  "captures": {
1156
1153
  "1": {
1157
1154
  "name": "punctuation.separator.base-integer.erlang"
1158
1155
  }
1159
- },
1160
- "match": "6(#)[0-5]++",
1161
- "name": "constant.numeric.integer.base-6.erlang"
1156
+ }
1162
1157
  },
1163
1158
  {
1159
+ "name": "constant.numeric.integer.base-7.erlang",
1160
+ "match": "7(#)[0-6]++",
1164
1161
  "captures": {
1165
1162
  "1": {
1166
1163
  "name": "punctuation.separator.base-integer.erlang"
1167
1164
  }
1168
- },
1169
- "match": "7(#)[0-6]++",
1170
- "name": "constant.numeric.integer.base-7.erlang"
1165
+ }
1171
1166
  },
1172
1167
  {
1168
+ "name": "constant.numeric.integer.octal.erlang",
1169
+ "match": "8(#)[0-7]++",
1173
1170
  "captures": {
1174
1171
  "1": {
1175
1172
  "name": "punctuation.separator.base-integer.erlang"
1176
1173
  }
1177
- },
1178
- "match": "8(#)[0-7]++",
1179
- "name": "constant.numeric.integer.octal.erlang"
1174
+ }
1180
1175
  },
1181
1176
  {
1177
+ "name": "constant.numeric.integer.base-9.erlang",
1178
+ "match": "9(#)[0-8]++",
1182
1179
  "captures": {
1183
1180
  "1": {
1184
1181
  "name": "punctuation.separator.base-integer.erlang"
1185
1182
  }
1186
- },
1187
- "match": "9(#)[0-8]++",
1188
- "name": "constant.numeric.integer.base-9.erlang"
1183
+ }
1189
1184
  },
1190
1185
  {
1186
+ "name": "constant.numeric.integer.decimal.erlang",
1187
+ "match": "10(#)\\d++",
1191
1188
  "captures": {
1192
1189
  "1": {
1193
1190
  "name": "punctuation.separator.base-integer.erlang"
1194
1191
  }
1195
- },
1196
- "match": "10(#)\\d++",
1197
- "name": "constant.numeric.integer.decimal.erlang"
1192
+ }
1198
1193
  },
1199
1194
  {
1195
+ "name": "constant.numeric.integer.base-11.erlang",
1196
+ "match": "11(#)[\\daA]++",
1200
1197
  "captures": {
1201
1198
  "1": {
1202
1199
  "name": "punctuation.separator.base-integer.erlang"
1203
1200
  }
1204
- },
1205
- "match": "11(#)[\\daA]++",
1206
- "name": "constant.numeric.integer.base-11.erlang"
1201
+ }
1207
1202
  },
1208
1203
  {
1204
+ "name": "constant.numeric.integer.base-12.erlang",
1205
+ "match": "12(#)[\\da-bA-B]++",
1209
1206
  "captures": {
1210
1207
  "1": {
1211
1208
  "name": "punctuation.separator.base-integer.erlang"
1212
1209
  }
1213
- },
1214
- "match": "12(#)[\\da-bA-B]++",
1215
- "name": "constant.numeric.integer.base-12.erlang"
1210
+ }
1216
1211
  },
1217
1212
  {
1213
+ "name": "constant.numeric.integer.base-13.erlang",
1214
+ "match": "13(#)[\\da-cA-C]++",
1218
1215
  "captures": {
1219
1216
  "1": {
1220
1217
  "name": "punctuation.separator.base-integer.erlang"
1221
1218
  }
1222
- },
1223
- "match": "13(#)[\\da-cA-C]++",
1224
- "name": "constant.numeric.integer.base-13.erlang"
1219
+ }
1225
1220
  },
1226
1221
  {
1222
+ "name": "constant.numeric.integer.base-14.erlang",
1223
+ "match": "14(#)[\\da-dA-D]++",
1227
1224
  "captures": {
1228
1225
  "1": {
1229
1226
  "name": "punctuation.separator.base-integer.erlang"
1230
1227
  }
1231
- },
1232
- "match": "14(#)[\\da-dA-D]++",
1233
- "name": "constant.numeric.integer.base-14.erlang"
1228
+ }
1234
1229
  },
1235
1230
  {
1231
+ "name": "constant.numeric.integer.base-15.erlang",
1232
+ "match": "15(#)[\\da-eA-E]++",
1236
1233
  "captures": {
1237
1234
  "1": {
1238
1235
  "name": "punctuation.separator.base-integer.erlang"
1239
1236
  }
1240
- },
1241
- "match": "15(#)[\\da-eA-E]++",
1242
- "name": "constant.numeric.integer.base-15.erlang"
1237
+ }
1243
1238
  },
1244
1239
  {
1240
+ "name": "constant.numeric.integer.hexadecimal.erlang",
1241
+ "match": "16(#)[0-9A-Fa-f]++",
1245
1242
  "captures": {
1246
1243
  "1": {
1247
1244
  "name": "punctuation.separator.base-integer.erlang"
1248
1245
  }
1249
- },
1250
- "match": "16(#)[0-9A-Fa-f]++",
1251
- "name": "constant.numeric.integer.hexadecimal.erlang"
1246
+ }
1252
1247
  },
1253
1248
  {
1249
+ "name": "constant.numeric.integer.base-17.erlang",
1250
+ "match": "17(#)[\\da-gA-G]++",
1254
1251
  "captures": {
1255
1252
  "1": {
1256
1253
  "name": "punctuation.separator.base-integer.erlang"
1257
1254
  }
1258
- },
1259
- "match": "17(#)[\\da-gA-G]++",
1260
- "name": "constant.numeric.integer.base-17.erlang"
1255
+ }
1261
1256
  },
1262
1257
  {
1258
+ "name": "constant.numeric.integer.base-18.erlang",
1259
+ "match": "18(#)[\\da-hA-H]++",
1263
1260
  "captures": {
1264
1261
  "1": {
1265
1262
  "name": "punctuation.separator.base-integer.erlang"
1266
1263
  }
1267
- },
1268
- "match": "18(#)[\\da-hA-H]++",
1269
- "name": "constant.numeric.integer.base-18.erlang"
1264
+ }
1270
1265
  },
1271
1266
  {
1267
+ "name": "constant.numeric.integer.base-19.erlang",
1268
+ "match": "19(#)[\\da-iA-I]++",
1272
1269
  "captures": {
1273
1270
  "1": {
1274
1271
  "name": "punctuation.separator.base-integer.erlang"
1275
1272
  }
1276
- },
1277
- "match": "19(#)[\\da-iA-I]++",
1278
- "name": "constant.numeric.integer.base-19.erlang"
1273
+ }
1279
1274
  },
1280
1275
  {
1276
+ "name": "constant.numeric.integer.base-20.erlang",
1277
+ "match": "20(#)[\\da-jA-J]++",
1281
1278
  "captures": {
1282
1279
  "1": {
1283
1280
  "name": "punctuation.separator.base-integer.erlang"
1284
1281
  }
1285
- },
1286
- "match": "20(#)[\\da-jA-J]++",
1287
- "name": "constant.numeric.integer.base-20.erlang"
1282
+ }
1288
1283
  },
1289
1284
  {
1285
+ "name": "constant.numeric.integer.base-21.erlang",
1286
+ "match": "21(#)[\\da-kA-K]++",
1290
1287
  "captures": {
1291
1288
  "1": {
1292
1289
  "name": "punctuation.separator.base-integer.erlang"
1293
1290
  }
1294
- },
1295
- "match": "21(#)[\\da-kA-K]++",
1296
- "name": "constant.numeric.integer.base-21.erlang"
1291
+ }
1297
1292
  },
1298
1293
  {
1294
+ "name": "constant.numeric.integer.base-22.erlang",
1295
+ "match": "22(#)[\\da-lA-L]++",
1299
1296
  "captures": {
1300
1297
  "1": {
1301
1298
  "name": "punctuation.separator.base-integer.erlang"
1302
1299
  }
1303
- },
1304
- "match": "22(#)[\\da-lA-L]++",
1305
- "name": "constant.numeric.integer.base-22.erlang"
1300
+ }
1306
1301
  },
1307
1302
  {
1303
+ "name": "constant.numeric.integer.base-23.erlang",
1304
+ "match": "23(#)[\\da-mA-M]++",
1308
1305
  "captures": {
1309
1306
  "1": {
1310
1307
  "name": "punctuation.separator.base-integer.erlang"
1311
1308
  }
1312
- },
1313
- "match": "23(#)[\\da-mA-M]++",
1314
- "name": "constant.numeric.integer.base-23.erlang"
1309
+ }
1315
1310
  },
1316
1311
  {
1312
+ "name": "constant.numeric.integer.base-24.erlang",
1313
+ "match": "24(#)[\\da-nA-N]++",
1317
1314
  "captures": {
1318
1315
  "1": {
1319
1316
  "name": "punctuation.separator.base-integer.erlang"
1320
1317
  }
1321
- },
1322
- "match": "24(#)[\\da-nA-N]++",
1323
- "name": "constant.numeric.integer.base-24.erlang"
1318
+ }
1324
1319
  },
1325
1320
  {
1321
+ "name": "constant.numeric.integer.base-25.erlang",
1322
+ "match": "25(#)[\\da-oA-O]++",
1326
1323
  "captures": {
1327
1324
  "1": {
1328
1325
  "name": "punctuation.separator.base-integer.erlang"
1329
1326
  }
1330
- },
1331
- "match": "25(#)[\\da-oA-O]++",
1332
- "name": "constant.numeric.integer.base-25.erlang"
1327
+ }
1333
1328
  },
1334
1329
  {
1330
+ "name": "constant.numeric.integer.base-26.erlang",
1331
+ "match": "26(#)[\\da-pA-P]++",
1335
1332
  "captures": {
1336
1333
  "1": {
1337
1334
  "name": "punctuation.separator.base-integer.erlang"
1338
1335
  }
1339
- },
1340
- "match": "26(#)[\\da-pA-P]++",
1341
- "name": "constant.numeric.integer.base-26.erlang"
1336
+ }
1342
1337
  },
1343
1338
  {
1339
+ "name": "constant.numeric.integer.base-27.erlang",
1340
+ "match": "27(#)[\\da-qA-Q]++",
1344
1341
  "captures": {
1345
1342
  "1": {
1346
1343
  "name": "punctuation.separator.base-integer.erlang"
1347
1344
  }
1348
- },
1349
- "match": "27(#)[\\da-qA-Q]++",
1350
- "name": "constant.numeric.integer.base-27.erlang"
1345
+ }
1351
1346
  },
1352
1347
  {
1348
+ "name": "constant.numeric.integer.base-28.erlang",
1349
+ "match": "28(#)[\\da-rA-R]++",
1353
1350
  "captures": {
1354
1351
  "1": {
1355
1352
  "name": "punctuation.separator.base-integer.erlang"
1356
1353
  }
1357
- },
1358
- "match": "28(#)[\\da-rA-R]++",
1359
- "name": "constant.numeric.integer.base-28.erlang"
1354
+ }
1360
1355
  },
1361
1356
  {
1357
+ "name": "constant.numeric.integer.base-29.erlang",
1358
+ "match": "29(#)[\\da-sA-S]++",
1362
1359
  "captures": {
1363
1360
  "1": {
1364
1361
  "name": "punctuation.separator.base-integer.erlang"
1365
1362
  }
1366
- },
1367
- "match": "29(#)[\\da-sA-S]++",
1368
- "name": "constant.numeric.integer.base-29.erlang"
1363
+ }
1369
1364
  },
1370
1365
  {
1366
+ "name": "constant.numeric.integer.base-30.erlang",
1367
+ "match": "30(#)[\\da-tA-T]++",
1371
1368
  "captures": {
1372
1369
  "1": {
1373
1370
  "name": "punctuation.separator.base-integer.erlang"
1374
1371
  }
1375
- },
1376
- "match": "30(#)[\\da-tA-T]++",
1377
- "name": "constant.numeric.integer.base-30.erlang"
1372
+ }
1378
1373
  },
1379
1374
  {
1375
+ "name": "constant.numeric.integer.base-31.erlang",
1376
+ "match": "31(#)[\\da-uA-U]++",
1380
1377
  "captures": {
1381
1378
  "1": {
1382
1379
  "name": "punctuation.separator.base-integer.erlang"
1383
1380
  }
1384
- },
1385
- "match": "31(#)[\\da-uA-U]++",
1386
- "name": "constant.numeric.integer.base-31.erlang"
1381
+ }
1387
1382
  },
1388
1383
  {
1384
+ "name": "constant.numeric.integer.base-32.erlang",
1385
+ "match": "32(#)[\\da-vA-V]++",
1389
1386
  "captures": {
1390
1387
  "1": {
1391
1388
  "name": "punctuation.separator.base-integer.erlang"
1392
1389
  }
1393
- },
1394
- "match": "32(#)[\\da-vA-V]++",
1395
- "name": "constant.numeric.integer.base-32.erlang"
1390
+ }
1396
1391
  },
1397
1392
  {
1393
+ "name": "constant.numeric.integer.base-33.erlang",
1394
+ "match": "33(#)[\\da-wA-W]++",
1398
1395
  "captures": {
1399
1396
  "1": {
1400
1397
  "name": "punctuation.separator.base-integer.erlang"
1401
1398
  }
1402
- },
1403
- "match": "33(#)[\\da-wA-W]++",
1404
- "name": "constant.numeric.integer.base-33.erlang"
1399
+ }
1405
1400
  },
1406
1401
  {
1402
+ "name": "constant.numeric.integer.base-34.erlang",
1403
+ "match": "34(#)[\\da-xA-X]++",
1407
1404
  "captures": {
1408
1405
  "1": {
1409
1406
  "name": "punctuation.separator.base-integer.erlang"
1410
1407
  }
1411
- },
1412
- "match": "34(#)[\\da-xA-X]++",
1413
- "name": "constant.numeric.integer.base-34.erlang"
1408
+ }
1414
1409
  },
1415
1410
  {
1411
+ "name": "constant.numeric.integer.base-35.erlang",
1412
+ "match": "35(#)[\\da-yA-Y]++",
1416
1413
  "captures": {
1417
1414
  "1": {
1418
1415
  "name": "punctuation.separator.base-integer.erlang"
1419
1416
  }
1420
- },
1421
- "match": "35(#)[\\da-yA-Y]++",
1422
- "name": "constant.numeric.integer.base-35.erlang"
1417
+ }
1423
1418
  },
1424
1419
  {
1420
+ "name": "constant.numeric.integer.base-36.erlang",
1421
+ "match": "36(#)[\\da-zA-Z]++",
1425
1422
  "captures": {
1426
1423
  "1": {
1427
1424
  "name": "punctuation.separator.base-integer.erlang"
1428
1425
  }
1429
- },
1430
- "match": "36(#)[\\da-zA-Z]++",
1431
- "name": "constant.numeric.integer.base-36.erlang"
1426
+ }
1432
1427
  },
1433
1428
  {
1434
- "match": "\\d++#[\\da-zA-Z]++",
1435
- "name": "invalid.illegal.integer.erlang"
1429
+ "name": "invalid.illegal.integer.erlang",
1430
+ "match": "\\d++#[\\da-zA-Z]++"
1436
1431
  },
1437
1432
  {
1438
- "match": "\\d++",
1439
- "name": "constant.numeric.integer.decimal.erlang"
1433
+ "name": "constant.numeric.integer.decimal.erlang",
1434
+ "match": "\\d++"
1440
1435
  }
1441
1436
  ]
1442
1437
  },
1443
1438
  "parenthesized-expression": {
1439
+ "name": "meta.expression.parenthesized",
1444
1440
  "begin": "(\\()",
1441
+ "end": "(\\))",
1442
+ "patterns": [
1443
+ {
1444
+ "include": "#everything-else"
1445
+ }
1446
+ ],
1445
1447
  "beginCaptures": {
1446
1448
  "1": {
1447
1449
  "name": "punctuation.section.expression.begin.erlang"
1448
1450
  }
1449
1451
  },
1450
- "end": "(\\))",
1451
1452
  "endCaptures": {
1452
1453
  "1": {
1453
1454
  "name": "punctuation.section.expression.end.erlang"
1454
1455
  }
1455
- },
1456
- "name": "meta.expression.parenthesized",
1457
- "patterns": [
1458
- {
1459
- "include": "#everything-else"
1460
- }
1461
- ]
1456
+ }
1462
1457
  },
1463
1458
  "record-directive": {
1459
+ "name": "meta.directive.record.erlang",
1464
1460
  "begin": "^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",
1461
+ "end": "((\\}))\\s*+(\\))\\s*+(\\.)",
1462
+ "patterns": [
1463
+ {
1464
+ "include": "#internal-record-body"
1465
+ }
1466
+ ],
1465
1467
  "beginCaptures": {
1466
1468
  "1": {
1467
1469
  "name": "punctuation.section.directive.begin.erlang"
@@ -1479,7 +1481,6 @@
1479
1481
  "name": "punctuation.separator.parameters.erlang"
1480
1482
  }
1481
1483
  },
1482
- "end": "((\\}))\\s*+(\\))\\s*+(\\.)",
1483
1484
  "endCaptures": {
1484
1485
  "1": {
1485
1486
  "name": "meta.structure.record.erlang"
@@ -1493,17 +1494,13 @@
1493
1494
  "4": {
1494
1495
  "name": "punctuation.section.directive.end.erlang"
1495
1496
  }
1496
- },
1497
- "name": "meta.directive.record.erlang",
1498
- "patterns": [
1499
- {
1500
- "include": "#internal-record-body"
1501
- }
1502
- ]
1497
+ }
1503
1498
  },
1504
1499
  "record-usage": {
1505
1500
  "patterns": [
1506
1501
  {
1502
+ "name": "meta.record-usage.erlang",
1503
+ "match": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",
1507
1504
  "captures": {
1508
1505
  "1": {
1509
1506
  "name": "keyword.operator.record.erlang"
@@ -1517,12 +1514,17 @@
1517
1514
  "4": {
1518
1515
  "name": "variable.other.field.erlang"
1519
1516
  }
1520
- },
1521
- "match": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",
1522
- "name": "meta.record-usage.erlang"
1517
+ }
1523
1518
  },
1524
1519
  {
1520
+ "name": "meta.record-usage.erlang",
1525
1521
  "begin": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",
1522
+ "end": "((\\}))",
1523
+ "patterns": [
1524
+ {
1525
+ "include": "#internal-record-body"
1526
+ }
1527
+ ],
1526
1528
  "beginCaptures": {
1527
1529
  "1": {
1528
1530
  "name": "keyword.operator.record.erlang"
@@ -1531,7 +1533,6 @@
1531
1533
  "name": "entity.name.type.class.record.erlang"
1532
1534
  }
1533
1535
  },
1534
- "end": "((\\}))",
1535
1536
  "endCaptures": {
1536
1537
  "1": {
1537
1538
  "name": "meta.structure.record.erlang"
@@ -1539,32 +1540,18 @@
1539
1540
  "2": {
1540
1541
  "name": "punctuation.definition.class.record.end.erlang"
1541
1542
  }
1542
- },
1543
- "name": "meta.record-usage.erlang",
1544
- "patterns": [
1545
- {
1546
- "include": "#internal-record-body"
1547
- }
1548
- ]
1543
+ }
1549
1544
  }
1550
1545
  ]
1551
1546
  },
1552
1547
  "string": {
1548
+ "name": "string.quoted.double.erlang",
1553
1549
  "begin": "(\")",
1554
- "beginCaptures": {
1555
- "1": {
1556
- "name": "punctuation.definition.string.begin.erlang"
1557
- }
1558
- },
1559
1550
  "end": "(\")",
1560
- "endCaptures": {
1561
- "1": {
1562
- "name": "punctuation.definition.string.end.erlang"
1563
- }
1564
- },
1565
- "name": "string.quoted.double.erlang",
1566
1551
  "patterns": [
1567
1552
  {
1553
+ "name": "constant.character.escape.erlang",
1554
+ "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3})",
1568
1555
  "captures": {
1569
1556
  "1": {
1570
1557
  "name": "punctuation.definition.escape.erlang"
@@ -1572,15 +1559,15 @@
1572
1559
  "3": {
1573
1560
  "name": "punctuation.definition.escape.erlang"
1574
1561
  }
1575
- },
1576
- "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_]|[0-7]{1,3})",
1577
- "name": "constant.character.escape.erlang"
1562
+ }
1578
1563
  },
1579
1564
  {
1580
- "match": "\\\\\\^?.?",
1581
- "name": "invalid.illegal.string.erlang"
1565
+ "name": "invalid.illegal.string.erlang",
1566
+ "match": "\\\\\\^?.?"
1582
1567
  },
1583
1568
  {
1569
+ "name": "constant.other.placeholder.erlang",
1570
+ "match": "(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*)))?((\\.)((\\*)|.))?[~cfegswpWPBX#bx\\+ni]",
1584
1571
  "captures": {
1585
1572
  "1": {
1586
1573
  "name": "punctuation.definition.placeholder.erlang"
@@ -1603,11 +1590,11 @@
1603
1590
  "8": {
1604
1591
  "name": "punctuation.separator.placeholder-parts.erlang"
1605
1592
  }
1606
- },
1607
- "match": "(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*)))?((\\.)((\\*)|.))?[~cfegswpWPBX#bx\\+ni]",
1608
- "name": "constant.other.placeholder.erlang"
1593
+ }
1609
1594
  },
1610
1595
  {
1596
+ "name": "constant.other.placeholder.erlang",
1597
+ "match": "(~)(\\*)?(\\d++)?[~du\\-#fsacl]",
1611
1598
  "captures": {
1612
1599
  "1": {
1613
1600
  "name": "punctuation.definition.placeholder.erlang"
@@ -1615,49 +1602,58 @@
1615
1602
  "2": {
1616
1603
  "name": "punctuation.separator.placeholder-parts.erlang"
1617
1604
  }
1618
- },
1619
- "match": "(~)(\\*)?(\\d++)?[~du\\-#fsacl]",
1620
- "name": "constant.other.placeholder.erlang"
1605
+ }
1621
1606
  },
1622
1607
  {
1623
- "match": "~.?",
1624
- "name": "invalid.illegal.string.erlang"
1608
+ "name": "invalid.illegal.string.erlang",
1609
+ "match": "~.?"
1625
1610
  }
1626
- ]
1611
+ ],
1612
+ "beginCaptures": {
1613
+ "1": {
1614
+ "name": "punctuation.definition.string.begin.erlang"
1615
+ }
1616
+ },
1617
+ "endCaptures": {
1618
+ "1": {
1619
+ "name": "punctuation.definition.string.end.erlang"
1620
+ }
1621
+ }
1627
1622
  },
1628
1623
  "symbolic-operator": {
1629
- "match": "\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::",
1630
- "name": "keyword.operator.symbolic.erlang"
1624
+ "name": "keyword.operator.symbolic.erlang",
1625
+ "match": "\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=\u003c|=|\u003c-|\u003c|\u003e=|\u003e|!|::"
1631
1626
  },
1632
1627
  "textual-operator": {
1633
- "match": "\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b",
1634
- "name": "keyword.operator.textual.erlang"
1628
+ "name": "keyword.operator.textual.erlang",
1629
+ "match": "\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b"
1635
1630
  },
1636
1631
  "tuple": {
1632
+ "name": "meta.structure.tuple.erlang",
1637
1633
  "begin": "(\\{)",
1634
+ "end": "(\\})",
1635
+ "patterns": [
1636
+ {
1637
+ "name": "punctuation.separator.tuple.erlang",
1638
+ "match": ","
1639
+ },
1640
+ {
1641
+ "include": "#everything-else"
1642
+ }
1643
+ ],
1638
1644
  "beginCaptures": {
1639
1645
  "1": {
1640
1646
  "name": "punctuation.definition.tuple.begin.erlang"
1641
1647
  }
1642
1648
  },
1643
- "end": "(\\})",
1644
1649
  "endCaptures": {
1645
1650
  "1": {
1646
1651
  "name": "punctuation.definition.tuple.end.erlang"
1647
1652
  }
1648
- },
1649
- "name": "meta.structure.tuple.erlang",
1650
- "patterns": [
1651
- {
1652
- "match": ",",
1653
- "name": "punctuation.separator.tuple.erlang"
1654
- },
1655
- {
1656
- "include": "#everything-else"
1657
- }
1658
- ]
1653
+ }
1659
1654
  },
1660
1655
  "variable": {
1656
+ "match": "(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)",
1661
1657
  "captures": {
1662
1658
  "1": {
1663
1659
  "name": "variable.other.erlang"
@@ -1665,10 +1661,7 @@
1665
1661
  "2": {
1666
1662
  "name": "variable.language.omitted.erlang"
1667
1663
  }
1668
- },
1669
- "match": "(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)"
1664
+ }
1670
1665
  }
1671
- },
1672
- "scopeName": "source.erlang",
1673
- "uuid": "58EA597D-5158-4BF7-9FB2-B05135D1E166"
1674
- }
1666
+ }
1667
+ }