github-linguist 5.3.3 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
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,27 +1,24 @@
1
1
  {
2
2
  "name": "Gemfile",
3
3
  "scopeName": "source.ruby.gemfile",
4
- "fileTypes": [
5
- "Gemfile"
6
- ],
7
4
  "patterns": [
8
5
  {
9
6
  "include": "source.ruby"
10
7
  },
11
8
  {
12
- "begin": "\\b(?<!\\.|::)(gem|git|group|platforms|ruby|source)\\b(?![?!])",
13
- "captures": {
14
- "1": {
15
- "name": "keyword.other.special-method.ruby.gemfile"
16
- }
17
- },
18
- "end": "$|(?=#|})",
19
9
  "name": "meta.declaration.ruby.gemfile",
10
+ "begin": "\\b(?\u003c!\\.|::)(gem|git|group|platforms|ruby|source)\\b(?![?!])",
11
+ "end": "$|(?=#|})",
20
12
  "patterns": [
21
13
  {
22
14
  "include": "$self"
23
15
  }
24
- ]
16
+ ],
17
+ "captures": {
18
+ "1": {
19
+ "name": "keyword.other.special-method.ruby.gemfile"
20
+ }
21
+ }
25
22
  }
26
23
  ]
27
- }
24
+ }
@@ -1,48 +1,10 @@
1
1
  {
2
2
  "name": "Ruby",
3
3
  "scopeName": "source.ruby",
4
- "fileTypes": [
5
- "Appfile",
6
- "Appraisals",
7
- "arb",
8
- "Berksfile",
9
- "Brewfile",
10
- "cap",
11
- "Capfile",
12
- "capfile",
13
- "cgi",
14
- "cr",
15
- "Dangerfile",
16
- "Deliverfile",
17
- "Fastfile",
18
- "fcgi",
19
- "gemspec",
20
- "Guardfile",
21
- "irbrc",
22
- "opal",
23
- "Podfile",
24
- "podspec",
25
- "prawn",
26
- "pryrc",
27
- "Puppetfile",
28
- "rabl",
29
- "rake",
30
- "Rakefile",
31
- "Rantfile",
32
- "rb",
33
- "rbx",
34
- "rjs",
35
- "ru",
36
- "ruby",
37
- "Schemafile",
38
- "Snapfile",
39
- "thor",
40
- "Thorfile",
41
- "Vagrantfile"
42
- ],
43
- "firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/)\n (?:ruby|macruby|rake|jruby|rbx|ruby_executable_hooks)\n(?:$|\\s)\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n ruby\n (?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n |\n # Vim\n (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n ruby\n (?=\\s|:|$)\n)",
44
4
  "patterns": [
45
5
  {
6
+ "name": "meta.class.ruby",
7
+ "match": "(?x)\n^\\s*(class)\\s+\n(\n (\n [.a-zA-Z0-9_:]+\n (\\s*(\u003c)\\s*[.a-zA-Z0-9_:]+)? # class A \u003c B\n )\n |\n ((\u003c\u003c)\\s*[.a-zA-Z0-9_:]+) # class \u003c\u003c C\n)",
46
8
  "captures": {
47
9
  "1": {
48
10
  "name": "keyword.control.class.ruby"
@@ -62,11 +24,11 @@
62
24
  "7": {
63
25
  "name": "punctuation.definition.variable.ruby"
64
26
  }
65
- },
66
- "match": "(?x)\n^\\s*(class)\\s+\n(\n (\n [.a-zA-Z0-9_:]+\n (\\s*(<)\\s*[.a-zA-Z0-9_:]+)? # class A < B\n )\n |\n ((<<)\\s*[.a-zA-Z0-9_:]+) # class << C\n)",
67
- "name": "meta.class.ruby"
27
+ }
68
28
  },
69
29
  {
30
+ "name": "meta.module.ruby",
31
+ "match": "(?x)\n^\\s*(module)\\s+\n(\n ([A-Z]\\w*(::))?\n ([A-Z]\\w*(::))?\n ([A-Z]\\w*(::))*\n [A-Z]\\w*\n)",
70
32
  "captures": {
71
33
  "1": {
72
34
  "name": "keyword.control.module.ruby"
@@ -92,180 +54,155 @@
92
54
  "8": {
93
55
  "name": "punctuation.separator.inheritance.ruby"
94
56
  }
95
- },
96
- "match": "(?x)\n^\\s*(module)\\s+\n(\n ([A-Z]\\w*(::))?\n ([A-Z]\\w*(::))?\n ([A-Z]\\w*(::))*\n [A-Z]\\w*\n)",
97
- "name": "meta.module.ruby"
57
+ }
98
58
  },
99
59
  {
100
- "comment": "else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",
101
- "match": "(?<!\\.)\\belse(\\s)+if\\b",
102
- "name": "invalid.deprecated.ruby"
60
+ "name": "invalid.deprecated.ruby",
61
+ "match": "(?\u003c!\\.)\\belse(\\s)+if\\b"
103
62
  },
104
63
  {
64
+ "name": "constant.other.symbol.hashkey.ruby",
65
+ "match": "(?\u003e[a-zA-Z_]\\w*(?\u003e[?!])?)(:)(?!:)",
105
66
  "captures": {
106
67
  "1": {
107
68
  "name": "punctuation.definition.constant.hashkey.ruby"
108
69
  }
109
- },
110
- "comment": "symbols as hash key (1.9 syntax)",
111
- "match": "(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",
112
- "name": "constant.other.symbol.hashkey.ruby"
70
+ }
113
71
  },
114
72
  {
73
+ "name": "constant.other.symbol.hashkey.ruby",
74
+ "match": "(?\u003c!:)(:)(?\u003e[a-zA-Z_]\\w*(?\u003e[?!])?)(?=\\s*=\u003e)",
115
75
  "captures": {
116
76
  "1": {
117
77
  "name": "punctuation.definition.constant.ruby"
118
78
  }
119
- },
120
- "comment": "symbols as hash key (1.8 syntax)",
121
- "match": "(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",
122
- "name": "constant.other.symbol.hashkey.ruby"
79
+ }
123
80
  },
124
81
  {
125
- "comment": "everything being a reserved word, not a value and needing a 'end' is a..",
126
- "match": "(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",
127
- "name": "keyword.control.ruby"
82
+ "name": "keyword.control.ruby",
83
+ "match": "(?\u003c!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])"
128
84
  },
129
85
  {
130
- "comment": "contextual smart pair support for block parameters",
131
- "match": "(?<!\\.)\\bdo\\b",
132
- "name": "keyword.control.start-block.ruby"
86
+ "name": "keyword.control.start-block.ruby",
87
+ "match": "(?\u003c!\\.)\\bdo\\b"
133
88
  },
134
89
  {
135
- "comment": "contextual smart pair support",
136
- "match": "(?<={)(\\s+)",
137
- "name": "meta.syntax.ruby.start-block"
90
+ "name": "meta.syntax.ruby.start-block",
91
+ "match": "(?\u003c={)(\\s+)"
138
92
  },
139
93
  {
140
- "match": "(?<!\\.)\\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\\b(?![?!])|\\bdefined\\?|\\b(block_given|iterator)\\?",
141
- "name": "keyword.control.pseudo-method.ruby"
94
+ "name": "keyword.control.pseudo-method.ruby",
95
+ "match": "(?\u003c!\\.)\\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\\b(?![?!])|\\bdefined\\?|\\b(block_given|iterator)\\?"
142
96
  },
143
97
  {
144
- "match": "\\bnil\\b(?![?!])",
145
- "name": "constant.language.nil.ruby"
98
+ "name": "constant.language.nil.ruby",
99
+ "match": "\\bnil\\b(?![?!])"
146
100
  },
147
101
  {
148
- "match": "\\b(true|false)\\b(?![?!])",
149
- "name": "constant.language.boolean.ruby"
102
+ "name": "constant.language.boolean.ruby",
103
+ "match": "\\b(true|false)\\b(?![?!])"
150
104
  },
151
105
  {
152
- "match": "\\b(__(FILE|LINE)__)\\b(?![?!])",
153
- "name": "variable.language.ruby"
106
+ "name": "variable.language.ruby",
107
+ "match": "\\b(__(FILE|LINE)__)\\b(?![?!])"
154
108
  },
155
109
  {
156
- "match": "\\bself\\b(?![?!])",
157
- "name": "variable.language.self.ruby"
110
+ "name": "variable.language.self.ruby",
111
+ "match": "\\bself\\b(?![?!])"
158
112
  },
159
113
  {
160
- "comment": " everything being a method but having a special function is a..",
161
- "match": "\\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",
162
- "name": "keyword.other.special-method.ruby"
114
+ "name": "keyword.other.special-method.ruby",
115
+ "match": "\\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])"
163
116
  },
164
117
  {
165
- "begin": "\\b(?<!\\.|::)(require|require_relative)\\b(?![?!])",
166
- "captures": {
167
- "1": {
168
- "name": "keyword.other.special-method.ruby"
169
- }
170
- },
171
- "end": "$|(?=#|})",
172
118
  "name": "meta.require.ruby",
119
+ "begin": "\\b(?\u003c!\\.|::)(require|require_relative)\\b(?![?!])",
120
+ "end": "$|(?=#|})",
173
121
  "patterns": [
174
122
  {
175
123
  "include": "$self"
176
124
  }
177
- ]
125
+ ],
126
+ "captures": {
127
+ "1": {
128
+ "name": "keyword.other.special-method.ruby"
129
+ }
130
+ }
178
131
  },
179
132
  {
133
+ "name": "variable.other.readwrite.instance.ruby",
134
+ "match": "(@)[a-zA-Z_]\\w*",
180
135
  "captures": {
181
136
  "1": {
182
137
  "name": "punctuation.definition.variable.ruby"
183
138
  }
184
- },
185
- "match": "(@)[a-zA-Z_]\\w*",
186
- "name": "variable.other.readwrite.instance.ruby"
139
+ }
187
140
  },
188
141
  {
142
+ "name": "variable.other.readwrite.class.ruby",
143
+ "match": "(@@)[a-zA-Z_]\\w*",
189
144
  "captures": {
190
145
  "1": {
191
146
  "name": "punctuation.definition.variable.ruby"
192
147
  }
193
- },
194
- "match": "(@@)[a-zA-Z_]\\w*",
195
- "name": "variable.other.readwrite.class.ruby"
148
+ }
196
149
  },
197
150
  {
151
+ "name": "variable.other.readwrite.global.ruby",
152
+ "match": "(\\$)[a-zA-Z_]\\w*",
198
153
  "captures": {
199
154
  "1": {
200
155
  "name": "punctuation.definition.variable.ruby"
201
156
  }
202
- },
203
- "match": "(\\$)[a-zA-Z_]\\w*",
204
- "name": "variable.other.readwrite.global.ruby"
157
+ }
205
158
  },
206
159
  {
160
+ "name": "variable.other.readwrite.global.pre-defined.ruby",
161
+ "match": "(\\$)(!|@|\u0026|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|\u003c|\u003e|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])",
207
162
  "captures": {
208
163
  "1": {
209
164
  "name": "punctuation.definition.variable.ruby"
210
165
  }
211
- },
212
- "match": "(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])",
213
- "name": "variable.other.readwrite.global.pre-defined.ruby"
166
+ }
214
167
  },
215
168
  {
169
+ "name": "meta.environment-variable.ruby",
216
170
  "begin": "\\b(ENV)\\[",
217
- "beginCaptures": {
218
- "1": {
219
- "name": "variable.other.constant.ruby"
220
- }
221
- },
222
171
  "end": "]",
223
- "name": "meta.environment-variable.ruby",
224
172
  "patterns": [
225
173
  {
226
174
  "include": "$self"
227
175
  }
228
- ]
176
+ ],
177
+ "beginCaptures": {
178
+ "1": {
179
+ "name": "variable.other.constant.ruby"
180
+ }
181
+ }
229
182
  },
230
183
  {
231
- "match": "\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",
232
- "name": "support.class.ruby"
184
+ "name": "support.class.ruby",
185
+ "match": "\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))"
233
186
  },
234
187
  {
235
- "match": "\\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\b(?![?!])|autoload\\?|exit!)",
236
- "name": "support.function.kernel.ruby"
188
+ "name": "support.function.kernel.ruby",
189
+ "match": "\\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\b(?![?!])|autoload\\?|exit!)"
237
190
  },
238
191
  {
239
- "match": "\\b[_A-Z]\\w*\\b",
240
- "name": "variable.other.constant.ruby"
192
+ "name": "variable.other.constant.ruby",
193
+ "match": "\\b[_A-Z]\\w*\\b"
241
194
  },
242
195
  {
243
- "begin": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\s+\n(\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n ===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n )\n)\n\\s*(\\()",
244
- "beginCaptures": {
245
- "1": {
246
- "name": "keyword.control.def.ruby"
247
- },
248
- "2": {
249
- "name": "entity.name.function.ruby"
250
- },
251
- "3": {
252
- "name": "punctuation.definition.parameters.ruby"
253
- }
254
- },
255
- "comment": "The method pattern comes from the symbol pattern. See there for an explanation.",
256
- "end": "\\)",
257
- "endCaptures": {
258
- "0": {
259
- "name": "punctuation.definition.parameters.ruby"
260
- }
261
- },
262
196
  "name": "meta.function.method.with-arguments.ruby",
197
+ "begin": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?\u003c=^|\\s)(def)\\s+\n(\n (?\u003e[a-zA-Z_]\\w*(?\u003e\\.|::))? # method prefix\n (?\u003e # method name\n [a-zA-Z_]\\w*(?\u003e[?!]|=(?!\u003e))?\n |\n ===?|!=|\u003e[\u003e=]?|\u003c=\u003e|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n )\n)\n\\s*(\\()",
198
+ "end": "\\)",
263
199
  "patterns": [
264
200
  {
265
201
  "begin": "(?![\\s,)])",
266
202
  "end": "(?=,|\\)\\s*$)",
267
203
  "patterns": [
268
204
  {
205
+ "match": "\\G([\u0026*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",
269
206
  "captures": {
270
207
  "1": {
271
208
  "name": "storage.type.variable.ruby"
@@ -279,35 +216,42 @@
279
216
  "4": {
280
217
  "name": "variable.parameter.function.ruby"
281
218
  }
282
- },
283
- "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"
219
+ }
284
220
  },
285
221
  {
286
222
  "include": "$self"
287
223
  }
288
224
  ]
289
225
  }
290
- ]
291
- },
292
- {
293
- "begin": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\s+\n(\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n ===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n )\n)\n[ \\t]\n(?=[ \\t]*[^\\s#;]) # make sure the following is not comment",
226
+ ],
294
227
  "beginCaptures": {
295
228
  "1": {
296
229
  "name": "keyword.control.def.ruby"
297
230
  },
298
231
  "2": {
299
232
  "name": "entity.name.function.ruby"
233
+ },
234
+ "3": {
235
+ "name": "punctuation.definition.parameters.ruby"
300
236
  }
301
237
  },
302
- "comment": "same as the previous rule, but without parentheses around the arguments",
303
- "end": "$",
238
+ "endCaptures": {
239
+ "0": {
240
+ "name": "punctuation.definition.parameters.ruby"
241
+ }
242
+ }
243
+ },
244
+ {
304
245
  "name": "meta.function.method.with-arguments.ruby",
246
+ "begin": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?\u003c=^|\\s)(def)\\s+\n(\n (?\u003e[a-zA-Z_]\\w*(?\u003e\\.|::))? # method prefix\n (?\u003e # method name\n [a-zA-Z_]\\w*(?\u003e[?!]|=(?!\u003e))?\n |\n ===?|!=|\u003e[\u003e=]?|\u003c=\u003e|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n )\n)\n[ \\t]\n(?=[ \\t]*[^\\s#;]) # make sure the following is not comment",
247
+ "end": "$",
305
248
  "patterns": [
306
249
  {
307
250
  "begin": "(?![\\s,])",
308
251
  "end": "(?=,|$)",
309
252
  "patterns": [
310
253
  {
254
+ "match": "\\G([\u0026*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",
311
255
  "captures": {
312
256
  "1": {
313
257
  "name": "storage.type.variable.ruby"
@@ -321,17 +265,26 @@
321
265
  "4": {
322
266
  "name": "variable.parameter.function.ruby"
323
267
  }
324
- },
325
- "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"
268
+ }
326
269
  },
327
270
  {
328
271
  "include": "$self"
329
272
  }
330
273
  ]
331
274
  }
332
- ]
275
+ ],
276
+ "beginCaptures": {
277
+ "1": {
278
+ "name": "keyword.control.def.ruby"
279
+ },
280
+ "2": {
281
+ "name": "entity.name.function.ruby"
282
+ }
283
+ }
333
284
  },
334
285
  {
286
+ "name": "meta.function.method.without-arguments.ruby",
287
+ "match": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?\u003c=^|\\s)(def)\\b\n(\n \\s+\n (\n (?\u003e[a-zA-Z_]\\w*(?\u003e\\.|::))? # method prefix\n (?\u003e # method name\n [a-zA-Z_]\\w*(?\u003e[?!]|=(?!\u003e))?\n |\n ===?|!=|\u003e[\u003e=]?|\u003c=\u003e|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n )\n )\n)?",
335
288
  "captures": {
336
289
  "1": {
337
290
  "name": "keyword.control.def.ruby"
@@ -339,52 +292,37 @@
339
292
  "3": {
340
293
  "name": "entity.name.function.ruby"
341
294
  }
342
- },
343
- "comment": " the optional name is just to catch the def also without a method-name",
344
- "match": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\b\n(\n \\s+\n (\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n ===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n )\n )\n)?",
345
- "name": "meta.function.method.without-arguments.ruby"
295
+ }
346
296
  },
347
297
  {
348
- "match": "(?x)\n\\b\n(\n [\\d](?>_?\\d)* # 100_000\n (\\.(?![^[:space:][:digit:]])(?>_?\\d)*)? # fractional part\n ([eE][-+]?\\d(?>_?\\d)*)? # 1.23e-4\n |\n 0\n (?:\n [xX]\\h(?>_?\\h)*|\n [oO]?[0-7](?>_?[0-7])*|\n [bB][01](?>_?[01])*|\n [dD]\\d(?>_?\\d)*\n ) # A base indicator can only be used with an integer\n)\\b",
349
- "name": "constant.numeric.ruby"
298
+ "name": "constant.numeric.ruby",
299
+ "match": "(?x)\n\\b\n(\n [\\d](?\u003e_?\\d)* # 100_000\n (\\.(?![^[:space:][:digit:]])(?\u003e_?\\d)*)? # fractional part\n ([eE][-+]?\\d(?\u003e_?\\d)*)? # 1.23e-4\n |\n 0\n (?:\n [xX][[:xdigit:]](?\u003e_?[[:xdigit:]])*|\n [oO]?[0-7](?\u003e_?[0-7])*|\n [bB][01](?\u003e_?[01])*|\n [dD]\\d(?\u003e_?\\d)*\n ) # A base indicator can only be used with an integer\n)\\b"
350
300
  },
351
301
  {
302
+ "name": "constant.other.symbol.ruby",
352
303
  "begin": ":'",
304
+ "end": "'",
305
+ "patterns": [
306
+ {
307
+ "name": "constant.character.escape.ruby",
308
+ "match": "\\\\['\\\\]"
309
+ }
310
+ ],
353
311
  "beginCaptures": {
354
312
  "0": {
355
313
  "name": "punctuation.definition.symbol.begin.ruby"
356
314
  }
357
315
  },
358
- "comment": "symbol literal with '' delimitor",
359
- "end": "'",
360
316
  "endCaptures": {
361
317
  "0": {
362
318
  "name": "punctuation.definition.symbol.end.ruby"
363
319
  }
364
- },
365
- "name": "constant.other.symbol.ruby",
366
- "patterns": [
367
- {
368
- "match": "\\\\['\\\\]",
369
- "name": "constant.character.escape.ruby"
370
- }
371
- ]
320
+ }
372
321
  },
373
322
  {
323
+ "name": "constant.other.symbol.interpolated.ruby",
374
324
  "begin": ":\"",
375
- "beginCaptures": {
376
- "0": {
377
- "name": "punctuation.section.symbol.begin.ruby"
378
- }
379
- },
380
- "comment": "symbol literal with \"\" delimitor",
381
325
  "end": "\"",
382
- "endCaptures": {
383
- "0": {
384
- "name": "punctuation.section.symbol.end.ruby"
385
- }
386
- },
387
- "name": "constant.other.symbol.interpolated.ruby",
388
326
  "patterns": [
389
327
  {
390
328
  "include": "#interpolated_ruby"
@@ -392,50 +330,47 @@
392
330
  {
393
331
  "include": "#escaped_char"
394
332
  }
395
- ]
396
- },
397
- {
398
- "comment": "Needs higher precidence than regular expressions.",
399
- "match": "(?<!\\()/=",
400
- "name": "keyword.operator.assignment.augmented.ruby"
401
- },
402
- {
403
- "begin": "'",
333
+ ],
404
334
  "beginCaptures": {
405
335
  "0": {
406
- "name": "punctuation.definition.string.begin.ruby"
336
+ "name": "punctuation.section.symbol.begin.ruby"
407
337
  }
408
338
  },
409
- "comment": "string literal with '' delimitor",
410
- "end": "'",
411
339
  "endCaptures": {
412
340
  "0": {
413
- "name": "punctuation.definition.string.end.ruby"
341
+ "name": "punctuation.section.symbol.end.ruby"
414
342
  }
415
- },
343
+ }
344
+ },
345
+ {
346
+ "name": "keyword.operator.assignment.augmented.ruby",
347
+ "match": "(?\u003c!\\()/="
348
+ },
349
+ {
416
350
  "name": "string.quoted.single.ruby",
351
+ "begin": "'",
352
+ "end": "'",
417
353
  "patterns": [
418
354
  {
419
- "match": "\\\\'|\\\\\\\\",
420
- "name": "constant.character.escape.ruby"
355
+ "name": "constant.character.escape.ruby",
356
+ "match": "\\\\'|\\\\\\\\"
421
357
  }
422
- ]
423
- },
424
- {
425
- "begin": "\"",
358
+ ],
426
359
  "beginCaptures": {
427
360
  "0": {
428
361
  "name": "punctuation.definition.string.begin.ruby"
429
362
  }
430
363
  },
431
- "comment": "string literal with interpolation and \"\" delimitor",
432
- "end": "\"",
433
364
  "endCaptures": {
434
365
  "0": {
435
366
  "name": "punctuation.definition.string.end.ruby"
436
367
  }
437
- },
368
+ }
369
+ },
370
+ {
438
371
  "name": "string.quoted.double.interpolated.ruby",
372
+ "begin": "\"",
373
+ "end": "\"",
439
374
  "patterns": [
440
375
  {
441
376
  "include": "#interpolated_ruby"
@@ -443,23 +378,22 @@
443
378
  {
444
379
  "include": "#escaped_char"
445
380
  }
446
- ]
447
- },
448
- {
449
- "begin": "`",
381
+ ],
450
382
  "beginCaptures": {
451
383
  "0": {
452
384
  "name": "punctuation.definition.string.begin.ruby"
453
385
  }
454
386
  },
455
- "comment": "execute string (allows for interpolation)",
456
- "end": "`",
457
387
  "endCaptures": {
458
388
  "0": {
459
389
  "name": "punctuation.definition.string.end.ruby"
460
390
  }
461
- },
391
+ }
392
+ },
393
+ {
462
394
  "name": "string.interpolated.ruby",
395
+ "begin": "`",
396
+ "end": "`",
463
397
  "patterns": [
464
398
  {
465
399
  "include": "#interpolated_ruby"
@@ -467,10 +401,27 @@
467
401
  {
468
402
  "include": "#escaped_char"
469
403
  }
470
- ]
404
+ ],
405
+ "beginCaptures": {
406
+ "0": {
407
+ "name": "punctuation.definition.string.begin.ruby"
408
+ }
409
+ },
410
+ "endCaptures": {
411
+ "0": {
412
+ "name": "punctuation.definition.string.end.ruby"
413
+ }
414
+ }
471
415
  },
472
416
  {
473
- "begin": "(?x)\n(?<![\\w)])((/))(?![?*+])\n(?=\n (?:\\\\/|[^/])*+ # Do NOT change the order\n /[eimnosux]*\\s*\n (?:\n [)\\]}#.,?:]|\\|\\||&&|<=>|=>|==|=~|!~|!=|;|$|\n if|else|elsif|then|do|end|unless|while|until|or|and\n )\n |\n $\n)",
417
+ "contentName": "string.regexp.interpolated.ruby",
418
+ "begin": "(?x)\n(?\u003c![\\w)])((/))(?![?*+])\n(?=\n (?:\\\\/|[^/])*+ # Do NOT change the order\n /[eimnosux]*\\s*\n (?:\n [)\\]}#.,?:]|\\|\\||\u0026\u0026|\u003c=\u003e|=\u003e|==|=~|!~|!=|;|$|\n if|else|elsif|then|do|end|unless|while|until|or|and\n )\n |\n $\n)",
419
+ "end": "((/[eimnosux]*))",
420
+ "patterns": [
421
+ {
422
+ "include": "#regex_sub"
423
+ }
424
+ ],
474
425
  "captures": {
475
426
  "1": {
476
427
  "name": "string.regexp.interpolated.ruby"
@@ -478,30 +429,12 @@
478
429
  "2": {
479
430
  "name": "punctuation.section.regexp.ruby"
480
431
  }
481
- },
482
- "comment": "regular expression literal with interpolation",
483
- "contentName": "string.regexp.interpolated.ruby",
484
- "end": "((/[eimnosux]*))",
485
- "patterns": [
486
- {
487
- "include": "#regex_sub"
488
- }
489
- ]
432
+ }
490
433
  },
491
434
  {
435
+ "name": "string.regexp.interpolated.ruby",
492
436
  "begin": "%r{",
493
- "beginCaptures": {
494
- "0": {
495
- "name": "punctuation.section.regexp.begin.ruby"
496
- }
497
- },
498
437
  "end": "}[eimnosux]*",
499
- "endCaptures": {
500
- "0": {
501
- "name": "punctuation.section.regexp.end.ruby"
502
- }
503
- },
504
- "name": "string.regexp.interpolated.ruby",
505
438
  "patterns": [
506
439
  {
507
440
  "include": "#regex_sub"
@@ -509,22 +442,22 @@
509
442
  {
510
443
  "include": "#nest_curly_r"
511
444
  }
512
- ]
513
- },
514
- {
515
- "begin": "%r\\[",
445
+ ],
516
446
  "beginCaptures": {
517
447
  "0": {
518
448
  "name": "punctuation.section.regexp.begin.ruby"
519
449
  }
520
450
  },
521
- "end": "][eimnosux]*",
522
451
  "endCaptures": {
523
452
  "0": {
524
453
  "name": "punctuation.section.regexp.end.ruby"
525
454
  }
526
- },
455
+ }
456
+ },
457
+ {
527
458
  "name": "string.regexp.interpolated.ruby",
459
+ "begin": "%r\\[",
460
+ "end": "][eimnosux]*",
528
461
  "patterns": [
529
462
  {
530
463
  "include": "#regex_sub"
@@ -532,22 +465,22 @@
532
465
  {
533
466
  "include": "#nest_brackets_r"
534
467
  }
535
- ]
536
- },
537
- {
538
- "begin": "%r\\(",
468
+ ],
539
469
  "beginCaptures": {
540
470
  "0": {
541
471
  "name": "punctuation.section.regexp.begin.ruby"
542
472
  }
543
473
  },
544
- "end": "\\)[eimnosux]*",
545
474
  "endCaptures": {
546
475
  "0": {
547
476
  "name": "punctuation.section.regexp.end.ruby"
548
477
  }
549
- },
478
+ }
479
+ },
480
+ {
550
481
  "name": "string.regexp.interpolated.ruby",
482
+ "begin": "%r\\(",
483
+ "end": "\\)[eimnosux]*",
551
484
  "patterns": [
552
485
  {
553
486
  "include": "#regex_sub"
@@ -555,22 +488,22 @@
555
488
  {
556
489
  "include": "#nest_parens_r"
557
490
  }
558
- ]
559
- },
560
- {
561
- "begin": "%r<",
491
+ ],
562
492
  "beginCaptures": {
563
493
  "0": {
564
494
  "name": "punctuation.section.regexp.begin.ruby"
565
495
  }
566
496
  },
567
- "end": ">[eimnosux]*",
568
497
  "endCaptures": {
569
498
  "0": {
570
499
  "name": "punctuation.section.regexp.end.ruby"
571
500
  }
572
- },
501
+ }
502
+ },
503
+ {
573
504
  "name": "string.regexp.interpolated.ruby",
505
+ "begin": "%r\u003c",
506
+ "end": "\u003e[eimnosux]*",
574
507
  "patterns": [
575
508
  {
576
509
  "include": "#regex_sub"
@@ -578,42 +511,42 @@
578
511
  {
579
512
  "include": "#nest_ltgt_r"
580
513
  }
581
- ]
582
- },
583
- {
584
- "begin": "%r([^\\w])",
514
+ ],
585
515
  "beginCaptures": {
586
516
  "0": {
587
517
  "name": "punctuation.section.regexp.begin.ruby"
588
518
  }
589
519
  },
590
- "end": "\\1[eimnosux]*",
591
520
  "endCaptures": {
592
521
  "0": {
593
522
  "name": "punctuation.section.regexp.end.ruby"
594
523
  }
595
- },
524
+ }
525
+ },
526
+ {
596
527
  "name": "string.regexp.interpolated.ruby",
528
+ "begin": "%r([^\\w])",
529
+ "end": "\\1[eimnosux]*",
597
530
  "patterns": [
598
531
  {
599
532
  "include": "#regex_sub"
600
533
  }
601
- ]
602
- },
603
- {
604
- "begin": "%I\\[",
534
+ ],
605
535
  "beginCaptures": {
606
536
  "0": {
607
- "name": "punctuation.section.array.begin.ruby"
537
+ "name": "punctuation.section.regexp.begin.ruby"
608
538
  }
609
539
  },
610
- "end": "]",
611
540
  "endCaptures": {
612
541
  "0": {
613
- "name": "punctuation.section.array.end.ruby"
542
+ "name": "punctuation.section.regexp.end.ruby"
614
543
  }
615
- },
544
+ }
545
+ },
546
+ {
616
547
  "name": "constant.other.symbol.interpolated.ruby",
548
+ "begin": "%I\\[",
549
+ "end": "]",
617
550
  "patterns": [
618
551
  {
619
552
  "include": "#interpolated_ruby"
@@ -624,22 +557,22 @@
624
557
  {
625
558
  "include": "#nest_brackets_i"
626
559
  }
627
- ]
628
- },
629
- {
630
- "begin": "%I\\(",
560
+ ],
631
561
  "beginCaptures": {
632
562
  "0": {
633
563
  "name": "punctuation.section.array.begin.ruby"
634
564
  }
635
565
  },
636
- "end": "\\)",
637
566
  "endCaptures": {
638
567
  "0": {
639
568
  "name": "punctuation.section.array.end.ruby"
640
569
  }
641
- },
570
+ }
571
+ },
572
+ {
642
573
  "name": "constant.other.symbol.interpolated.ruby",
574
+ "begin": "%I\\(",
575
+ "end": "\\)",
643
576
  "patterns": [
644
577
  {
645
578
  "include": "#interpolated_ruby"
@@ -650,22 +583,22 @@
650
583
  {
651
584
  "include": "#nest_parens_i"
652
585
  }
653
- ]
654
- },
655
- {
656
- "begin": "%I<",
586
+ ],
657
587
  "beginCaptures": {
658
588
  "0": {
659
589
  "name": "punctuation.section.array.begin.ruby"
660
590
  }
661
591
  },
662
- "end": ">",
663
592
  "endCaptures": {
664
593
  "0": {
665
594
  "name": "punctuation.section.array.end.ruby"
666
595
  }
667
- },
596
+ }
597
+ },
598
+ {
668
599
  "name": "constant.other.symbol.interpolated.ruby",
600
+ "begin": "%I\u003c",
601
+ "end": "\u003e",
669
602
  "patterns": [
670
603
  {
671
604
  "include": "#interpolated_ruby"
@@ -676,22 +609,22 @@
676
609
  {
677
610
  "include": "#nest_ltgt_i"
678
611
  }
679
- ]
680
- },
681
- {
682
- "begin": "%I{",
612
+ ],
683
613
  "beginCaptures": {
684
614
  "0": {
685
615
  "name": "punctuation.section.array.begin.ruby"
686
616
  }
687
617
  },
688
- "end": "}",
689
618
  "endCaptures": {
690
619
  "0": {
691
620
  "name": "punctuation.section.array.end.ruby"
692
621
  }
693
- },
622
+ }
623
+ },
624
+ {
694
625
  "name": "constant.other.symbol.interpolated.ruby",
626
+ "begin": "%I{",
627
+ "end": "}",
695
628
  "patterns": [
696
629
  {
697
630
  "include": "#interpolated_ruby"
@@ -702,22 +635,22 @@
702
635
  {
703
636
  "include": "#nest_curly_i"
704
637
  }
705
- ]
706
- },
707
- {
708
- "begin": "%I([^\\w])",
638
+ ],
709
639
  "beginCaptures": {
710
640
  "0": {
711
641
  "name": "punctuation.section.array.begin.ruby"
712
642
  }
713
643
  },
714
- "end": "\\1",
715
644
  "endCaptures": {
716
645
  "0": {
717
646
  "name": "punctuation.section.array.end.ruby"
718
647
  }
719
- },
648
+ }
649
+ },
650
+ {
720
651
  "name": "constant.other.symbol.interpolated.ruby",
652
+ "begin": "%I([^\\w])",
653
+ "end": "\\1",
721
654
  "patterns": [
722
655
  {
723
656
  "include": "#interpolated_ruby"
@@ -725,139 +658,138 @@
725
658
  {
726
659
  "include": "#escaped_char"
727
660
  }
728
- ]
729
- },
730
- {
731
- "begin": "%i\\[",
661
+ ],
732
662
  "beginCaptures": {
733
663
  "0": {
734
664
  "name": "punctuation.section.array.begin.ruby"
735
665
  }
736
666
  },
737
- "end": "]",
738
667
  "endCaptures": {
739
668
  "0": {
740
669
  "name": "punctuation.section.array.end.ruby"
741
670
  }
742
- },
671
+ }
672
+ },
673
+ {
743
674
  "name": "constant.other.symbol.ruby",
675
+ "begin": "%i\\[",
676
+ "end": "]",
744
677
  "patterns": [
745
678
  {
746
- "match": "\\\\]|\\\\\\\\",
747
- "name": "constant.character.escape.ruby"
679
+ "name": "constant.character.escape.ruby",
680
+ "match": "\\\\]|\\\\\\\\"
748
681
  },
749
682
  {
750
683
  "include": "#nest_brackets"
751
684
  }
752
- ]
753
- },
754
- {
755
- "begin": "%i\\(",
685
+ ],
756
686
  "beginCaptures": {
757
687
  "0": {
758
688
  "name": "punctuation.section.array.begin.ruby"
759
689
  }
760
690
  },
761
- "end": "\\)",
762
691
  "endCaptures": {
763
692
  "0": {
764
693
  "name": "punctuation.section.array.end.ruby"
765
694
  }
766
- },
695
+ }
696
+ },
697
+ {
767
698
  "name": "constant.other.symbol.ruby",
699
+ "begin": "%i\\(",
700
+ "end": "\\)",
768
701
  "patterns": [
769
702
  {
770
- "match": "\\\\\\)|\\\\\\\\",
771
- "name": "constant.character.escape.ruby"
703
+ "name": "constant.character.escape.ruby",
704
+ "match": "\\\\\\)|\\\\\\\\"
772
705
  },
773
706
  {
774
707
  "include": "#nest_parens"
775
708
  }
776
- ]
777
- },
778
- {
779
- "begin": "%i<",
709
+ ],
780
710
  "beginCaptures": {
781
711
  "0": {
782
712
  "name": "punctuation.section.array.begin.ruby"
783
713
  }
784
714
  },
785
- "end": ">",
786
715
  "endCaptures": {
787
716
  "0": {
788
717
  "name": "punctuation.section.array.end.ruby"
789
718
  }
790
- },
719
+ }
720
+ },
721
+ {
791
722
  "name": "constant.other.symbol.ruby",
723
+ "begin": "%i\u003c",
724
+ "end": "\u003e",
792
725
  "patterns": [
793
726
  {
794
- "match": "\\\\>|\\\\\\\\",
795
- "name": "constant.character.escape.ruby"
727
+ "name": "constant.character.escape.ruby",
728
+ "match": "\\\\\u003e|\\\\\\\\"
796
729
  },
797
730
  {
798
731
  "include": "#nest_ltgt"
799
732
  }
800
- ]
801
- },
802
- {
803
- "begin": "%i{",
733
+ ],
804
734
  "beginCaptures": {
805
735
  "0": {
806
736
  "name": "punctuation.section.array.begin.ruby"
807
737
  }
808
738
  },
809
- "end": "}",
810
739
  "endCaptures": {
811
740
  "0": {
812
741
  "name": "punctuation.section.array.end.ruby"
813
742
  }
814
- },
743
+ }
744
+ },
745
+ {
815
746
  "name": "constant.other.symbol.ruby",
747
+ "begin": "%i{",
748
+ "end": "}",
816
749
  "patterns": [
817
750
  {
818
- "match": "\\\\}|\\\\\\\\",
819
- "name": "constant.character.escape.ruby"
751
+ "name": "constant.character.escape.ruby",
752
+ "match": "\\\\}|\\\\\\\\"
820
753
  },
821
754
  {
822
755
  "include": "#nest_curly"
823
756
  }
824
- ]
825
- },
826
- {
827
- "begin": "%i([^\\w])",
757
+ ],
828
758
  "beginCaptures": {
829
759
  "0": {
830
760
  "name": "punctuation.section.array.begin.ruby"
831
761
  }
832
762
  },
833
- "end": "\\1",
834
763
  "endCaptures": {
835
764
  "0": {
836
765
  "name": "punctuation.section.array.end.ruby"
837
766
  }
838
- },
767
+ }
768
+ },
769
+ {
839
770
  "name": "constant.other.symbol.ruby",
771
+ "begin": "%i([^\\w])",
772
+ "end": "\\1",
840
773
  "patterns": [
841
774
  {
842
- "comment": "Cant be named because its not neccesarily an escape.",
843
775
  "match": "\\\\."
844
776
  }
845
- ]
846
- },
847
- {
848
- "begin": "%W\\[",
777
+ ],
849
778
  "beginCaptures": {
850
779
  "0": {
851
780
  "name": "punctuation.section.array.begin.ruby"
852
781
  }
853
782
  },
854
- "end": "]",
855
783
  "endCaptures": {
856
784
  "0": {
857
785
  "name": "punctuation.section.array.end.ruby"
858
786
  }
859
- },
787
+ }
788
+ },
789
+ {
860
790
  "name": "string.quoted.other.interpolated.ruby",
791
+ "begin": "%W\\[",
792
+ "end": "]",
861
793
  "patterns": [
862
794
  {
863
795
  "include": "#interpolated_ruby"
@@ -868,22 +800,22 @@
868
800
  {
869
801
  "include": "#nest_brackets_i"
870
802
  }
871
- ]
872
- },
873
- {
874
- "begin": "%W\\(",
803
+ ],
875
804
  "beginCaptures": {
876
805
  "0": {
877
806
  "name": "punctuation.section.array.begin.ruby"
878
807
  }
879
808
  },
880
- "end": "\\)",
881
809
  "endCaptures": {
882
810
  "0": {
883
811
  "name": "punctuation.section.array.end.ruby"
884
812
  }
885
- },
813
+ }
814
+ },
815
+ {
886
816
  "name": "string.quoted.other.interpolated.ruby",
817
+ "begin": "%W\\(",
818
+ "end": "\\)",
887
819
  "patterns": [
888
820
  {
889
821
  "include": "#interpolated_ruby"
@@ -894,22 +826,22 @@
894
826
  {
895
827
  "include": "#nest_parens_i"
896
828
  }
897
- ]
898
- },
899
- {
900
- "begin": "%W<",
829
+ ],
901
830
  "beginCaptures": {
902
831
  "0": {
903
832
  "name": "punctuation.section.array.begin.ruby"
904
833
  }
905
834
  },
906
- "end": ">",
907
835
  "endCaptures": {
908
836
  "0": {
909
837
  "name": "punctuation.section.array.end.ruby"
910
838
  }
911
- },
839
+ }
840
+ },
841
+ {
912
842
  "name": "string.quoted.other.interpolated.ruby",
843
+ "begin": "%W\u003c",
844
+ "end": "\u003e",
913
845
  "patterns": [
914
846
  {
915
847
  "include": "#interpolated_ruby"
@@ -920,22 +852,22 @@
920
852
  {
921
853
  "include": "#nest_ltgt_i"
922
854
  }
923
- ]
924
- },
925
- {
926
- "begin": "%W{",
855
+ ],
927
856
  "beginCaptures": {
928
857
  "0": {
929
858
  "name": "punctuation.section.array.begin.ruby"
930
859
  }
931
860
  },
932
- "end": "}",
933
861
  "endCaptures": {
934
862
  "0": {
935
863
  "name": "punctuation.section.array.end.ruby"
936
864
  }
937
- },
865
+ }
866
+ },
867
+ {
938
868
  "name": "string.quoted.other.interpolated.ruby",
869
+ "begin": "%W{",
870
+ "end": "}",
939
871
  "patterns": [
940
872
  {
941
873
  "include": "#interpolated_ruby"
@@ -946,22 +878,22 @@
946
878
  {
947
879
  "include": "#nest_curly_i"
948
880
  }
949
- ]
950
- },
951
- {
952
- "begin": "%W([^\\w])",
881
+ ],
953
882
  "beginCaptures": {
954
883
  "0": {
955
884
  "name": "punctuation.section.array.begin.ruby"
956
885
  }
957
886
  },
958
- "end": "\\1",
959
887
  "endCaptures": {
960
888
  "0": {
961
889
  "name": "punctuation.section.array.end.ruby"
962
890
  }
963
- },
891
+ }
892
+ },
893
+ {
964
894
  "name": "string.quoted.other.interpolated.ruby",
895
+ "begin": "%W([^\\w])",
896
+ "end": "\\1",
965
897
  "patterns": [
966
898
  {
967
899
  "include": "#interpolated_ruby"
@@ -969,139 +901,138 @@
969
901
  {
970
902
  "include": "#escaped_char"
971
903
  }
972
- ]
973
- },
974
- {
975
- "begin": "%w\\[",
904
+ ],
976
905
  "beginCaptures": {
977
906
  "0": {
978
907
  "name": "punctuation.section.array.begin.ruby"
979
908
  }
980
909
  },
981
- "end": "]",
982
910
  "endCaptures": {
983
911
  "0": {
984
912
  "name": "punctuation.section.array.end.ruby"
985
913
  }
986
- },
914
+ }
915
+ },
916
+ {
987
917
  "name": "string.quoted.other.ruby",
918
+ "begin": "%w\\[",
919
+ "end": "]",
988
920
  "patterns": [
989
921
  {
990
- "match": "\\\\]|\\\\\\\\",
991
- "name": "constant.character.escape.ruby"
922
+ "name": "constant.character.escape.ruby",
923
+ "match": "\\\\]|\\\\\\\\"
992
924
  },
993
925
  {
994
926
  "include": "#nest_brackets"
995
927
  }
996
- ]
997
- },
998
- {
999
- "begin": "%w\\(",
928
+ ],
1000
929
  "beginCaptures": {
1001
930
  "0": {
1002
931
  "name": "punctuation.section.array.begin.ruby"
1003
932
  }
1004
933
  },
1005
- "end": "\\)",
1006
934
  "endCaptures": {
1007
935
  "0": {
1008
936
  "name": "punctuation.section.array.end.ruby"
1009
937
  }
1010
- },
938
+ }
939
+ },
940
+ {
1011
941
  "name": "string.quoted.other.ruby",
942
+ "begin": "%w\\(",
943
+ "end": "\\)",
1012
944
  "patterns": [
1013
945
  {
1014
- "match": "\\\\\\)|\\\\\\\\",
1015
- "name": "constant.character.escape.ruby"
946
+ "name": "constant.character.escape.ruby",
947
+ "match": "\\\\\\)|\\\\\\\\"
1016
948
  },
1017
949
  {
1018
950
  "include": "#nest_parens"
1019
951
  }
1020
- ]
1021
- },
1022
- {
1023
- "begin": "%w<",
952
+ ],
1024
953
  "beginCaptures": {
1025
954
  "0": {
1026
955
  "name": "punctuation.section.array.begin.ruby"
1027
956
  }
1028
957
  },
1029
- "end": ">",
1030
958
  "endCaptures": {
1031
959
  "0": {
1032
960
  "name": "punctuation.section.array.end.ruby"
1033
961
  }
1034
- },
962
+ }
963
+ },
964
+ {
1035
965
  "name": "string.quoted.other.ruby",
966
+ "begin": "%w\u003c",
967
+ "end": "\u003e",
1036
968
  "patterns": [
1037
969
  {
1038
- "match": "\\\\>|\\\\\\\\",
1039
- "name": "constant.character.escape.ruby"
970
+ "name": "constant.character.escape.ruby",
971
+ "match": "\\\\\u003e|\\\\\\\\"
1040
972
  },
1041
973
  {
1042
974
  "include": "#nest_ltgt"
1043
975
  }
1044
- ]
1045
- },
1046
- {
1047
- "begin": "%w{",
976
+ ],
1048
977
  "beginCaptures": {
1049
978
  "0": {
1050
979
  "name": "punctuation.section.array.begin.ruby"
1051
980
  }
1052
981
  },
1053
- "end": "}",
1054
982
  "endCaptures": {
1055
983
  "0": {
1056
984
  "name": "punctuation.section.array.end.ruby"
1057
985
  }
1058
- },
986
+ }
987
+ },
988
+ {
1059
989
  "name": "string.quoted.other.ruby",
990
+ "begin": "%w{",
991
+ "end": "}",
1060
992
  "patterns": [
1061
993
  {
1062
- "match": "\\\\}|\\\\\\\\",
1063
- "name": "constant.character.escape.ruby"
994
+ "name": "constant.character.escape.ruby",
995
+ "match": "\\\\}|\\\\\\\\"
1064
996
  },
1065
997
  {
1066
998
  "include": "#nest_curly"
1067
999
  }
1068
- ]
1069
- },
1070
- {
1071
- "begin": "%w([^\\w])",
1000
+ ],
1072
1001
  "beginCaptures": {
1073
1002
  "0": {
1074
1003
  "name": "punctuation.section.array.begin.ruby"
1075
1004
  }
1076
1005
  },
1077
- "end": "\\1",
1078
1006
  "endCaptures": {
1079
1007
  "0": {
1080
1008
  "name": "punctuation.section.array.end.ruby"
1081
1009
  }
1082
- },
1010
+ }
1011
+ },
1012
+ {
1083
1013
  "name": "string.quoted.other.ruby",
1014
+ "begin": "%w([^\\w])",
1015
+ "end": "\\1",
1084
1016
  "patterns": [
1085
1017
  {
1086
- "comment": "Cant be named because its not neccesarily an escape.",
1087
1018
  "match": "\\\\."
1088
1019
  }
1089
- ]
1090
- },
1091
- {
1092
- "begin": "%[Qx]?\\(",
1020
+ ],
1093
1021
  "beginCaptures": {
1094
1022
  "0": {
1095
- "name": "punctuation.definition.string.begin.ruby"
1023
+ "name": "punctuation.section.array.begin.ruby"
1096
1024
  }
1097
1025
  },
1098
- "end": "\\)",
1099
1026
  "endCaptures": {
1100
1027
  "0": {
1101
- "name": "punctuation.definition.string.end.ruby"
1028
+ "name": "punctuation.section.array.end.ruby"
1102
1029
  }
1103
- },
1030
+ }
1031
+ },
1032
+ {
1104
1033
  "name": "string.quoted.other.interpolated.ruby",
1034
+ "begin": "%[Qx]?\\(",
1035
+ "end": "\\)",
1105
1036
  "patterns": [
1106
1037
  {
1107
1038
  "include": "#interpolated_ruby"
@@ -1112,22 +1043,22 @@
1112
1043
  {
1113
1044
  "include": "#nest_parens_i"
1114
1045
  }
1115
- ]
1116
- },
1117
- {
1118
- "begin": "%[Qx]?\\[",
1046
+ ],
1119
1047
  "beginCaptures": {
1120
1048
  "0": {
1121
1049
  "name": "punctuation.definition.string.begin.ruby"
1122
1050
  }
1123
1051
  },
1124
- "end": "]",
1125
1052
  "endCaptures": {
1126
1053
  "0": {
1127
1054
  "name": "punctuation.definition.string.end.ruby"
1128
1055
  }
1129
- },
1056
+ }
1057
+ },
1058
+ {
1130
1059
  "name": "string.quoted.other.interpolated.ruby",
1060
+ "begin": "%[Qx]?\\[",
1061
+ "end": "]",
1131
1062
  "patterns": [
1132
1063
  {
1133
1064
  "include": "#interpolated_ruby"
@@ -1138,22 +1069,22 @@
1138
1069
  {
1139
1070
  "include": "#nest_brackets_i"
1140
1071
  }
1141
- ]
1142
- },
1143
- {
1144
- "begin": "%[Qx]?{",
1072
+ ],
1145
1073
  "beginCaptures": {
1146
1074
  "0": {
1147
1075
  "name": "punctuation.definition.string.begin.ruby"
1148
1076
  }
1149
1077
  },
1150
- "end": "}",
1151
1078
  "endCaptures": {
1152
1079
  "0": {
1153
1080
  "name": "punctuation.definition.string.end.ruby"
1154
1081
  }
1155
- },
1082
+ }
1083
+ },
1084
+ {
1156
1085
  "name": "string.quoted.other.interpolated.ruby",
1086
+ "begin": "%[Qx]?{",
1087
+ "end": "}",
1157
1088
  "patterns": [
1158
1089
  {
1159
1090
  "include": "#interpolated_ruby"
@@ -1164,22 +1095,22 @@
1164
1095
  {
1165
1096
  "include": "#nest_curly_i"
1166
1097
  }
1167
- ]
1168
- },
1169
- {
1170
- "begin": "%[Qx]?<",
1098
+ ],
1171
1099
  "beginCaptures": {
1172
1100
  "0": {
1173
1101
  "name": "punctuation.definition.string.begin.ruby"
1174
1102
  }
1175
1103
  },
1176
- "end": ">",
1177
1104
  "endCaptures": {
1178
1105
  "0": {
1179
1106
  "name": "punctuation.definition.string.end.ruby"
1180
1107
  }
1181
- },
1108
+ }
1109
+ },
1110
+ {
1182
1111
  "name": "string.quoted.other.interpolated.ruby",
1112
+ "begin": "%[Qx]?\u003c",
1113
+ "end": "\u003e",
1183
1114
  "patterns": [
1184
1115
  {
1185
1116
  "include": "#interpolated_ruby"
@@ -1190,22 +1121,22 @@
1190
1121
  {
1191
1122
  "include": "#nest_ltgt_i"
1192
1123
  }
1193
- ]
1194
- },
1195
- {
1196
- "begin": "%[Qx]([^\\w])",
1124
+ ],
1197
1125
  "beginCaptures": {
1198
1126
  "0": {
1199
1127
  "name": "punctuation.definition.string.begin.ruby"
1200
1128
  }
1201
1129
  },
1202
- "end": "\\1",
1203
1130
  "endCaptures": {
1204
1131
  "0": {
1205
1132
  "name": "punctuation.definition.string.end.ruby"
1206
1133
  }
1207
- },
1134
+ }
1135
+ },
1136
+ {
1208
1137
  "name": "string.quoted.other.interpolated.ruby",
1138
+ "begin": "%[Qx]([^\\w])",
1139
+ "end": "\\1",
1209
1140
  "patterns": [
1210
1141
  {
1211
1142
  "include": "#interpolated_ruby"
@@ -1213,361 +1144,354 @@
1213
1144
  {
1214
1145
  "include": "#escaped_char"
1215
1146
  }
1216
- ]
1217
- },
1218
- {
1219
- "begin": "%([^\\w\\s=])",
1147
+ ],
1220
1148
  "beginCaptures": {
1221
1149
  "0": {
1222
1150
  "name": "punctuation.definition.string.begin.ruby"
1223
1151
  }
1224
1152
  },
1225
- "end": "\\1",
1226
1153
  "endCaptures": {
1227
1154
  "0": {
1228
1155
  "name": "punctuation.definition.string.end.ruby"
1229
1156
  }
1230
- },
1157
+ }
1158
+ },
1159
+ {
1231
1160
  "name": "string.quoted.other.interpolated.ruby",
1232
- "patterns": [
1161
+ "begin": "%([^\\w\\s=])",
1162
+ "end": "\\1",
1163
+ "patterns": [
1233
1164
  {
1234
1165
  "include": "#interpolated_ruby"
1235
1166
  },
1236
1167
  {
1237
1168
  "include": "#escaped_char"
1238
1169
  }
1239
- ]
1240
- },
1241
- {
1242
- "begin": "%q\\(",
1170
+ ],
1243
1171
  "beginCaptures": {
1244
1172
  "0": {
1245
1173
  "name": "punctuation.definition.string.begin.ruby"
1246
1174
  }
1247
1175
  },
1248
- "end": "\\)",
1249
1176
  "endCaptures": {
1250
1177
  "0": {
1251
1178
  "name": "punctuation.definition.string.end.ruby"
1252
1179
  }
1253
- },
1180
+ }
1181
+ },
1182
+ {
1254
1183
  "name": "string.quoted.other.ruby",
1184
+ "begin": "%q\\(",
1185
+ "end": "\\)",
1255
1186
  "patterns": [
1256
1187
  {
1257
- "match": "\\\\\\)|\\\\\\\\",
1258
- "name": "constant.character.escape.ruby"
1188
+ "name": "constant.character.escape.ruby",
1189
+ "match": "\\\\\\)|\\\\\\\\"
1259
1190
  },
1260
1191
  {
1261
1192
  "include": "#nest_parens"
1262
1193
  }
1263
- ]
1264
- },
1265
- {
1266
- "begin": "%q<",
1194
+ ],
1267
1195
  "beginCaptures": {
1268
1196
  "0": {
1269
1197
  "name": "punctuation.definition.string.begin.ruby"
1270
1198
  }
1271
1199
  },
1272
- "end": ">",
1273
1200
  "endCaptures": {
1274
1201
  "0": {
1275
1202
  "name": "punctuation.definition.string.end.ruby"
1276
1203
  }
1277
- },
1204
+ }
1205
+ },
1206
+ {
1278
1207
  "name": "string.quoted.other.ruby",
1208
+ "begin": "%q\u003c",
1209
+ "end": "\u003e",
1279
1210
  "patterns": [
1280
1211
  {
1281
- "match": "\\\\>|\\\\\\\\",
1282
- "name": "constant.character.escape.ruby"
1212
+ "name": "constant.character.escape.ruby",
1213
+ "match": "\\\\\u003e|\\\\\\\\"
1283
1214
  },
1284
1215
  {
1285
1216
  "include": "#nest_ltgt"
1286
1217
  }
1287
- ]
1288
- },
1289
- {
1290
- "begin": "%q\\[",
1218
+ ],
1291
1219
  "beginCaptures": {
1292
1220
  "0": {
1293
1221
  "name": "punctuation.definition.string.begin.ruby"
1294
1222
  }
1295
1223
  },
1296
- "end": "]",
1297
1224
  "endCaptures": {
1298
1225
  "0": {
1299
1226
  "name": "punctuation.definition.string.end.ruby"
1300
1227
  }
1301
- },
1228
+ }
1229
+ },
1230
+ {
1302
1231
  "name": "string.quoted.other.ruby",
1232
+ "begin": "%q\\[",
1233
+ "end": "]",
1303
1234
  "patterns": [
1304
1235
  {
1305
- "match": "\\\\]|\\\\\\\\",
1306
- "name": "constant.character.escape.ruby"
1236
+ "name": "constant.character.escape.ruby",
1237
+ "match": "\\\\]|\\\\\\\\"
1307
1238
  },
1308
1239
  {
1309
1240
  "include": "#nest_brackets"
1310
1241
  }
1311
- ]
1312
- },
1313
- {
1314
- "begin": "%q{",
1242
+ ],
1315
1243
  "beginCaptures": {
1316
1244
  "0": {
1317
1245
  "name": "punctuation.definition.string.begin.ruby"
1318
1246
  }
1319
1247
  },
1320
- "end": "}",
1321
1248
  "endCaptures": {
1322
1249
  "0": {
1323
1250
  "name": "punctuation.definition.string.end.ruby"
1324
1251
  }
1325
- },
1252
+ }
1253
+ },
1254
+ {
1326
1255
  "name": "string.quoted.other.ruby",
1256
+ "begin": "%q{",
1257
+ "end": "}",
1327
1258
  "patterns": [
1328
1259
  {
1329
- "match": "\\\\}|\\\\\\\\",
1330
- "name": "constant.character.escape.ruby"
1260
+ "name": "constant.character.escape.ruby",
1261
+ "match": "\\\\}|\\\\\\\\"
1331
1262
  },
1332
1263
  {
1333
1264
  "include": "#nest_curly"
1334
1265
  }
1335
- ]
1336
- },
1337
- {
1338
- "begin": "%q([^\\w])",
1266
+ ],
1339
1267
  "beginCaptures": {
1340
1268
  "0": {
1341
1269
  "name": "punctuation.definition.string.begin.ruby"
1342
1270
  }
1343
1271
  },
1344
- "end": "\\1",
1345
1272
  "endCaptures": {
1346
1273
  "0": {
1347
1274
  "name": "punctuation.definition.string.end.ruby"
1348
1275
  }
1349
- },
1276
+ }
1277
+ },
1278
+ {
1350
1279
  "name": "string.quoted.other.ruby",
1280
+ "begin": "%q([^\\w])",
1281
+ "end": "\\1",
1351
1282
  "patterns": [
1352
1283
  {
1353
- "comment": "Cant be named because its not neccesarily an escape.",
1354
1284
  "match": "\\\\."
1355
1285
  }
1356
- ]
1357
- },
1358
- {
1359
- "begin": "%s\\(",
1286
+ ],
1360
1287
  "beginCaptures": {
1361
1288
  "0": {
1362
- "name": "punctuation.definition.symbol.begin.ruby"
1289
+ "name": "punctuation.definition.string.begin.ruby"
1363
1290
  }
1364
1291
  },
1365
- "end": "\\)",
1366
1292
  "endCaptures": {
1367
1293
  "0": {
1368
- "name": "punctuation.definition.symbol.end.ruby"
1294
+ "name": "punctuation.definition.string.end.ruby"
1369
1295
  }
1370
- },
1296
+ }
1297
+ },
1298
+ {
1371
1299
  "name": "constant.other.symbol.ruby",
1300
+ "begin": "%s\\(",
1301
+ "end": "\\)",
1372
1302
  "patterns": [
1373
1303
  {
1374
- "match": "\\\\\\)|\\\\\\\\",
1375
- "name": "constant.character.escape.ruby"
1304
+ "name": "constant.character.escape.ruby",
1305
+ "match": "\\\\\\)|\\\\\\\\"
1376
1306
  },
1377
1307
  {
1378
1308
  "include": "#nest_parens"
1379
1309
  }
1380
- ]
1381
- },
1382
- {
1383
- "begin": "%s<",
1310
+ ],
1384
1311
  "beginCaptures": {
1385
1312
  "0": {
1386
1313
  "name": "punctuation.definition.symbol.begin.ruby"
1387
1314
  }
1388
1315
  },
1389
- "end": ">",
1390
1316
  "endCaptures": {
1391
1317
  "0": {
1392
1318
  "name": "punctuation.definition.symbol.end.ruby"
1393
1319
  }
1394
- },
1320
+ }
1321
+ },
1322
+ {
1395
1323
  "name": "constant.other.symbol.ruby",
1324
+ "begin": "%s\u003c",
1325
+ "end": "\u003e",
1396
1326
  "patterns": [
1397
1327
  {
1398
- "match": "\\\\>|\\\\\\\\",
1399
- "name": "constant.character.escape.ruby"
1328
+ "name": "constant.character.escape.ruby",
1329
+ "match": "\\\\\u003e|\\\\\\\\"
1400
1330
  },
1401
1331
  {
1402
1332
  "include": "#nest_ltgt"
1403
1333
  }
1404
- ]
1405
- },
1406
- {
1407
- "begin": "%s\\[",
1334
+ ],
1408
1335
  "beginCaptures": {
1409
1336
  "0": {
1410
1337
  "name": "punctuation.definition.symbol.begin.ruby"
1411
1338
  }
1412
1339
  },
1413
- "end": "]",
1414
1340
  "endCaptures": {
1415
1341
  "0": {
1416
1342
  "name": "punctuation.definition.symbol.end.ruby"
1417
1343
  }
1418
- },
1344
+ }
1345
+ },
1346
+ {
1419
1347
  "name": "constant.other.symbol.ruby",
1348
+ "begin": "%s\\[",
1349
+ "end": "]",
1420
1350
  "patterns": [
1421
1351
  {
1422
- "match": "\\\\]|\\\\\\\\",
1423
- "name": "constant.character.escape.ruby"
1352
+ "name": "constant.character.escape.ruby",
1353
+ "match": "\\\\]|\\\\\\\\"
1424
1354
  },
1425
1355
  {
1426
1356
  "include": "#nest_brackets"
1427
1357
  }
1428
- ]
1429
- },
1430
- {
1431
- "begin": "%s{",
1358
+ ],
1432
1359
  "beginCaptures": {
1433
1360
  "0": {
1434
1361
  "name": "punctuation.definition.symbol.begin.ruby"
1435
1362
  }
1436
1363
  },
1437
- "end": "}",
1438
1364
  "endCaptures": {
1439
1365
  "0": {
1440
1366
  "name": "punctuation.definition.symbol.end.ruby"
1441
1367
  }
1442
- },
1368
+ }
1369
+ },
1370
+ {
1443
1371
  "name": "constant.other.symbol.ruby",
1372
+ "begin": "%s{",
1373
+ "end": "}",
1444
1374
  "patterns": [
1445
1375
  {
1446
- "match": "\\\\}|\\\\\\\\",
1447
- "name": "constant.character.escape.ruby"
1376
+ "name": "constant.character.escape.ruby",
1377
+ "match": "\\\\}|\\\\\\\\"
1448
1378
  },
1449
1379
  {
1450
1380
  "include": "#nest_curly"
1451
1381
  }
1452
- ]
1453
- },
1454
- {
1455
- "begin": "%s([^\\w])",
1382
+ ],
1456
1383
  "beginCaptures": {
1457
1384
  "0": {
1458
1385
  "name": "punctuation.definition.symbol.begin.ruby"
1459
1386
  }
1460
1387
  },
1461
- "end": "\\1",
1462
1388
  "endCaptures": {
1463
1389
  "0": {
1464
1390
  "name": "punctuation.definition.symbol.end.ruby"
1465
1391
  }
1466
- },
1392
+ }
1393
+ },
1394
+ {
1467
1395
  "name": "constant.other.symbol.ruby",
1396
+ "begin": "%s([^\\w])",
1397
+ "end": "\\1",
1468
1398
  "patterns": [
1469
1399
  {
1470
- "comment": "Cant be named because its not neccesarily an escape.",
1471
1400
  "match": "\\\\."
1472
1401
  }
1473
- ]
1402
+ ],
1403
+ "beginCaptures": {
1404
+ "0": {
1405
+ "name": "punctuation.definition.symbol.begin.ruby"
1406
+ }
1407
+ },
1408
+ "endCaptures": {
1409
+ "0": {
1410
+ "name": "punctuation.definition.symbol.end.ruby"
1411
+ }
1412
+ }
1474
1413
  },
1475
1414
  {
1415
+ "name": "constant.other.symbol.ruby",
1416
+ "match": "(?x)\n(?\u003c!:)(:)\n(?\u003e\n [$a-zA-Z_]\\w*(?\u003e[?!]|=(?![\u003e=]))?\n |\n ===?|\u003c=\u003e|\u003e[\u003e=]?|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n |\n @@?[a-zA-Z_]\\w*\n)",
1476
1417
  "captures": {
1477
1418
  "1": {
1478
1419
  "name": "punctuation.definition.constant.ruby"
1479
1420
  }
1480
- },
1481
- "comment": "symbols",
1482
- "match": "(?x)\n(?<!:)(:)\n(?>\n [$a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?\n |\n ===?|<=>|>[>=]?|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[]=?\n |\n @@?[a-zA-Z_]\\w*\n)",
1483
- "name": "constant.other.symbol.ruby"
1421
+ }
1484
1422
  },
1485
1423
  {
1424
+ "name": "comment.block.documentation.ruby",
1486
1425
  "begin": "^=begin",
1426
+ "end": "^=end",
1487
1427
  "captures": {
1488
1428
  "0": {
1489
1429
  "name": "punctuation.definition.comment.ruby"
1490
1430
  }
1491
- },
1492
- "comment": "multiline comments",
1493
- "end": "^=end",
1494
- "name": "comment.block.documentation.ruby"
1431
+ }
1495
1432
  },
1496
1433
  {
1497
1434
  "begin": "(^[ \\t]+)?(?=#)",
1498
- "beginCaptures": {
1499
- "1": {
1500
- "name": "punctuation.whitespace.comment.leading.ruby"
1501
- }
1502
- },
1503
1435
  "end": "(?!\\G)",
1504
1436
  "patterns": [
1505
1437
  {
1438
+ "name": "comment.line.number-sign.ruby",
1506
1439
  "begin": "#",
1507
- "beginCaptures": {
1508
- "0": {
1509
- "name": "punctuation.definition.comment.ruby"
1510
- }
1511
- },
1512
1440
  "end": "\\n",
1513
- "name": "comment.line.number-sign.ruby",
1514
1441
  "patterns": [
1515
1442
  {
1516
1443
  "include": "#yard"
1517
1444
  }
1518
- ]
1445
+ ],
1446
+ "beginCaptures": {
1447
+ "0": {
1448
+ "name": "punctuation.definition.comment.ruby"
1449
+ }
1450
+ }
1519
1451
  }
1520
- ]
1452
+ ],
1453
+ "beginCaptures": {
1454
+ "1": {
1455
+ "name": "punctuation.whitespace.comment.leading.ruby"
1456
+ }
1457
+ }
1521
1458
  },
1522
1459
  {
1523
- "comment": "\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t",
1524
- "match": "(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",
1525
- "name": "constant.numeric.ruby"
1460
+ "name": "constant.numeric.ruby",
1461
+ "match": "(?\u003c!\\w)\\?(\\\\(x[[:xdigit:]]{1,2}(?![[:xdigit:]])\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])"
1526
1462
  },
1527
1463
  {
1528
- "begin": "^__END__\\n",
1529
- "captures": {
1530
- "0": {
1531
- "name": "string.unquoted.program-block.ruby"
1532
- }
1533
- },
1534
- "comment": "__END__ marker",
1535
1464
  "contentName": "text.plain",
1465
+ "begin": "^__END__\\n",
1536
1466
  "end": "(?=not)impossible",
1537
1467
  "patterns": [
1538
1468
  {
1539
- "begin": "(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",
1540
- "end": "(?=not)impossible",
1541
1469
  "name": "text.html.embedded.ruby",
1470
+ "begin": "(?=\u003c?xml|\u003c(?i:html\\b)|!DOCTYPE (?i:html\\b))",
1471
+ "end": "(?=not)impossible",
1542
1472
  "patterns": [
1543
1473
  {
1544
1474
  "include": "text.html.basic"
1545
1475
  }
1546
1476
  ]
1547
1477
  }
1548
- ]
1478
+ ],
1479
+ "captures": {
1480
+ "0": {
1481
+ "name": "string.unquoted.program-block.ruby"
1482
+ }
1483
+ }
1549
1484
  },
1550
1485
  {
1551
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1))",
1552
- "comment": "Heredoc with embedded html",
1553
- "end": "(?!\\G)",
1554
1486
  "name": "meta.embedded.block.html",
1487
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1))",
1488
+ "end": "(?!\\G)",
1555
1489
  "patterns": [
1556
1490
  {
1557
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1)",
1558
- "beginCaptures": {
1559
- "0": {
1560
- "name": "punctuation.definition.string.begin.ruby"
1561
- }
1562
- },
1491
+ "name": "string.unquoted.heredoc.ruby",
1563
1492
  "contentName": "text.html",
1493
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1)",
1564
1494
  "end": "^\\s*\\2$\\n?",
1565
- "endCaptures": {
1566
- "0": {
1567
- "name": "punctuation.definition.string.end.ruby"
1568
- }
1569
- },
1570
- "name": "string.unquoted.heredoc.ruby",
1571
1495
  "patterns": [
1572
1496
  {
1573
1497
  "include": "#heredoc"
@@ -1581,31 +1505,30 @@
1581
1505
  {
1582
1506
  "include": "#escaped_char"
1583
1507
  }
1584
- ]
1585
- }
1586
- ]
1587
- },
1588
- {
1589
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1))",
1590
- "comment": "Heredoc with embedded xml",
1591
- "end": "(?!\\G)",
1592
- "name": "meta.embedded.block.xml",
1593
- "patterns": [
1594
- {
1595
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1)",
1508
+ ],
1596
1509
  "beginCaptures": {
1597
1510
  "0": {
1598
1511
  "name": "punctuation.definition.string.begin.ruby"
1599
1512
  }
1600
1513
  },
1601
- "contentName": "text.xml",
1602
- "end": "^\\s*\\2$\\n?",
1603
1514
  "endCaptures": {
1604
1515
  "0": {
1605
1516
  "name": "punctuation.definition.string.end.ruby"
1606
1517
  }
1607
- },
1518
+ }
1519
+ }
1520
+ ]
1521
+ },
1522
+ {
1523
+ "name": "meta.embedded.block.xml",
1524
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1))",
1525
+ "end": "(?!\\G)",
1526
+ "patterns": [
1527
+ {
1608
1528
  "name": "string.unquoted.heredoc.ruby",
1529
+ "contentName": "text.xml",
1530
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1)",
1531
+ "end": "^\\s*\\2$\\n?",
1609
1532
  "patterns": [
1610
1533
  {
1611
1534
  "include": "#heredoc"
@@ -1619,31 +1542,30 @@
1619
1542
  {
1620
1543
  "include": "#escaped_char"
1621
1544
  }
1622
- ]
1623
- }
1624
- ]
1625
- },
1626
- {
1627
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1))",
1628
- "comment": "Heredoc with embedded sql",
1629
- "end": "(?!\\G)",
1630
- "name": "meta.embedded.block.sql",
1631
- "patterns": [
1632
- {
1633
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1)",
1545
+ ],
1634
1546
  "beginCaptures": {
1635
1547
  "0": {
1636
1548
  "name": "punctuation.definition.string.begin.ruby"
1637
1549
  }
1638
1550
  },
1639
- "contentName": "source.sql",
1640
- "end": "^\\s*\\2$\\n?",
1641
1551
  "endCaptures": {
1642
1552
  "0": {
1643
1553
  "name": "punctuation.definition.string.end.ruby"
1644
1554
  }
1645
- },
1555
+ }
1556
+ }
1557
+ ]
1558
+ },
1559
+ {
1560
+ "name": "meta.embedded.block.sql",
1561
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1))",
1562
+ "end": "(?!\\G)",
1563
+ "patterns": [
1564
+ {
1646
1565
  "name": "string.unquoted.heredoc.ruby",
1566
+ "contentName": "source.sql",
1567
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1)",
1568
+ "end": "^\\s*\\2$\\n?",
1647
1569
  "patterns": [
1648
1570
  {
1649
1571
  "include": "#heredoc"
@@ -1657,31 +1579,30 @@
1657
1579
  {
1658
1580
  "include": "#escaped_char"
1659
1581
  }
1660
- ]
1661
- }
1662
- ]
1663
- },
1664
- {
1665
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)GRAPHQL)\\b\\1))",
1666
- "comment": "Heredoc with embedded GraphQL",
1667
- "end": "(?!\\G)",
1668
- "name": "meta.embedded.block.graphql",
1669
- "patterns": [
1670
- {
1671
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)GRAPHQL)\\b\\1)",
1582
+ ],
1672
1583
  "beginCaptures": {
1673
1584
  "0": {
1674
1585
  "name": "punctuation.definition.string.begin.ruby"
1675
1586
  }
1676
1587
  },
1677
- "contentName": "source.graphql",
1678
- "end": "^\\s*\\2$\\n?",
1679
1588
  "endCaptures": {
1680
1589
  "0": {
1681
1590
  "name": "punctuation.definition.string.end.ruby"
1682
1591
  }
1683
- },
1592
+ }
1593
+ }
1594
+ ]
1595
+ },
1596
+ {
1597
+ "name": "meta.embedded.block.graphql",
1598
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)GRAPHQL)\\b\\1))",
1599
+ "end": "(?!\\G)",
1600
+ "patterns": [
1601
+ {
1684
1602
  "name": "string.unquoted.heredoc.ruby",
1603
+ "contentName": "source.graphql",
1604
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)GRAPHQL)\\b\\1)",
1605
+ "end": "^\\s*\\2$\\n?",
1685
1606
  "patterns": [
1686
1607
  {
1687
1608
  "include": "#heredoc"
@@ -1695,31 +1616,30 @@
1695
1616
  {
1696
1617
  "include": "#escaped_char"
1697
1618
  }
1698
- ]
1699
- }
1700
- ]
1701
- },
1702
- {
1703
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1))",
1704
- "comment": "Heredoc with embedded css",
1705
- "end": "(?!\\G)",
1706
- "name": "meta.embedded.block.css",
1707
- "patterns": [
1708
- {
1709
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1)",
1619
+ ],
1710
1620
  "beginCaptures": {
1711
1621
  "0": {
1712
1622
  "name": "punctuation.definition.string.begin.ruby"
1713
1623
  }
1714
1624
  },
1715
- "contentName": "source.css",
1716
- "end": "^\\s*\\2$\\n?",
1717
1625
  "endCaptures": {
1718
1626
  "0": {
1719
1627
  "name": "punctuation.definition.string.end.ruby"
1720
1628
  }
1721
- },
1629
+ }
1630
+ }
1631
+ ]
1632
+ },
1633
+ {
1634
+ "name": "meta.embedded.block.css",
1635
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1))",
1636
+ "end": "(?!\\G)",
1637
+ "patterns": [
1638
+ {
1722
1639
  "name": "string.unquoted.heredoc.ruby",
1640
+ "contentName": "source.css",
1641
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1)",
1642
+ "end": "^\\s*\\2$\\n?",
1723
1643
  "patterns": [
1724
1644
  {
1725
1645
  "include": "#heredoc"
@@ -1733,31 +1653,30 @@
1733
1653
  {
1734
1654
  "include": "#escaped_char"
1735
1655
  }
1736
- ]
1737
- }
1738
- ]
1739
- },
1740
- {
1741
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1))",
1742
- "comment": "Heredoc with embedded c++",
1743
- "end": "(?!\\G)",
1744
- "name": "meta.embedded.block.cpp",
1745
- "patterns": [
1746
- {
1747
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1)",
1656
+ ],
1748
1657
  "beginCaptures": {
1749
1658
  "0": {
1750
1659
  "name": "punctuation.definition.string.begin.ruby"
1751
1660
  }
1752
1661
  },
1753
- "contentName": "source.cpp",
1754
- "end": "^\\s*\\2$\\n?",
1755
1662
  "endCaptures": {
1756
1663
  "0": {
1757
1664
  "name": "punctuation.definition.string.end.ruby"
1758
1665
  }
1759
- },
1666
+ }
1667
+ }
1668
+ ]
1669
+ },
1670
+ {
1671
+ "name": "meta.embedded.block.cpp",
1672
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1))",
1673
+ "end": "(?!\\G)",
1674
+ "patterns": [
1675
+ {
1760
1676
  "name": "string.unquoted.heredoc.ruby",
1677
+ "contentName": "source.cpp",
1678
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1)",
1679
+ "end": "^\\s*\\2$\\n?",
1761
1680
  "patterns": [
1762
1681
  {
1763
1682
  "include": "#heredoc"
@@ -1766,36 +1685,35 @@
1766
1685
  "include": "#interpolated_ruby"
1767
1686
  },
1768
1687
  {
1769
- "include": "source.cpp"
1688
+ "include": "source.c++"
1770
1689
  },
1771
1690
  {
1772
1691
  "include": "#escaped_char"
1773
1692
  }
1774
- ]
1775
- }
1776
- ]
1777
- },
1778
- {
1779
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1))",
1780
- "comment": "Heredoc with embedded c",
1781
- "end": "(?!\\G)",
1782
- "name": "meta.embedded.block.c",
1783
- "patterns": [
1784
- {
1785
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1)",
1693
+ ],
1786
1694
  "beginCaptures": {
1787
1695
  "0": {
1788
1696
  "name": "punctuation.definition.string.begin.ruby"
1789
1697
  }
1790
1698
  },
1791
- "contentName": "source.c",
1792
- "end": "^\\s*\\2$\\n?",
1793
1699
  "endCaptures": {
1794
1700
  "0": {
1795
1701
  "name": "punctuation.definition.string.end.ruby"
1796
1702
  }
1797
- },
1703
+ }
1704
+ }
1705
+ ]
1706
+ },
1707
+ {
1708
+ "name": "meta.embedded.block.c",
1709
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)C)\\b\\1))",
1710
+ "end": "(?!\\G)",
1711
+ "patterns": [
1712
+ {
1798
1713
  "name": "string.unquoted.heredoc.ruby",
1714
+ "contentName": "source.c",
1715
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)C)\\b\\1)",
1716
+ "end": "^\\s*\\2$\\n?",
1799
1717
  "patterns": [
1800
1718
  {
1801
1719
  "include": "#heredoc"
@@ -1809,31 +1727,30 @@
1809
1727
  {
1810
1728
  "include": "#escaped_char"
1811
1729
  }
1812
- ]
1813
- }
1814
- ]
1815
- },
1816
- {
1817
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))",
1818
- "comment": "Heredoc with embedded javascript",
1819
- "end": "(?!\\G)",
1820
- "name": "meta.embedded.block.js",
1821
- "patterns": [
1822
- {
1823
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)",
1730
+ ],
1824
1731
  "beginCaptures": {
1825
1732
  "0": {
1826
1733
  "name": "punctuation.definition.string.begin.ruby"
1827
1734
  }
1828
1735
  },
1829
- "contentName": "source.js",
1830
- "end": "^\\s*\\2$\\n?",
1831
1736
  "endCaptures": {
1832
1737
  "0": {
1833
1738
  "name": "punctuation.definition.string.end.ruby"
1834
1739
  }
1835
- },
1740
+ }
1741
+ }
1742
+ ]
1743
+ },
1744
+ {
1745
+ "name": "meta.embedded.block.js",
1746
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))",
1747
+ "end": "(?!\\G)",
1748
+ "patterns": [
1749
+ {
1836
1750
  "name": "string.unquoted.heredoc.ruby",
1751
+ "contentName": "source.js",
1752
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)",
1753
+ "end": "^\\s*\\2$\\n?",
1837
1754
  "patterns": [
1838
1755
  {
1839
1756
  "include": "#heredoc"
@@ -1847,31 +1764,30 @@
1847
1764
  {
1848
1765
  "include": "#escaped_char"
1849
1766
  }
1850
- ]
1851
- }
1852
- ]
1853
- },
1854
- {
1855
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1))",
1856
- "comment": "Heredoc with embedded jQuery javascript",
1857
- "end": "(?!\\G)",
1858
- "name": "meta.embedded.block.js.jquery",
1859
- "patterns": [
1860
- {
1861
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1)",
1767
+ ],
1862
1768
  "beginCaptures": {
1863
1769
  "0": {
1864
1770
  "name": "punctuation.definition.string.begin.ruby"
1865
1771
  }
1866
1772
  },
1867
- "contentName": "source.js.jquery",
1868
- "end": "^\\s*\\2$\\n?",
1869
1773
  "endCaptures": {
1870
1774
  "0": {
1871
1775
  "name": "punctuation.definition.string.end.ruby"
1872
1776
  }
1873
- },
1777
+ }
1778
+ }
1779
+ ]
1780
+ },
1781
+ {
1782
+ "name": "meta.embedded.block.js.jquery",
1783
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1))",
1784
+ "end": "(?!\\G)",
1785
+ "patterns": [
1786
+ {
1874
1787
  "name": "string.unquoted.heredoc.ruby",
1788
+ "contentName": "source.js.jquery",
1789
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1)",
1790
+ "end": "^\\s*\\2$\\n?",
1875
1791
  "patterns": [
1876
1792
  {
1877
1793
  "include": "#heredoc"
@@ -1879,37 +1795,34 @@
1879
1795
  {
1880
1796
  "include": "#interpolated_ruby"
1881
1797
  },
1882
- {
1883
- "include": "source.js.jquery"
1884
- },
1798
+ {},
1885
1799
  {
1886
1800
  "include": "#escaped_char"
1887
1801
  }
1888
- ]
1889
- }
1890
- ]
1891
- },
1892
- {
1893
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))",
1894
- "comment": "Heredoc with embedded shell",
1895
- "end": "(?!\\G)",
1896
- "name": "meta.embedded.block.shell",
1897
- "patterns": [
1898
- {
1899
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)",
1802
+ ],
1900
1803
  "beginCaptures": {
1901
1804
  "0": {
1902
1805
  "name": "punctuation.definition.string.begin.ruby"
1903
1806
  }
1904
1807
  },
1905
- "contentName": "source.shell",
1906
- "end": "^\\s*\\2$\\n?",
1907
1808
  "endCaptures": {
1908
1809
  "0": {
1909
1810
  "name": "punctuation.definition.string.end.ruby"
1910
1811
  }
1911
- },
1812
+ }
1813
+ }
1814
+ ]
1815
+ },
1816
+ {
1817
+ "name": "meta.embedded.block.shell",
1818
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))",
1819
+ "end": "(?!\\G)",
1820
+ "patterns": [
1821
+ {
1912
1822
  "name": "string.unquoted.heredoc.ruby",
1823
+ "contentName": "source.shell",
1824
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)",
1825
+ "end": "^\\s*\\2$\\n?",
1913
1826
  "patterns": [
1914
1827
  {
1915
1828
  "include": "#heredoc"
@@ -1923,31 +1836,30 @@
1923
1836
  {
1924
1837
  "include": "#escaped_char"
1925
1838
  }
1926
- ]
1927
- }
1928
- ]
1929
- },
1930
- {
1931
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1))",
1932
- "comment": "Heredoc with embedded lua",
1933
- "end": "(?!\\G)",
1934
- "name": "meta.embedded.block.lua",
1935
- "patterns": [
1936
- {
1937
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1)",
1839
+ ],
1938
1840
  "beginCaptures": {
1939
1841
  "0": {
1940
1842
  "name": "punctuation.definition.string.begin.ruby"
1941
1843
  }
1942
1844
  },
1943
- "contentName": "source.lua",
1944
- "end": "^\\s*\\2$\\n?",
1945
1845
  "endCaptures": {
1946
1846
  "0": {
1947
1847
  "name": "punctuation.definition.string.end.ruby"
1948
1848
  }
1949
- },
1849
+ }
1850
+ }
1851
+ ]
1852
+ },
1853
+ {
1854
+ "name": "meta.embedded.block.lua",
1855
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1))",
1856
+ "end": "(?!\\G)",
1857
+ "patterns": [
1858
+ {
1950
1859
  "name": "string.unquoted.heredoc.ruby",
1860
+ "contentName": "source.lua",
1861
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1)",
1862
+ "end": "^\\s*\\2$\\n?",
1951
1863
  "patterns": [
1952
1864
  {
1953
1865
  "include": "#heredoc"
@@ -1961,31 +1873,30 @@
1961
1873
  {
1962
1874
  "include": "#escaped_char"
1963
1875
  }
1964
- ]
1965
- }
1966
- ]
1967
- },
1968
- {
1969
- "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1))",
1970
- "comment": "Heredoc with embedded ruby",
1971
- "end": "(?!\\G)",
1972
- "name": "meta.embedded.block.ruby",
1973
- "patterns": [
1974
- {
1975
- "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1)",
1876
+ ],
1976
1877
  "beginCaptures": {
1977
1878
  "0": {
1978
1879
  "name": "punctuation.definition.string.begin.ruby"
1979
1880
  }
1980
1881
  },
1981
- "contentName": "source.ruby",
1982
- "end": "^\\s*\\2$\\n?",
1983
1882
  "endCaptures": {
1984
1883
  "0": {
1985
1884
  "name": "punctuation.definition.string.end.ruby"
1986
1885
  }
1987
- },
1886
+ }
1887
+ }
1888
+ ]
1889
+ },
1890
+ {
1891
+ "name": "meta.embedded.block.ruby",
1892
+ "begin": "(?=(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1))",
1893
+ "end": "(?!\\G)",
1894
+ "patterns": [
1895
+ {
1988
1896
  "name": "string.unquoted.heredoc.ruby",
1897
+ "contentName": "source.ruby",
1898
+ "begin": "(?\u003e\u003c\u003c[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1)",
1899
+ "end": "^\\s*\\2$\\n?",
1989
1900
  "patterns": [
1990
1901
  {
1991
1902
  "include": "#heredoc"
@@ -1999,24 +1910,24 @@
1999
1910
  {
2000
1911
  "include": "#escaped_char"
2001
1912
  }
2002
- ]
1913
+ ],
1914
+ "beginCaptures": {
1915
+ "0": {
1916
+ "name": "punctuation.definition.string.begin.ruby"
1917
+ }
1918
+ },
1919
+ "endCaptures": {
1920
+ "0": {
1921
+ "name": "punctuation.definition.string.end.ruby"
1922
+ }
1923
+ }
2003
1924
  }
2004
1925
  ]
2005
1926
  },
2006
1927
  {
2007
- "begin": "(?>=\\s*<<(\\w+))",
2008
- "beginCaptures": {
2009
- "0": {
2010
- "name": "punctuation.definition.string.begin.ruby"
2011
- }
2012
- },
2013
- "end": "^\\1$",
2014
- "endCaptures": {
2015
- "0": {
2016
- "name": "punctuation.definition.string.end.ruby"
2017
- }
2018
- },
2019
1928
  "name": "string.unquoted.heredoc.ruby",
1929
+ "begin": "(?\u003e=\\s*\u003c\u003c(\\w+))",
1930
+ "end": "^\\1$",
2020
1931
  "patterns": [
2021
1932
  {
2022
1933
  "include": "#heredoc"
@@ -2027,23 +1938,22 @@
2027
1938
  {
2028
1939
  "include": "#escaped_char"
2029
1940
  }
2030
- ]
2031
- },
2032
- {
2033
- "begin": "(?>((<<[-~](\\w+),\\s?)*<<[-~](\\w+)))",
1941
+ ],
2034
1942
  "beginCaptures": {
2035
1943
  "0": {
2036
1944
  "name": "punctuation.definition.string.begin.ruby"
2037
1945
  }
2038
1946
  },
2039
- "comment": "heredoc with multiple inputs and indented terminator",
2040
- "end": "^\\s*\\4$",
2041
1947
  "endCaptures": {
2042
1948
  "0": {
2043
1949
  "name": "punctuation.definition.string.end.ruby"
2044
1950
  }
2045
- },
1951
+ }
1952
+ },
1953
+ {
2046
1954
  "name": "string.unquoted.heredoc.ruby",
1955
+ "begin": "(?\u003e((\u003c\u003c[-~](\\w+),\\s?)*\u003c\u003c[-~](\\w+)))",
1956
+ "end": "^\\s*\\4$",
2047
1957
  "patterns": [
2048
1958
  {
2049
1959
  "include": "#heredoc"
@@ -2054,57 +1964,66 @@
2054
1964
  {
2055
1965
  "include": "#escaped_char"
2056
1966
  }
2057
- ]
1967
+ ],
1968
+ "beginCaptures": {
1969
+ "0": {
1970
+ "name": "punctuation.definition.string.begin.ruby"
1971
+ }
1972
+ },
1973
+ "endCaptures": {
1974
+ "0": {
1975
+ "name": "punctuation.definition.string.end.ruby"
1976
+ }
1977
+ }
2058
1978
  },
2059
1979
  {
2060
- "begin": "(?<={|{\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\s|^do\\s)(\\|)",
2061
- "captures": {
2062
- "1": {
2063
- "name": "punctuation.separator.variable.ruby"
2064
- }
2065
- },
2066
- "end": "(?<!\\|)(\\|)(?!\\|)",
1980
+ "begin": "(?\u003c={|{\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\s|^do\\s)(\\|)",
1981
+ "end": "(?\u003c!\\|)(\\|)(?!\\|)",
2067
1982
  "patterns": [
2068
1983
  {
2069
1984
  "include": "source.ruby"
2070
1985
  },
2071
1986
  {
2072
- "match": "[_a-zA-Z][_a-zA-Z0-9]*",
2073
- "name": "variable.other.block.ruby"
1987
+ "name": "variable.other.block.ruby",
1988
+ "match": "[_a-zA-Z][_a-zA-Z0-9]*"
2074
1989
  },
2075
1990
  {
2076
- "match": ",",
1991
+ "name": "punctuation.separator.variable.ruby",
1992
+ "match": ","
1993
+ }
1994
+ ],
1995
+ "captures": {
1996
+ "1": {
2077
1997
  "name": "punctuation.separator.variable.ruby"
2078
1998
  }
2079
- ]
1999
+ }
2080
2000
  },
2081
2001
  {
2082
- "match": "=>",
2083
- "name": "punctuation.separator.key-value"
2002
+ "name": "punctuation.separator.key-value",
2003
+ "match": "=\u003e"
2084
2004
  },
2085
2005
  {
2086
- "match": "->",
2087
- "name": "support.function.kernel.ruby"
2006
+ "name": "support.function.kernel.ruby",
2007
+ "match": "-\u003e"
2088
2008
  },
2089
2009
  {
2090
- "match": "<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",
2091
- "name": "keyword.operator.assignment.augmented.ruby"
2010
+ "name": "keyword.operator.assignment.augmented.ruby",
2011
+ "match": "\u003c\u003c=|%=|\u0026{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|\u003c\u003c"
2092
2012
  },
2093
2013
  {
2094
- "match": "<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",
2095
- "name": "keyword.operator.comparison.ruby"
2014
+ "name": "keyword.operator.comparison.ruby",
2015
+ "match": "\u003c=\u003e|\u003c(?!\u003c|=)|\u003e(?!\u003c|=|\u003e)|\u003c=|\u003e=|===|==|=~|!=|!~|(?\u003c=[ \\t])\\?"
2096
2016
  },
2097
2017
  {
2098
- "match": "(?<!\\.)\\b(and|not|or)\\b(?![?!])",
2099
- "name": "keyword.operator.logical.ruby"
2018
+ "name": "keyword.operator.logical.ruby",
2019
+ "match": "(?\u003c!\\.)\\b(and|not|or)\\b(?![?!])"
2100
2020
  },
2101
2021
  {
2102
- "match": "(?<=^|[ \\t])!|&&|\\|\\||\\^",
2103
- "name": "keyword.operator.logical.ruby"
2022
+ "name": "keyword.operator.logical.ruby",
2023
+ "match": "(?\u003c=^|[ \\t])!|\u0026\u0026|\\|\\||\\^"
2104
2024
  },
2105
2025
  {
2106
- "comment": "Safe navigation operator",
2107
- "match": "(&\\.)\\s*(?![A-Z])",
2026
+ "match": "(\u0026\\.)\\s*(?![A-Z])",
2108
2027
  "captures": {
2109
2028
  "1": {
2110
2029
  "name": "punctuation.separator.method.ruby"
@@ -2112,27 +2031,26 @@
2112
2031
  }
2113
2032
  },
2114
2033
  {
2115
- "match": "(%|&|\\*\\*|\\*|\\+|-|/)",
2116
- "name": "keyword.operator.arithmetic.ruby"
2034
+ "name": "keyword.operator.arithmetic.ruby",
2035
+ "match": "(%|\u0026|\\*\\*|\\*|\\+|-|/)"
2117
2036
  },
2118
2037
  {
2119
- "match": "=",
2120
- "name": "keyword.operator.assignment.ruby"
2038
+ "name": "keyword.operator.assignment.ruby",
2039
+ "match": "="
2121
2040
  },
2122
2041
  {
2123
- "match": "\\||~|>>",
2124
- "name": "keyword.operator.other.ruby"
2042
+ "name": "keyword.operator.other.ruby",
2043
+ "match": "\\||~|\u003e\u003e"
2125
2044
  },
2126
2045
  {
2127
- "match": ";",
2128
- "name": "punctuation.separator.statement.ruby"
2046
+ "name": "punctuation.separator.statement.ruby",
2047
+ "match": ";"
2129
2048
  },
2130
2049
  {
2131
- "match": ",",
2132
- "name": "punctuation.separator.object.ruby"
2050
+ "name": "punctuation.separator.object.ruby",
2051
+ "match": ","
2133
2052
  },
2134
2053
  {
2135
- "comment": "Mark as namespace separator if double colons followed by capital letter",
2136
2054
  "match": "(::)\\s*(?=[A-Z])",
2137
2055
  "captures": {
2138
2056
  "1": {
@@ -2141,7 +2059,6 @@
2141
2059
  }
2142
2060
  },
2143
2061
  {
2144
- "comment": "Mark as method separator if double colons not followed by capital letter",
2145
2062
  "match": "(\\.|::)\\s*(?![A-Z])",
2146
2063
  "captures": {
2147
2064
  "1": {
@@ -2150,38 +2067,37 @@
2150
2067
  }
2151
2068
  },
2152
2069
  {
2153
- "comment": "Must come after method and constant separators to prefer double colons",
2154
- "match": ":",
2155
- "name": "punctuation.separator.other.ruby"
2070
+ "name": "punctuation.separator.other.ruby",
2071
+ "match": ":"
2156
2072
  },
2157
2073
  {
2158
- "match": "{",
2159
- "name": "punctuation.section.scope.begin.ruby"
2074
+ "name": "punctuation.section.scope.begin.ruby",
2075
+ "match": "{"
2160
2076
  },
2161
2077
  {
2162
- "match": "}",
2163
- "name": "punctuation.section.scope.end.ruby"
2078
+ "name": "punctuation.section.scope.end.ruby",
2079
+ "match": "}"
2164
2080
  },
2165
2081
  {
2166
- "match": "\\[",
2167
- "name": "punctuation.section.array.begin.ruby"
2082
+ "name": "punctuation.section.array.begin.ruby",
2083
+ "match": "\\["
2168
2084
  },
2169
2085
  {
2170
- "match": "]",
2171
- "name": "punctuation.section.array.end.ruby"
2086
+ "name": "punctuation.section.array.end.ruby",
2087
+ "match": "]"
2172
2088
  },
2173
2089
  {
2174
- "match": "\\(|\\)",
2175
- "name": "punctuation.section.function.ruby"
2090
+ "name": "punctuation.section.function.ruby",
2091
+ "match": "\\(|\\)"
2176
2092
  }
2177
2093
  ],
2178
2094
  "repository": {
2179
2095
  "escaped_char": {
2180
- "match": "\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",
2181
- "name": "constant.character.escape.ruby"
2096
+ "name": "constant.character.escape.ruby",
2097
+ "match": "\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)"
2182
2098
  },
2183
2099
  "heredoc": {
2184
- "begin": "^<<[-~]?\\w+",
2100
+ "begin": "^\u003c\u003c[-~]?\\w+",
2185
2101
  "end": "$",
2186
2102
  "patterns": [
2187
2103
  {
@@ -2192,79 +2108,74 @@
2192
2108
  "interpolated_ruby": {
2193
2109
  "patterns": [
2194
2110
  {
2111
+ "name": "meta.embedded.line.ruby",
2112
+ "contentName": "source.ruby",
2195
2113
  "begin": "#{",
2114
+ "end": "}",
2115
+ "patterns": [
2116
+ {
2117
+ "include": "#nest_curly_and_self"
2118
+ },
2119
+ {
2120
+ "include": "$self"
2121
+ }
2122
+ ],
2196
2123
  "beginCaptures": {
2197
2124
  "0": {
2198
2125
  "name": "punctuation.section.embedded.begin.ruby"
2199
2126
  }
2200
2127
  },
2201
- "contentName": "source.ruby",
2202
- "end": "}",
2203
2128
  "endCaptures": {
2204
2129
  "0": {
2205
2130
  "name": "punctuation.section.embedded.end.ruby"
2206
2131
  }
2207
- },
2208
- "name": "meta.embedded.line.ruby",
2209
- "patterns": [
2210
- {
2211
- "include": "#nest_curly_and_self"
2212
- },
2213
- {
2214
- "include": "$self"
2215
- }
2216
- ]
2132
+ }
2217
2133
  },
2218
2134
  {
2135
+ "name": "variable.other.readwrite.instance.ruby",
2136
+ "match": "(#@)[a-zA-Z_]\\w*",
2219
2137
  "captures": {
2220
2138
  "1": {
2221
2139
  "name": "punctuation.definition.variable.ruby"
2222
2140
  }
2223
- },
2224
- "match": "(#@)[a-zA-Z_]\\w*",
2225
- "name": "variable.other.readwrite.instance.ruby"
2141
+ }
2226
2142
  },
2227
2143
  {
2144
+ "name": "variable.other.readwrite.class.ruby",
2145
+ "match": "(#@@)[a-zA-Z_]\\w*",
2228
2146
  "captures": {
2229
2147
  "1": {
2230
2148
  "name": "punctuation.definition.variable.ruby"
2231
2149
  }
2232
- },
2233
- "match": "(#@@)[a-zA-Z_]\\w*",
2234
- "name": "variable.other.readwrite.class.ruby"
2150
+ }
2235
2151
  },
2236
2152
  {
2153
+ "name": "variable.other.readwrite.global.ruby",
2154
+ "match": "(#\\$)[a-zA-Z_]\\w*",
2237
2155
  "captures": {
2238
2156
  "1": {
2239
2157
  "name": "punctuation.definition.variable.ruby"
2240
2158
  }
2241
- },
2242
- "match": "(#\\$)[a-zA-Z_]\\w*",
2243
- "name": "variable.other.readwrite.global.ruby"
2159
+ }
2244
2160
  }
2245
2161
  ]
2246
2162
  },
2247
2163
  "nest_brackets": {
2248
2164
  "begin": "\\[",
2249
- "captures": {
2250
- "0": {
2251
- "name": "punctuation.section.scope.ruby"
2252
- }
2253
- },
2254
2165
  "end": "]",
2255
2166
  "patterns": [
2256
2167
  {
2257
2168
  "include": "#nest_brackets"
2258
2169
  }
2259
- ]
2260
- },
2261
- "nest_brackets_i": {
2262
- "begin": "\\[",
2170
+ ],
2263
2171
  "captures": {
2264
2172
  "0": {
2265
2173
  "name": "punctuation.section.scope.ruby"
2266
2174
  }
2267
- },
2175
+ }
2176
+ },
2177
+ "nest_brackets_i": {
2178
+ "begin": "\\[",
2268
2179
  "end": "]",
2269
2180
  "patterns": [
2270
2181
  {
@@ -2276,15 +2187,15 @@
2276
2187
  {
2277
2188
  "include": "#nest_brackets_i"
2278
2189
  }
2279
- ]
2280
- },
2281
- "nest_brackets_r": {
2282
- "begin": "\\[",
2190
+ ],
2283
2191
  "captures": {
2284
2192
  "0": {
2285
2193
  "name": "punctuation.section.scope.ruby"
2286
2194
  }
2287
- },
2195
+ }
2196
+ },
2197
+ "nest_brackets_r": {
2198
+ "begin": "\\[",
2288
2199
  "end": "]",
2289
2200
  "patterns": [
2290
2201
  {
@@ -2293,37 +2204,42 @@
2293
2204
  {
2294
2205
  "include": "#nest_brackets_r"
2295
2206
  }
2296
- ]
2297
- },
2298
- "nest_curly": {
2299
- "begin": "{",
2207
+ ],
2300
2208
  "captures": {
2301
2209
  "0": {
2302
2210
  "name": "punctuation.section.scope.ruby"
2303
2211
  }
2304
- },
2212
+ }
2213
+ },
2214
+ "nest_curly": {
2215
+ "begin": "{",
2305
2216
  "end": "}",
2306
2217
  "patterns": [
2307
2218
  {
2308
2219
  "include": "#nest_curly"
2309
2220
  }
2310
- ]
2221
+ ],
2222
+ "captures": {
2223
+ "0": {
2224
+ "name": "punctuation.section.scope.ruby"
2225
+ }
2226
+ }
2311
2227
  },
2312
2228
  "nest_curly_and_self": {
2313
2229
  "patterns": [
2314
2230
  {
2315
2231
  "begin": "{",
2316
- "captures": {
2317
- "0": {
2318
- "name": "punctuation.section.scope.ruby"
2319
- }
2320
- },
2321
2232
  "end": "}",
2322
2233
  "patterns": [
2323
2234
  {
2324
2235
  "include": "#nest_curly_and_self"
2325
2236
  }
2326
- ]
2237
+ ],
2238
+ "captures": {
2239
+ "0": {
2240
+ "name": "punctuation.section.scope.ruby"
2241
+ }
2242
+ }
2327
2243
  },
2328
2244
  {
2329
2245
  "include": "$self"
@@ -2332,11 +2248,6 @@
2332
2248
  },
2333
2249
  "nest_curly_i": {
2334
2250
  "begin": "{",
2335
- "captures": {
2336
- "0": {
2337
- "name": "punctuation.section.scope.ruby"
2338
- }
2339
- },
2340
2251
  "end": "}",
2341
2252
  "patterns": [
2342
2253
  {
@@ -2348,15 +2259,15 @@
2348
2259
  {
2349
2260
  "include": "#nest_curly_i"
2350
2261
  }
2351
- ]
2352
- },
2353
- "nest_curly_r": {
2354
- "begin": "{",
2262
+ ],
2355
2263
  "captures": {
2356
2264
  "0": {
2357
2265
  "name": "punctuation.section.scope.ruby"
2358
2266
  }
2359
- },
2267
+ }
2268
+ },
2269
+ "nest_curly_r": {
2270
+ "begin": "{",
2360
2271
  "end": "}",
2361
2272
  "patterns": [
2362
2273
  {
@@ -2365,30 +2276,30 @@
2365
2276
  {
2366
2277
  "include": "#nest_curly_r"
2367
2278
  }
2368
- ]
2369
- },
2370
- "nest_ltgt": {
2371
- "begin": "<",
2279
+ ],
2372
2280
  "captures": {
2373
2281
  "0": {
2374
2282
  "name": "punctuation.section.scope.ruby"
2375
2283
  }
2376
- },
2377
- "end": ">",
2284
+ }
2285
+ },
2286
+ "nest_ltgt": {
2287
+ "begin": "\u003c",
2288
+ "end": "\u003e",
2378
2289
  "patterns": [
2379
2290
  {
2380
2291
  "include": "#nest_ltgt"
2381
2292
  }
2382
- ]
2383
- },
2384
- "nest_ltgt_i": {
2385
- "begin": "<",
2293
+ ],
2386
2294
  "captures": {
2387
2295
  "0": {
2388
2296
  "name": "punctuation.section.scope.ruby"
2389
2297
  }
2390
- },
2391
- "end": ">",
2298
+ }
2299
+ },
2300
+ "nest_ltgt_i": {
2301
+ "begin": "\u003c",
2302
+ "end": "\u003e",
2392
2303
  "patterns": [
2393
2304
  {
2394
2305
  "include": "#interpolated_ruby"
@@ -2399,16 +2310,16 @@
2399
2310
  {
2400
2311
  "include": "#nest_ltgt_i"
2401
2312
  }
2402
- ]
2403
- },
2404
- "nest_ltgt_r": {
2405
- "begin": "<",
2313
+ ],
2406
2314
  "captures": {
2407
2315
  "0": {
2408
2316
  "name": "punctuation.section.scope.ruby"
2409
2317
  }
2410
- },
2411
- "end": ">",
2318
+ }
2319
+ },
2320
+ "nest_ltgt_r": {
2321
+ "begin": "\u003c",
2322
+ "end": "\u003e",
2412
2323
  "patterns": [
2413
2324
  {
2414
2325
  "include": "#regex_sub"
@@ -2416,29 +2327,29 @@
2416
2327
  {
2417
2328
  "include": "#nest_ltgt_r"
2418
2329
  }
2419
- ]
2420
- },
2421
- "nest_parens": {
2422
- "begin": "\\(",
2330
+ ],
2423
2331
  "captures": {
2424
2332
  "0": {
2425
2333
  "name": "punctuation.section.scope.ruby"
2426
2334
  }
2427
- },
2335
+ }
2336
+ },
2337
+ "nest_parens": {
2338
+ "begin": "\\(",
2428
2339
  "end": "\\)",
2429
2340
  "patterns": [
2430
2341
  {
2431
2342
  "include": "#nest_parens"
2432
2343
  }
2433
- ]
2434
- },
2435
- "nest_parens_i": {
2436
- "begin": "\\(",
2344
+ ],
2437
2345
  "captures": {
2438
2346
  "0": {
2439
2347
  "name": "punctuation.section.scope.ruby"
2440
2348
  }
2441
- },
2349
+ }
2350
+ },
2351
+ "nest_parens_i": {
2352
+ "begin": "\\(",
2442
2353
  "end": "\\)",
2443
2354
  "patterns": [
2444
2355
  {
@@ -2450,15 +2361,15 @@
2450
2361
  {
2451
2362
  "include": "#nest_parens_i"
2452
2363
  }
2453
- ]
2454
- },
2455
- "nest_parens_r": {
2456
- "begin": "\\(",
2364
+ ],
2457
2365
  "captures": {
2458
2366
  "0": {
2459
2367
  "name": "punctuation.section.scope.ruby"
2460
2368
  }
2461
- },
2369
+ }
2370
+ },
2371
+ "nest_parens_r": {
2372
+ "begin": "\\(",
2462
2373
  "end": "\\)",
2463
2374
  "patterns": [
2464
2375
  {
@@ -2467,7 +2378,12 @@
2467
2378
  {
2468
2379
  "include": "#nest_parens_r"
2469
2380
  }
2470
- ]
2381
+ ],
2382
+ "captures": {
2383
+ "0": {
2384
+ "name": "punctuation.section.scope.ruby"
2385
+ }
2386
+ }
2471
2387
  },
2472
2388
  "regex_sub": {
2473
2389
  "patterns": [
@@ -2478,6 +2394,8 @@
2478
2394
  "include": "#escaped_char"
2479
2395
  },
2480
2396
  {
2397
+ "name": "string.regexp.arbitrary-repetition.ruby",
2398
+ "match": "({)\\d+(,\\d+)?(})",
2481
2399
  "captures": {
2482
2400
  "1": {
2483
2401
  "name": "punctuation.definition.arbitrary-repetition.ruby"
@@ -2485,75 +2403,72 @@
2485
2403
  "3": {
2486
2404
  "name": "punctuation.definition.arbitrary-repetition.ruby"
2487
2405
  }
2488
- },
2489
- "match": "({)\\d+(,\\d+)?(})",
2490
- "name": "string.regexp.arbitrary-repetition.ruby"
2406
+ }
2491
2407
  },
2492
2408
  {
2409
+ "name": "string.regexp.character-class.ruby",
2493
2410
  "begin": "\\[(?:\\^?])?",
2494
- "captures": {
2495
- "0": {
2496
- "name": "punctuation.definition.character-class.ruby"
2497
- }
2498
- },
2499
2411
  "end": "]",
2500
- "name": "string.regexp.character-class.ruby",
2501
2412
  "patterns": [
2502
2413
  {
2503
2414
  "include": "#escaped_char"
2504
2415
  }
2505
- ]
2416
+ ],
2417
+ "captures": {
2418
+ "0": {
2419
+ "name": "punctuation.definition.character-class.ruby"
2420
+ }
2421
+ }
2506
2422
  },
2507
2423
  {
2424
+ "name": "comment.line.number-sign.ruby",
2508
2425
  "begin": "\\(\\?#",
2426
+ "end": "\\)",
2427
+ "patterns": [
2428
+ {
2429
+ "include": "#escaped_char"
2430
+ }
2431
+ ],
2509
2432
  "beginCaptures": {
2510
2433
  "0": {
2511
2434
  "name": "punctuation.definition.comment.begin.ruby"
2512
2435
  }
2513
2436
  },
2514
- "end": "\\)",
2515
2437
  "endCaptures": {
2516
2438
  "0": {
2517
2439
  "name": "punctuation.definition.comment.end.ruby"
2518
2440
  }
2519
- },
2520
- "name": "comment.line.number-sign.ruby",
2521
- "patterns": [
2522
- {
2523
- "include": "#escaped_char"
2524
- }
2525
- ]
2441
+ }
2526
2442
  },
2527
2443
  {
2444
+ "name": "string.regexp.group.ruby",
2528
2445
  "begin": "\\(",
2529
- "captures": {
2530
- "0": {
2531
- "name": "punctuation.definition.group.ruby"
2532
- }
2533
- },
2534
2446
  "end": "\\)",
2535
- "name": "string.regexp.group.ruby",
2536
2447
  "patterns": [
2537
2448
  {
2538
2449
  "include": "#regex_sub"
2539
2450
  }
2540
- ]
2451
+ ],
2452
+ "captures": {
2453
+ "0": {
2454
+ "name": "punctuation.definition.group.ruby"
2455
+ }
2456
+ }
2541
2457
  },
2542
2458
  {
2543
- "begin": "(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",
2459
+ "name": "comment.line.number-sign.ruby",
2460
+ "begin": "(?\u003c=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",
2461
+ "end": "$\\n?",
2544
2462
  "beginCaptures": {
2545
2463
  "1": {
2546
2464
  "name": "punctuation.definition.comment.ruby"
2547
2465
  }
2548
2466
  },
2549
- "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",
2550
- "end": "$\\n?",
2551
2467
  "endCaptures": {
2552
2468
  "0": {
2553
2469
  "name": "punctuation.definition.comment.ruby"
2554
2470
  }
2555
- },
2556
- "name": "comment.line.number-sign.ruby"
2471
+ }
2557
2472
  }
2558
2473
  ]
2559
2474
  },
@@ -2578,7 +2493,6 @@
2578
2493
  ]
2579
2494
  },
2580
2495
  "yard_comment": {
2581
- "comment": "For YARD tags that follow the tag-comment pattern",
2582
2496
  "match": "(@)(abstract|api|author|deprecated|example|note|overload|since|todo|version)(?=\\s)(.*)$",
2583
2497
  "captures": {
2584
2498
  "1": {
@@ -2592,8 +2506,33 @@
2592
2506
  }
2593
2507
  }
2594
2508
  },
2509
+ "yard_directive": {
2510
+ "match": "(@!)(attribute|endgroup|group|macro|method|parse|scope|visibility)(\\s+((\\[).+(])))?(?=\\s)(.*)$",
2511
+ "captures": {
2512
+ "1": {
2513
+ "name": "comment.line.keyword.punctuation.yard.ruby"
2514
+ },
2515
+ "2": {
2516
+ "name": "comment.line.keyword.yard.ruby"
2517
+ },
2518
+ "3": {
2519
+ "name": "comment.line.yard.ruby"
2520
+ },
2521
+ "4": {
2522
+ "name": "comment.line.type.yard.ruby"
2523
+ },
2524
+ "5": {
2525
+ "name": "comment.line.punctuation.yard.ruby"
2526
+ },
2527
+ "6": {
2528
+ "name": "comment.line.punctuation.yard.ruby"
2529
+ },
2530
+ "7": {
2531
+ "name": "comment.line.string.yard.ruby"
2532
+ }
2533
+ }
2534
+ },
2595
2535
  "yard_name_types": {
2596
- "comment": "For YARD tags that follow the tag-name-types-comment pattern",
2597
2536
  "match": "(@)(attr|attr_reader|attr_writer|option|param|see|yieldparam)(?=\\s)(\\s+([a-z_][a-zA-Z_]*))?(\\s+((\\[).+(])))?(.*)$",
2598
2537
  "captures": {
2599
2538
  "1": {
@@ -2626,7 +2565,6 @@
2626
2565
  }
2627
2566
  },
2628
2567
  "yard_tag": {
2629
- "comment": "For YARD tags that are just the tag",
2630
2568
  "match": "(@)(private)$",
2631
2569
  "captures": {
2632
2570
  "1": {
@@ -2638,7 +2576,6 @@
2638
2576
  }
2639
2577
  },
2640
2578
  "yard_types": {
2641
- "comment": "For YARD tags that follow the tag-types-comment pattern",
2642
2579
  "match": "(@)(raise|return|yield(?:return)?)(?=\\s)(\\s+((\\[).+(])))?(.*)$",
2643
2580
  "captures": {
2644
2581
  "1": {
@@ -2663,33 +2600,6 @@
2663
2600
  "name": "comment.line.string.yard.ruby"
2664
2601
  }
2665
2602
  }
2666
- },
2667
- "yard_directive": {
2668
- "comment": "For YARD directives",
2669
- "match": "(@!)(attribute|endgroup|group|macro|method|parse|scope|visibility)(\\s+((\\[).+(])))?(?=\\s)(.*)$",
2670
- "captures": {
2671
- "1": {
2672
- "name": "comment.line.keyword.punctuation.yard.ruby"
2673
- },
2674
- "2": {
2675
- "name": "comment.line.keyword.yard.ruby"
2676
- },
2677
- "3": {
2678
- "name": "comment.line.yard.ruby"
2679
- },
2680
- "4": {
2681
- "name": "comment.line.type.yard.ruby"
2682
- },
2683
- "5": {
2684
- "name": "comment.line.punctuation.yard.ruby"
2685
- },
2686
- "6": {
2687
- "name": "comment.line.punctuation.yard.ruby"
2688
- },
2689
- "7": {
2690
- "name": "comment.line.string.yard.ruby"
2691
- }
2692
- }
2693
2603
  }
2694
2604
  }
2695
- }
2605
+ }