@aquera/nile-elements 0.0.104 → 0.0.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +5 -0
  2. package/dist/apl-21d06901.cjs.js +2 -0
  3. package/dist/apl-21d06901.cjs.js.map +1 -0
  4. package/dist/apl-d16c7537.esm.js +1 -0
  5. package/dist/{asciidoc-e0d3b314.cjs.js → asciidoc-001fd7c1.cjs.js} +2 -2
  6. package/dist/{asciidoc-e0d3b314.cjs.js.map → asciidoc-001fd7c1.cjs.js.map} +1 -1
  7. package/dist/{asciidoc-6be99424.esm.js → asciidoc-0966d4dc.esm.js} +1 -1
  8. package/dist/{blade-3208a46d.esm.js → blade-11ab018c.esm.js} +1 -1
  9. package/dist/{blade-edfc0fdd.cjs.js → blade-8db809ca.cjs.js} +2 -2
  10. package/dist/blade-8db809ca.cjs.js.map +1 -0
  11. package/dist/c-8cfe7ebc.esm.js +1 -0
  12. package/dist/c-b1a3514f.cjs.js +2 -0
  13. package/dist/c-b1a3514f.cjs.js.map +1 -0
  14. package/dist/codeql-48a19368.cjs.js +2 -0
  15. package/dist/codeql-48a19368.cjs.js.map +1 -0
  16. package/dist/codeql-535d71a2.esm.js +1 -0
  17. package/dist/cpp-62f58e5c.cjs.js +2 -0
  18. package/dist/cpp-62f58e5c.cjs.js.map +1 -0
  19. package/dist/cpp-ee96ee92.esm.js +1 -0
  20. package/dist/crystal-4277175c.cjs.js +2 -0
  21. package/dist/crystal-4277175c.cjs.js.map +1 -0
  22. package/dist/crystal-c89e4ade.esm.js +1 -0
  23. package/dist/{csharp-fe9efa9d.cjs.js → csharp-36e7912d.cjs.js} +2 -2
  24. package/dist/csharp-36e7912d.cjs.js.map +1 -0
  25. package/dist/{csharp-2f739c17.esm.js → csharp-78bc1c6a.esm.js} +1 -1
  26. package/dist/dream-maker-19eb7025.esm.js +1 -0
  27. package/dist/dream-maker-8dcd65d8.cjs.js +2 -0
  28. package/dist/dream-maker-8dcd65d8.cjs.js.map +1 -0
  29. package/dist/elixir-971d0fb3.esm.js +1 -0
  30. package/dist/elixir-de3ce4da.cjs.js +2 -0
  31. package/dist/elixir-de3ce4da.cjs.js.map +1 -0
  32. package/dist/{elm-0c5dbed5.cjs.js → elm-53838edc.cjs.js} +2 -2
  33. package/dist/{elm-0c5dbed5.cjs.js.map → elm-53838edc.cjs.js.map} +1 -1
  34. package/dist/{elm-3dbc06e2.esm.js → elm-9874a65c.esm.js} +1 -1
  35. package/dist/emacs-lisp-acd28b05.esm.js +1 -0
  36. package/dist/emacs-lisp-cfcfbca4.cjs.js +2 -0
  37. package/dist/emacs-lisp-cfcfbca4.cjs.js.map +1 -0
  38. package/dist/{erb-c397c5b8.cjs.js → erb-a42121e2.cjs.js} +2 -2
  39. package/dist/{erb-c397c5b8.cjs.js.map → erb-a42121e2.cjs.js.map} +1 -1
  40. package/dist/{erb-3df2a1e4.esm.js → erb-f580df2b.esm.js} +1 -1
  41. package/dist/{fortran-fixed-form-5221c659.cjs.js → fortran-fixed-form-a480dd28.cjs.js} +2 -2
  42. package/dist/{fortran-fixed-form-5221c659.cjs.js.map → fortran-fixed-form-a480dd28.cjs.js.map} +1 -1
  43. package/dist/{fortran-fixed-form-de2fa930.esm.js → fortran-fixed-form-f1691b9f.esm.js} +1 -1
  44. package/dist/fortran-free-form-a777429e.esm.js +1 -0
  45. package/dist/fortran-free-form-ffdde287.cjs.js +2 -0
  46. package/dist/fortran-free-form-ffdde287.cjs.js.map +1 -0
  47. package/dist/{fsharp-f129bbeb.esm.js → fsharp-69c4fb5c.esm.js} +1 -1
  48. package/dist/{fsharp-09a5f785.cjs.js → fsharp-d59a3c1f.cjs.js} +2 -2
  49. package/dist/{fsharp-09a5f785.cjs.js.map → fsharp-d59a3c1f.cjs.js.map} +1 -1
  50. package/dist/{git-rebase-1f689746.cjs.js → git-rebase-7589e873.cjs.js} +2 -2
  51. package/dist/{git-rebase-1f689746.cjs.js.map → git-rebase-7589e873.cjs.js.map} +1 -1
  52. package/dist/{git-rebase-a3a21dac.esm.js → git-rebase-bb01fb7b.esm.js} +1 -1
  53. package/dist/{glsl-f391b342.esm.js → glsl-1493bfc0.esm.js} +1 -1
  54. package/dist/{glsl-018c76d4.cjs.js → glsl-c588b399.cjs.js} +2 -2
  55. package/dist/{glsl-018c76d4.cjs.js.map → glsl-c588b399.cjs.js.map} +1 -1
  56. package/dist/{go-09393d7b.cjs.js → go-a05e58ea.cjs.js} +2 -2
  57. package/dist/go-a05e58ea.cjs.js.map +1 -0
  58. package/dist/{go-327b8b08.esm.js → go-ecfc5b99.esm.js} +1 -1
  59. package/dist/haml-2253a1bd.cjs.js +2 -0
  60. package/dist/haml-2253a1bd.cjs.js.map +1 -0
  61. package/dist/haml-43d9b125.esm.js +1 -0
  62. package/dist/hcl-595d9f51.cjs.js +2 -0
  63. package/dist/hcl-595d9f51.cjs.js.map +1 -0
  64. package/dist/hcl-6a14c75f.esm.js +1 -0
  65. package/dist/hjson-c3c357d7.cjs.js +2 -0
  66. package/dist/hjson-c3c357d7.cjs.js.map +1 -0
  67. package/dist/hjson-d42502da.esm.js +1 -0
  68. package/dist/{http-c5198897.esm.js → http-05cedc24.esm.js} +1 -1
  69. package/dist/{http-4370aef9.cjs.js → http-6aabe313.cjs.js} +2 -2
  70. package/dist/{http-4370aef9.cjs.js.map → http-6aabe313.cjs.js.map} +1 -1
  71. package/dist/{julia-5e4ea542.cjs.js → julia-24e685eb.cjs.js} +2 -2
  72. package/dist/{julia-5e4ea542.cjs.js.map → julia-24e685eb.cjs.js.map} +1 -1
  73. package/dist/{julia-e630ba73.esm.js → julia-944cceb2.esm.js} +1 -1
  74. package/dist/{latex-1adfa940.cjs.js → latex-bbf47f0d.cjs.js} +2 -2
  75. package/dist/{latex-1adfa940.cjs.js.map → latex-bbf47f0d.cjs.js.map} +1 -1
  76. package/dist/{latex-edebd2cc.esm.js → latex-c78294e0.esm.js} +1 -1
  77. package/dist/liquid-5e828fc2.cjs.js +2 -0
  78. package/dist/liquid-5e828fc2.cjs.js.map +1 -0
  79. package/dist/liquid-c0372db6.esm.js +1 -0
  80. package/dist/{lua-125b4f95.esm.js → lua-1393b713.esm.js} +1 -1
  81. package/dist/{lua-1990ffc7.cjs.js → lua-2512266d.cjs.js} +2 -2
  82. package/dist/{lua-1990ffc7.cjs.js.map → lua-2512266d.cjs.js.map} +1 -1
  83. package/dist/{markdown-9f728eba.esm.js → markdown-09aa0843.esm.js} +1 -1
  84. package/dist/{markdown-844e62a0.cjs.js → markdown-3ee08af9.cjs.js} +2 -2
  85. package/dist/{markdown-844e62a0.cjs.js.map → markdown-3ee08af9.cjs.js.map} +1 -1
  86. package/dist/matlab-534739f2.cjs.js +2 -0
  87. package/dist/matlab-534739f2.cjs.js.map +1 -0
  88. package/dist/matlab-97eddcfd.esm.js +1 -0
  89. package/dist/{mdc-89c1812c.cjs.js → mdc-7262ea7f.cjs.js} +2 -2
  90. package/dist/{mdc-89c1812c.cjs.js.map → mdc-7262ea7f.cjs.js.map} +1 -1
  91. package/dist/{mdc-78460ad2.esm.js → mdc-a46ebf55.esm.js} +1 -1
  92. package/dist/{nginx-d4fde8c7.cjs.js → nginx-33da8d52.cjs.js} +2 -2
  93. package/dist/{nginx-d4fde8c7.cjs.js.map → nginx-33da8d52.cjs.js.map} +1 -1
  94. package/dist/{nginx-4e240995.esm.js → nginx-9eb574b4.esm.js} +1 -1
  95. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  96. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  97. package/dist/nile-chip/nile-chip.esm.js +1 -1
  98. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  99. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  100. package/dist/nile-dialog/nile-dialog.css.cjs.js +1 -1
  101. package/dist/nile-dialog/nile-dialog.css.cjs.js.map +1 -1
  102. package/dist/nile-dialog/nile-dialog.css.esm.js +18 -3
  103. package/dist/nile-dialog/nile-dialog.esm.js +6 -4
  104. package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
  105. package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
  106. package/dist/nile-loader/nile-loader.cjs.js +1 -1
  107. package/dist/nile-loader/nile-loader.cjs.js.map +1 -1
  108. package/dist/nile-loader/nile-loader.esm.js +5 -6
  109. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  110. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  111. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  112. package/dist/{nim-2d3e58bd.esm.js → nim-19ded5b2.esm.js} +1 -1
  113. package/dist/{nim-68123944.cjs.js → nim-d17fab7b.cjs.js} +2 -2
  114. package/dist/{nim-68123944.cjs.js.map → nim-d17fab7b.cjs.js.map} +1 -1
  115. package/dist/php-61f68171.esm.js +1 -0
  116. package/dist/php-cc873410.cjs.js +2 -0
  117. package/dist/php-cc873410.cjs.js.map +1 -0
  118. package/dist/{racket-7b394aba.cjs.js → racket-0c9d5c0f.cjs.js} +2 -2
  119. package/dist/{racket-7b394aba.cjs.js.map → racket-0c9d5c0f.cjs.js.map} +1 -1
  120. package/dist/{racket-81dda9e5.esm.js → racket-55a31f6b.esm.js} +1 -1
  121. package/dist/{razor-1b5232cc.cjs.js → razor-a2425731.cjs.js} +2 -2
  122. package/dist/{razor-1b5232cc.cjs.js.map → razor-a2425731.cjs.js.map} +1 -1
  123. package/dist/{razor-d377d825.esm.js → razor-b33c609c.esm.js} +1 -1
  124. package/dist/{rst-7ca0bc88.cjs.js → rst-328f0cf1.cjs.js} +2 -2
  125. package/dist/{rst-7ca0bc88.cjs.js.map → rst-328f0cf1.cjs.js.map} +1 -1
  126. package/dist/{rst-0c779bb4.esm.js → rst-c0bca969.esm.js} +1 -1
  127. package/dist/{ruby-a3bdb75e.esm.js → ruby-0ae8b3e3.esm.js} +1 -1
  128. package/dist/{ruby-951187c3.cjs.js → ruby-82f6fde2.cjs.js} +2 -2
  129. package/dist/{ruby-951187c3.cjs.js.map → ruby-82f6fde2.cjs.js.map} +1 -1
  130. package/dist/{scala-f087204d.esm.js → scala-09ae48a2.esm.js} +1 -1
  131. package/dist/{scala-b2ea8aa7.cjs.js → scala-44c4b612.cjs.js} +2 -2
  132. package/dist/{scala-b2ea8aa7.cjs.js.map → scala-44c4b612.cjs.js.map} +1 -1
  133. package/dist/{shellscript-ac23285d.esm.js → shellscript-279f3c20.esm.js} +1 -1
  134. package/dist/{shellscript-cd92245f.cjs.js → shellscript-fbbc671d.cjs.js} +2 -2
  135. package/dist/{shellscript-cd92245f.cjs.js.map → shellscript-fbbc671d.cjs.js.map} +1 -1
  136. package/dist/{shellsession-396c6681.esm.js → shellsession-c6d86b76.esm.js} +1 -1
  137. package/dist/{shellsession-223fd590.cjs.js → shellsession-d64b6377.cjs.js} +2 -2
  138. package/dist/{shellsession-223fd590.cjs.js.map → shellsession-d64b6377.cjs.js.map} +1 -1
  139. package/dist/src/nile-chip/nile-chip.js +10 -7
  140. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  141. package/dist/src/nile-dialog/nile-dialog.css.js +18 -3
  142. package/dist/src/nile-dialog/nile-dialog.css.js.map +1 -1
  143. package/dist/src/nile-dialog/nile-dialog.d.ts +1 -0
  144. package/dist/src/nile-dialog/nile-dialog.js +10 -2
  145. package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
  146. package/dist/src/nile-loader/nile-loader.js +0 -1
  147. package/dist/src/nile-loader/nile-loader.js.map +1 -1
  148. package/dist/src/nile-tab-group/nile-tab-group.js +4 -1
  149. package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
  150. package/dist/stata-149110fb.esm.js +1 -0
  151. package/dist/stata-b4a1937c.cjs.js +2 -0
  152. package/dist/stata-b4a1937c.cjs.js.map +1 -0
  153. package/dist/{svelte-70f34f63.esm.js → svelte-1048eb5a.esm.js} +1 -1
  154. package/dist/{svelte-fac37669.cjs.js → svelte-4fd29bd3.cjs.js} +2 -2
  155. package/dist/{svelte-fac37669.cjs.js.map → svelte-4fd29bd3.cjs.js.map} +1 -1
  156. package/dist/swift-502aad80.cjs.js +2 -0
  157. package/dist/{swift-73991d74.cjs.js.map → swift-502aad80.cjs.js.map} +1 -1
  158. package/dist/swift-c090b356.esm.js +1 -0
  159. package/dist/{templ-d3b439bb.esm.js → templ-628e79a2.esm.js} +1 -1
  160. package/dist/{templ-07af4f95.cjs.js → templ-d270ba1d.cjs.js} +2 -2
  161. package/dist/{templ-07af4f95.cjs.js.map → templ-d270ba1d.cjs.js.map} +1 -1
  162. package/dist/terraform-500d20b0.esm.js +1 -0
  163. package/dist/terraform-e5570e0d.cjs.js +2 -0
  164. package/dist/terraform-e5570e0d.cjs.js.map +1 -0
  165. package/dist/{ts-tags-dd626bee.esm.js → ts-tags-5da8755a.esm.js} +1 -1
  166. package/dist/{ts-tags-060f8b3f.cjs.js → ts-tags-df3e88d7.cjs.js} +2 -2
  167. package/dist/{ts-tags-060f8b3f.cjs.js.map → ts-tags-df3e88d7.cjs.js.map} +1 -1
  168. package/dist/tsconfig.tsbuildinfo +1 -1
  169. package/dist/twig-5bc34a9a.esm.js +1 -0
  170. package/dist/twig-af3abed5.cjs.js +2 -0
  171. package/dist/twig-af3abed5.cjs.js.map +1 -0
  172. package/dist/{vue-0bf65993.cjs.js → vue-09163277.cjs.js} +2 -2
  173. package/dist/{vue-0bf65993.cjs.js.map → vue-09163277.cjs.js.map} +1 -1
  174. package/dist/{vue-9a567043.esm.js → vue-dbfc25c6.esm.js} +1 -1
  175. package/dist/{vue-html-87c1aa08.cjs.js → vue-html-8d140150.cjs.js} +2 -2
  176. package/dist/{vue-html-87c1aa08.cjs.js.map → vue-html-8d140150.cjs.js.map} +1 -1
  177. package/dist/{vue-html-5432e63a.esm.js → vue-html-9284886a.esm.js} +1 -1
  178. package/dist/wasm-69304cd7.cjs.js +2 -0
  179. package/dist/{wasm-2b3accdb.cjs.js.map → wasm-69304cd7.cjs.js.map} +1 -1
  180. package/dist/{wasm-ec34668d.esm.js → wasm-aabb0cac.esm.js} +1 -1
  181. package/dist/{wikitext-bc11a136.cjs.js → wikitext-1ea78c25.cjs.js} +2 -2
  182. package/dist/{wikitext-bc11a136.cjs.js.map → wikitext-1ea78c25.cjs.js.map} +1 -1
  183. package/dist/{wikitext-0150fba4.esm.js → wikitext-3fe603e5.esm.js} +1 -1
  184. package/package.json +1 -1
  185. package/src/nile-chip/nile-chip.ts +13 -7
  186. package/src/nile-dialog/nile-dialog.css.ts +18 -3
  187. package/src/nile-dialog/nile-dialog.ts +8 -2
  188. package/src/nile-loader/nile-loader.ts +0 -1
  189. package/src/nile-tab-group/nile-tab-group.ts +2 -1
  190. package/dist/apl-41950f78.cjs.js +0 -2
  191. package/dist/apl-41950f78.cjs.js.map +0 -1
  192. package/dist/apl-c55a4361.esm.js +0 -1
  193. package/dist/blade-edfc0fdd.cjs.js.map +0 -1
  194. package/dist/c-3ee6456a.esm.js +0 -1
  195. package/dist/c-da3bb8a6.cjs.js +0 -2
  196. package/dist/c-da3bb8a6.cjs.js.map +0 -1
  197. package/dist/codeql-842eb6cf.esm.js +0 -1
  198. package/dist/codeql-d89527b8.cjs.js +0 -2
  199. package/dist/codeql-d89527b8.cjs.js.map +0 -1
  200. package/dist/cpp-08227984.esm.js +0 -1
  201. package/dist/cpp-cf2e9ff3.cjs.js +0 -2
  202. package/dist/cpp-cf2e9ff3.cjs.js.map +0 -1
  203. package/dist/crystal-38a7d086.cjs.js +0 -2
  204. package/dist/crystal-38a7d086.cjs.js.map +0 -1
  205. package/dist/crystal-39a9e1ea.esm.js +0 -1
  206. package/dist/csharp-fe9efa9d.cjs.js.map +0 -1
  207. package/dist/dream-maker-03e02970.cjs.js +0 -2
  208. package/dist/dream-maker-03e02970.cjs.js.map +0 -1
  209. package/dist/dream-maker-d074d317.esm.js +0 -1
  210. package/dist/elixir-677f91c1.cjs.js +0 -2
  211. package/dist/elixir-677f91c1.cjs.js.map +0 -1
  212. package/dist/elixir-e6f892c0.esm.js +0 -1
  213. package/dist/emacs-lisp-acc9d1bf.esm.js +0 -1
  214. package/dist/emacs-lisp-ba2192a6.cjs.js +0 -2
  215. package/dist/emacs-lisp-ba2192a6.cjs.js.map +0 -1
  216. package/dist/fortran-free-form-662642e8.cjs.js +0 -2
  217. package/dist/fortran-free-form-662642e8.cjs.js.map +0 -1
  218. package/dist/fortran-free-form-b8908a2e.esm.js +0 -1
  219. package/dist/go-09393d7b.cjs.js.map +0 -1
  220. package/dist/haml-44312b9e.cjs.js +0 -2
  221. package/dist/haml-44312b9e.cjs.js.map +0 -1
  222. package/dist/haml-ce8f521d.esm.js +0 -1
  223. package/dist/hcl-659b5ff4.esm.js +0 -1
  224. package/dist/hcl-93dee28c.cjs.js +0 -2
  225. package/dist/hcl-93dee28c.cjs.js.map +0 -1
  226. package/dist/hjson-e5dbb832.cjs.js +0 -2
  227. package/dist/hjson-e5dbb832.cjs.js.map +0 -1
  228. package/dist/hjson-ff155aeb.esm.js +0 -1
  229. package/dist/liquid-1369a009.cjs.js +0 -2
  230. package/dist/liquid-1369a009.cjs.js.map +0 -1
  231. package/dist/liquid-e48eb0ca.esm.js +0 -1
  232. package/dist/matlab-52886ffe.esm.js +0 -1
  233. package/dist/matlab-71a4c00e.cjs.js +0 -2
  234. package/dist/matlab-71a4c00e.cjs.js.map +0 -1
  235. package/dist/php-1beee6c8.esm.js +0 -1
  236. package/dist/php-580a8f27.cjs.js +0 -2
  237. package/dist/php-580a8f27.cjs.js.map +0 -1
  238. package/dist/stata-5d259eca.cjs.js +0 -2
  239. package/dist/stata-5d259eca.cjs.js.map +0 -1
  240. package/dist/stata-ce57a14a.esm.js +0 -1
  241. package/dist/swift-22135585.esm.js +0 -1
  242. package/dist/swift-73991d74.cjs.js +0 -2
  243. package/dist/terraform-5a5bfeae.esm.js +0 -1
  244. package/dist/terraform-73471876.cjs.js +0 -2
  245. package/dist/terraform-73471876.cjs.js.map +0 -1
  246. package/dist/twig-8f9f15f7.cjs.js +0 -2
  247. package/dist/twig-8f9f15f7.cjs.js.map +0 -1
  248. package/dist/twig-964ce7ee.esm.js +0 -1
  249. package/dist/wasm-2b3accdb.cjs.js +0 -2
@@ -1 +1 @@
1
- import e from"./html-1668d3d8.esm.js";import n from"./xml-986eed3a.esm.js";import t from"./sql-aa8ea56a.esm.js";import a from"./css-0e55c41d.esm.js";import r from"./c-3ee6456a.esm.js";import i from"./javascript-ba920388.esm.js";import s from"./shellscript-ac23285d.esm.js";import c from"./lua-125b4f95.esm.js";import"./java-29d87a80.esm.js";var u=[...e,...n,...t,...a,...r,...i,...s,...c,Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{1:{name:"keyword.control.class.ruby"},2:{name:"entity.name.type.class.ruby"},3:{name:"keyword.operator.other.ruby"},4:{name:"entity.other.inherited-class.ruby"},5:{name:"keyword.operator.other.ruby"},6:{name:"variable.other.object.ruby"}},match:"^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))",name:"meta.class.ruby"},{captures:{1:{name:"keyword.control.module.ruby"},2:{name:"entity.name.type.module.ruby"},3:{name:"entity.other.inherited-class.module.first.ruby"},4:{name:"punctuation.separator.inheritance.ruby"},5:{name:"entity.other.inherited-class.module.second.ruby"},6:{name:"punctuation.separator.inheritance.ruby"},7:{name:"entity.other.inherited-class.module.third.ruby"},8:{name:"punctuation.separator.inheritance.ruby"}},match:"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.module.ruby"},{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.",match:"(?<!\\.)\\belse(\\s)+if\\b",name:"invalid.deprecated.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.hashkey.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",name:"constant.other.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:"(?<!\\.)\\bdo\\b",name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:"(?<=\\{)(\\s+)",name:"meta.syntax.ruby.start-block"},{match:"(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])",name:"keyword.control.pseudo-method.ruby"},{match:"\\b(nil|true|false)\\b(?![?!])",name:"constant.language.ruby"},{match:"\\b(__(dir|FILE|LINE)__)\\b(?![?!])",name:"variable.language.ruby"},{begin:"^__END__\\n",captures:{0:{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:"(?=not)impossible",patterns:[{begin:"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",end:"(?=not)impossible",name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{match:"\\b(self)\\b(?![?!])",name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:"\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",name:"keyword.other.special-method.ruby"},{begin:"\\b(?<!\\.|::)(require|require_relative)\\b",captures:{1:{name:"keyword.other.special-method.ruby"}},end:"$|(?=#|\\})",name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])",name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.ruby"}},end:"\\]",name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",name:"support.class.ruby"},{match:"\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|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|(?<=[?!]))(?![?!])",name:"support.function.kernel.ruby"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.ruby"},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))\\s*(\\()",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"},3:{name:"punctuation.definition.parameters.ruby"}},comment:"the method pattern comes from the symbol pattern, see there for a explaination",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?=[&*_a-zA-Z])",end:"(?=[,)])",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"#parens"},{include:"#braces"},{include:"$self"}]}],repository:{braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]}}},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))[ \\t](?=[ \\t]*[^\\s#;])",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:"$",name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?![\\s,])",end:"(?=,|$)",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",name:"variable.parameter.function.ruby"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.ruby"},3:{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?=def\\b)(?<=^|\\s)(def)\\b(\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?)))?",name:"meta.function.method.without-arguments.ruby"},{match:"\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b",name:"constant.numeric.float.ruby"},{match:"\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b",name:"constant.numeric.integer.ruby"},{match:"\\b0[xX]\\h(?>_?\\h)*r?i?\\b",name:"constant.numeric.hex.ruby"},{match:"\\b0[bB][01](?>_?[01])*r?i?\\b",name:"constant.numeric.binary.ruby"},{match:"\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b",name:"constant.numeric.octal.ruby"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.ruby"}},end:"'",name:"constant.other.symbol.single-quoted.ruby",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.ruby"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.ruby"}},end:'"',name:"constant.other.symbol.double-quoted.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?<!\\()/=",name:"keyword.operator.assignment.augmented.ruby"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"single quoted string (does not allow interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:"\\\\'|\\\\\\\\",name:"constant.character.escape.ruby"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{include:"#percent_literals"},{begin:"(?:^|(?<=[=>~(?:\\[,|&;]|[\\s;]if\\s|[\\s;]elsif\\s|[\\s;]while\\s|[\\s;]unless\\s|[\\s;]when\\s|[\\s;]assert_match\\s|[\\s;]or\\s|[\\s;]and\\s|[\\s;]not\\s|[\\s.]index\\s|[\\s.]scan\\s|[\\s.]sub\\s|[\\s.]sub!\\s|[\\s.]gsub\\s|[\\s.]gsub!\\s|[\\s.]match\\s)|(?<=^when\\s|^if\\s|^elsif\\s|^while\\s|^unless\\s))\\s*((/))(?![*+{}?])",captures:{1:{name:"string.regexp.classic.ruby"},2:{name:"punctuation.definition.string.ruby"}},comment:"regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t",contentName:"string.regexp.classic.ruby",end:"((/[eimnosux]*))",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)",name:"constant.other.symbol.ruby"},{begin:"^=begin",captures:{0:{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:"^=end",name:"comment.block.documentation.ruby"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ruby"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ruby"}},end:"\\n",name:"comment.line.number-sign.ruby"}]},{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',match:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",name:"constant.numeric.ruby"},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1))',comment:"Heredoc with embedded html",end:"(?!\\G)",name:"meta.embedded.block.html",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1))',comment:"Heredoc with embedded xml",end:"(?!\\G)",name:"meta.embedded.block.xml",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1))',comment:"Heredoc with embedded sql",end:"(?!\\G)",name:"meta.embedded.block.sql",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1))',comment:"Heredoc with embedded css",end:"(?!\\G)",name:"meta.embedded.block.css",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1))',comment:"Heredoc with embedded c++",end:"(?!\\G)",name:"meta.embedded.block.c++",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c++",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c++"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1))',comment:"Heredoc with embedded c",end:"(?!\\G)",name:"meta.embedded.block.c",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))',comment:"Heredoc with embedded javascript",end:"(?!\\G)",name:"meta.embedded.block.js",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1))',comment:"Heredoc with embedded jQuery javascript",end:"(?!\\G)",name:"meta.embedded.block.js.jquery",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))',comment:"Heredoc with embedded shell",end:"(?!\\G)",name:"meta.embedded.block.shell",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1))',comment:"Heredoc with embedded lua",end:"(?!\\G)",name:"meta.embedded.block.lua",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1))',comment:"Heredoc with embedded ruby",end:"(?!\\G)",name:"meta.embedded.block.ruby",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:"(?>=\\s*<<(\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"^\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?><<[-~](\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"heredoc with indented terminator",end:"\\s*\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?<=\\{|do|\\{\\s|do\\s)(\\|)",captures:{1:{name:"punctuation.separator.arguments.ruby"}},end:"(?<!\\|)(\\|)(?!\\|)",patterns:[{include:"$self"},{match:"[_a-zA-Z][_a-zA-Z0-9]*",name:"variable.other.block.ruby"},{match:",",name:"punctuation.separator.variable.ruby"}]},{match:"=>",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.lambda.ruby"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.ruby"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.ruby"},{match:"(?<!\\.)\\b(and|not|or)\\b(?![?!])",name:"keyword.operator.logical.ruby"},{comment:"Make sure this goes after assignment and comparison",match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.ruby"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Safe navigation operator - Added in 2.3",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|-|/)",name:"keyword.operator.arithmetic.ruby"},{match:"=",name:"keyword.operator.assignment.ruby"},{match:"\\||~|>>",name:"keyword.operator.other.ruby"},{match:";",name:"punctuation.separator.statement.ruby"},{match:",",name:"punctuation.separator.object.ruby"},{captures:{1:{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:"(::)\\s*(?=[A-Z])"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:"(\\.|::)\\s*(?![A-Z])"},{comment:"Must come after method and constant separators to prefer double colons",match:":",name:"punctuation.separator.other.ruby"},{match:"\\{",name:"punctuation.section.scope.begin.ruby"},{match:"\\}",name:"punctuation.section.scope.end.ruby"},{match:"\\[",name:"punctuation.section.array.begin.ruby"},{match:"\\]",name:"punctuation.section.array.end.ruby"},{match:"\\(|\\)",name:"punctuation.section.function.ruby"}],repository:{escaped_char:{match:"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",name:"constant.character.escape.ruby"},heredoc:{begin:"^<<[-~]?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.ruby"},1:{name:"source.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]},percent_literals:{patterns:[{begin:"%i(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"constant.other.symbol.ruby"},{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"constant.other.symbol.ruby"},{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"constant.other.symbol.ruby"},{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"constant.other.symbol.ruby"},{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"constant.other.symbol.ruby"},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%I(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"constant.other.symbol.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%q(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%Q?(?:([(\\[{<])|([^\\w\\s=]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%r(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"([)\\]}>]\\2|\\1\\2)[eimnosux]*",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.regexp.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#regex_sub"}],repository:{angles:{patterns:[{include:"#regex_sub"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#regex_sub"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#regex_sub"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#regex_sub"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%s(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.constant.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.constant.end.ruby"}},name:"constant.other.symbol.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%w(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"string.other.ruby"},{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"string.other.ruby"},{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"string.other.ruby"},{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"string.other.ruby"},{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"string.other.ruby"},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%W(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"string.other.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%x(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.quantifier.begin.ruby"},3:{name:"punctuation.definition.quantifier.end.ruby"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"keyword.operator.quantifier.ruby"},{begin:"\\[\\^?",beginCaptures:{0:{name:"punctuation.definition.character-class.begin.ruby"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.end.ruby"}},name:"constant.other.character-class.set.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.ruby"}},end:"\\)",name:"meta.group.regexp.ruby",patterns:[{include:"#regex_sub"}]},{begin:"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ruby"}},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.",end:"$\\n?",name:"comment.line.number-sign.ruby"}]}},scopeName:"source.ruby",embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"],aliases:["rb"]})];export{u as default};
1
+ import e from"./html-1668d3d8.esm.js";import n from"./xml-986eed3a.esm.js";import t from"./sql-aa8ea56a.esm.js";import a from"./css-0e55c41d.esm.js";import r from"./c-8cfe7ebc.esm.js";import i from"./javascript-ba920388.esm.js";import s from"./shellscript-279f3c20.esm.js";import c from"./lua-1393b713.esm.js";import"./java-29d87a80.esm.js";var u=[...e,...n,...t,...a,...r,...i,...s,...c,Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{1:{name:"keyword.control.class.ruby"},2:{name:"entity.name.type.class.ruby"},3:{name:"keyword.operator.other.ruby"},4:{name:"entity.other.inherited-class.ruby"},5:{name:"keyword.operator.other.ruby"},6:{name:"variable.other.object.ruby"}},match:"^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))",name:"meta.class.ruby"},{captures:{1:{name:"keyword.control.module.ruby"},2:{name:"entity.name.type.module.ruby"},3:{name:"entity.other.inherited-class.module.first.ruby"},4:{name:"punctuation.separator.inheritance.ruby"},5:{name:"entity.other.inherited-class.module.second.ruby"},6:{name:"punctuation.separator.inheritance.ruby"},7:{name:"entity.other.inherited-class.module.third.ruby"},8:{name:"punctuation.separator.inheritance.ruby"}},match:"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.module.ruby"},{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.",match:"(?<!\\.)\\belse(\\s)+if\\b",name:"invalid.deprecated.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.hashkey.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",name:"constant.other.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:"(?<!\\.)\\bdo\\b",name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:"(?<=\\{)(\\s+)",name:"meta.syntax.ruby.start-block"},{match:"(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])",name:"keyword.control.pseudo-method.ruby"},{match:"\\b(nil|true|false)\\b(?![?!])",name:"constant.language.ruby"},{match:"\\b(__(dir|FILE|LINE)__)\\b(?![?!])",name:"variable.language.ruby"},{begin:"^__END__\\n",captures:{0:{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:"(?=not)impossible",patterns:[{begin:"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",end:"(?=not)impossible",name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{match:"\\b(self)\\b(?![?!])",name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:"\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",name:"keyword.other.special-method.ruby"},{begin:"\\b(?<!\\.|::)(require|require_relative)\\b",captures:{1:{name:"keyword.other.special-method.ruby"}},end:"$|(?=#|\\})",name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])",name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.ruby"}},end:"\\]",name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",name:"support.class.ruby"},{match:"\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|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|(?<=[?!]))(?![?!])",name:"support.function.kernel.ruby"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.ruby"},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))\\s*(\\()",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"},3:{name:"punctuation.definition.parameters.ruby"}},comment:"the method pattern comes from the symbol pattern, see there for a explaination",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?=[&*_a-zA-Z])",end:"(?=[,)])",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"#parens"},{include:"#braces"},{include:"$self"}]}],repository:{braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]}}},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))[ \\t](?=[ \\t]*[^\\s#;])",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:"$",name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?![\\s,])",end:"(?=,|$)",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",name:"variable.parameter.function.ruby"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.ruby"},3:{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?=def\\b)(?<=^|\\s)(def)\\b(\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?)))?",name:"meta.function.method.without-arguments.ruby"},{match:"\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b",name:"constant.numeric.float.ruby"},{match:"\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b",name:"constant.numeric.integer.ruby"},{match:"\\b0[xX]\\h(?>_?\\h)*r?i?\\b",name:"constant.numeric.hex.ruby"},{match:"\\b0[bB][01](?>_?[01])*r?i?\\b",name:"constant.numeric.binary.ruby"},{match:"\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b",name:"constant.numeric.octal.ruby"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.ruby"}},end:"'",name:"constant.other.symbol.single-quoted.ruby",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.ruby"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.ruby"}},end:'"',name:"constant.other.symbol.double-quoted.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?<!\\()/=",name:"keyword.operator.assignment.augmented.ruby"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"single quoted string (does not allow interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:"\\\\'|\\\\\\\\",name:"constant.character.escape.ruby"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{include:"#percent_literals"},{begin:"(?:^|(?<=[=>~(?:\\[,|&;]|[\\s;]if\\s|[\\s;]elsif\\s|[\\s;]while\\s|[\\s;]unless\\s|[\\s;]when\\s|[\\s;]assert_match\\s|[\\s;]or\\s|[\\s;]and\\s|[\\s;]not\\s|[\\s.]index\\s|[\\s.]scan\\s|[\\s.]sub\\s|[\\s.]sub!\\s|[\\s.]gsub\\s|[\\s.]gsub!\\s|[\\s.]match\\s)|(?<=^when\\s|^if\\s|^elsif\\s|^while\\s|^unless\\s))\\s*((/))(?![*+{}?])",captures:{1:{name:"string.regexp.classic.ruby"},2:{name:"punctuation.definition.string.ruby"}},comment:"regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t",contentName:"string.regexp.classic.ruby",end:"((/[eimnosux]*))",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)",name:"constant.other.symbol.ruby"},{begin:"^=begin",captures:{0:{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:"^=end",name:"comment.block.documentation.ruby"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ruby"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ruby"}},end:"\\n",name:"comment.line.number-sign.ruby"}]},{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',match:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",name:"constant.numeric.ruby"},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1))',comment:"Heredoc with embedded html",end:"(?!\\G)",name:"meta.embedded.block.html",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1))',comment:"Heredoc with embedded xml",end:"(?!\\G)",name:"meta.embedded.block.xml",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1))',comment:"Heredoc with embedded sql",end:"(?!\\G)",name:"meta.embedded.block.sql",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1))',comment:"Heredoc with embedded css",end:"(?!\\G)",name:"meta.embedded.block.css",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1))',comment:"Heredoc with embedded c++",end:"(?!\\G)",name:"meta.embedded.block.c++",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c++",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c++"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1))',comment:"Heredoc with embedded c",end:"(?!\\G)",name:"meta.embedded.block.c",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))',comment:"Heredoc with embedded javascript",end:"(?!\\G)",name:"meta.embedded.block.js",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1))',comment:"Heredoc with embedded jQuery javascript",end:"(?!\\G)",name:"meta.embedded.block.js.jquery",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))',comment:"Heredoc with embedded shell",end:"(?!\\G)",name:"meta.embedded.block.shell",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1))',comment:"Heredoc with embedded lua",end:"(?!\\G)",name:"meta.embedded.block.lua",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1))',comment:"Heredoc with embedded ruby",end:"(?!\\G)",name:"meta.embedded.block.ruby",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:"(?>=\\s*<<(\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"^\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?><<[-~](\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"heredoc with indented terminator",end:"\\s*\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?<=\\{|do|\\{\\s|do\\s)(\\|)",captures:{1:{name:"punctuation.separator.arguments.ruby"}},end:"(?<!\\|)(\\|)(?!\\|)",patterns:[{include:"$self"},{match:"[_a-zA-Z][_a-zA-Z0-9]*",name:"variable.other.block.ruby"},{match:",",name:"punctuation.separator.variable.ruby"}]},{match:"=>",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.lambda.ruby"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.ruby"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.ruby"},{match:"(?<!\\.)\\b(and|not|or)\\b(?![?!])",name:"keyword.operator.logical.ruby"},{comment:"Make sure this goes after assignment and comparison",match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.ruby"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Safe navigation operator - Added in 2.3",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|-|/)",name:"keyword.operator.arithmetic.ruby"},{match:"=",name:"keyword.operator.assignment.ruby"},{match:"\\||~|>>",name:"keyword.operator.other.ruby"},{match:";",name:"punctuation.separator.statement.ruby"},{match:",",name:"punctuation.separator.object.ruby"},{captures:{1:{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:"(::)\\s*(?=[A-Z])"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:"(\\.|::)\\s*(?![A-Z])"},{comment:"Must come after method and constant separators to prefer double colons",match:":",name:"punctuation.separator.other.ruby"},{match:"\\{",name:"punctuation.section.scope.begin.ruby"},{match:"\\}",name:"punctuation.section.scope.end.ruby"},{match:"\\[",name:"punctuation.section.array.begin.ruby"},{match:"\\]",name:"punctuation.section.array.end.ruby"},{match:"\\(|\\)",name:"punctuation.section.function.ruby"}],repository:{escaped_char:{match:"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",name:"constant.character.escape.ruby"},heredoc:{begin:"^<<[-~]?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.ruby"},1:{name:"source.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]},percent_literals:{patterns:[{begin:"%i(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"constant.other.symbol.ruby"},{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"constant.other.symbol.ruby"},{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"constant.other.symbol.ruby"},{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"constant.other.symbol.ruby"},{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"constant.other.symbol.ruby"},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%I(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"constant.other.symbol.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%q(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%Q?(?:([(\\[{<])|([^\\w\\s=]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%r(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"([)\\]}>]\\2|\\1\\2)[eimnosux]*",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.regexp.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#regex_sub"}],repository:{angles:{patterns:[{include:"#regex_sub"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#regex_sub"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#regex_sub"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#regex_sub"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%s(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.constant.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.constant.end.ruby"}},name:"constant.other.symbol.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%w(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"string.other.ruby"},{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"string.other.ruby"},{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"string.other.ruby"},{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"string.other.ruby"},{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"string.other.ruby"},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%W(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"string.other.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%x(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.quantifier.begin.ruby"},3:{name:"punctuation.definition.quantifier.end.ruby"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"keyword.operator.quantifier.ruby"},{begin:"\\[\\^?",beginCaptures:{0:{name:"punctuation.definition.character-class.begin.ruby"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.end.ruby"}},name:"constant.other.character-class.set.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.ruby"}},end:"\\)",name:"meta.group.regexp.ruby",patterns:[{include:"#regex_sub"}]},{begin:"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ruby"}},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.",end:"$\\n?",name:"comment.line.number-sign.ruby"}]}},scopeName:"source.ruby",embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"],aliases:["rb"]})];export{u as default};
@@ -1,2 +1,2 @@
1
- System.register(["./html-ea7b5a6d.cjs.js","./xml-1938a4d8.cjs.js","./sql-43113b01.cjs.js","./css-29043e92.cjs.js","./c-da3bb8a6.cjs.js","./javascript-86304e1b.cjs.js","./shellscript-cd92245f.cjs.js","./lua-1990ffc7.cjs.js","./java-5bfb7c2a.cjs.js"],function(_export,_context){"use strict";var e,n,t,a,r,i,s,c,u;function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2;}return{setters:[function(_html008CjsJs){e=_html008CjsJs["default"];},function(_xml00fCjsJs){n=_xml00fCjsJs["default"];},function(_sql00PCjsJs){t=_sql00PCjsJs["default"];},function(_css00aCjsJs){a=_css00aCjsJs["default"];},function(_c00nCjsJs){r=_c00nCjsJs["default"];},function(_javascript009CjsJs){i=_javascript009CjsJs["default"];},function(_shellscript00OCjsJs){s=_shellscript00OCjsJs["default"];},function(_lua00VCjsJs){c=_lua00VCjsJs["default"];},function(_java00hCjsJs){}],execute:function execute(){_export("default",u=[].concat(_toConsumableArray(e),_toConsumableArray(n),_toConsumableArray(t),_toConsumableArray(a),_toConsumableArray(r),_toConsumableArray(i),_toConsumableArray(s),_toConsumableArray(c),[Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{1:{name:"keyword.control.class.ruby"},2:{name:"entity.name.type.class.ruby"},3:{name:"keyword.operator.other.ruby"},4:{name:"entity.other.inherited-class.ruby"},5:{name:"keyword.operator.other.ruby"},6:{name:"variable.other.object.ruby"}},match:"^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))",name:"meta.class.ruby"},{captures:{1:{name:"keyword.control.module.ruby"},2:{name:"entity.name.type.module.ruby"},3:{name:"entity.other.inherited-class.module.first.ruby"},4:{name:"punctuation.separator.inheritance.ruby"},5:{name:"entity.other.inherited-class.module.second.ruby"},6:{name:"punctuation.separator.inheritance.ruby"},7:{name:"entity.other.inherited-class.module.third.ruby"},8:{name:"punctuation.separator.inheritance.ruby"}},match:"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.module.ruby"},{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.",match:"(?<!\\.)\\belse(\\s)+if\\b",name:"invalid.deprecated.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.hashkey.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",name:"constant.other.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:"(?<!\\.)\\bdo\\b",name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:"(?<=\\{)(\\s+)",name:"meta.syntax.ruby.start-block"},{match:"(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])",name:"keyword.control.pseudo-method.ruby"},{match:"\\b(nil|true|false)\\b(?![?!])",name:"constant.language.ruby"},{match:"\\b(__(dir|FILE|LINE)__)\\b(?![?!])",name:"variable.language.ruby"},{begin:"^__END__\\n",captures:{0:{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:"(?=not)impossible",patterns:[{begin:"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",end:"(?=not)impossible",name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{match:"\\b(self)\\b(?![?!])",name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:"\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",name:"keyword.other.special-method.ruby"},{begin:"\\b(?<!\\.|::)(require|require_relative)\\b",captures:{1:{name:"keyword.other.special-method.ruby"}},end:"$|(?=#|\\})",name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])",name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.ruby"}},end:"\\]",name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",name:"support.class.ruby"},{match:"\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|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|(?<=[?!]))(?![?!])",name:"support.function.kernel.ruby"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.ruby"},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))\\s*(\\()",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"},3:{name:"punctuation.definition.parameters.ruby"}},comment:"the method pattern comes from the symbol pattern, see there for a explaination",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?=[&*_a-zA-Z])",end:"(?=[,)])",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"#parens"},{include:"#braces"},{include:"$self"}]}],repository:{braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]}}},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))[ \\t](?=[ \\t]*[^\\s#;])",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:"$",name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?![\\s,])",end:"(?=,|$)",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",name:"variable.parameter.function.ruby"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.ruby"},3:{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?=def\\b)(?<=^|\\s)(def)\\b(\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?)))?",name:"meta.function.method.without-arguments.ruby"},{match:"\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b",name:"constant.numeric.float.ruby"},{match:"\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b",name:"constant.numeric.integer.ruby"},{match:"\\b0[xX]\\h(?>_?\\h)*r?i?\\b",name:"constant.numeric.hex.ruby"},{match:"\\b0[bB][01](?>_?[01])*r?i?\\b",name:"constant.numeric.binary.ruby"},{match:"\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b",name:"constant.numeric.octal.ruby"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.ruby"}},end:"'",name:"constant.other.symbol.single-quoted.ruby",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.ruby"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.ruby"}},end:'"',name:"constant.other.symbol.double-quoted.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?<!\\()/=",name:"keyword.operator.assignment.augmented.ruby"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"single quoted string (does not allow interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:"\\\\'|\\\\\\\\",name:"constant.character.escape.ruby"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{include:"#percent_literals"},{begin:"(?:^|(?<=[=>~(?:\\[,|&;]|[\\s;]if\\s|[\\s;]elsif\\s|[\\s;]while\\s|[\\s;]unless\\s|[\\s;]when\\s|[\\s;]assert_match\\s|[\\s;]or\\s|[\\s;]and\\s|[\\s;]not\\s|[\\s.]index\\s|[\\s.]scan\\s|[\\s.]sub\\s|[\\s.]sub!\\s|[\\s.]gsub\\s|[\\s.]gsub!\\s|[\\s.]match\\s)|(?<=^when\\s|^if\\s|^elsif\\s|^while\\s|^unless\\s))\\s*((/))(?![*+{}?])",captures:{1:{name:"string.regexp.classic.ruby"},2:{name:"punctuation.definition.string.ruby"}},comment:"regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t",contentName:"string.regexp.classic.ruby",end:"((/[eimnosux]*))",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)",name:"constant.other.symbol.ruby"},{begin:"^=begin",captures:{0:{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:"^=end",name:"comment.block.documentation.ruby"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ruby"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ruby"}},end:"\\n",name:"comment.line.number-sign.ruby"}]},{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',match:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",name:"constant.numeric.ruby"},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1))',comment:"Heredoc with embedded html",end:"(?!\\G)",name:"meta.embedded.block.html",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1))',comment:"Heredoc with embedded xml",end:"(?!\\G)",name:"meta.embedded.block.xml",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1))',comment:"Heredoc with embedded sql",end:"(?!\\G)",name:"meta.embedded.block.sql",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1))',comment:"Heredoc with embedded css",end:"(?!\\G)",name:"meta.embedded.block.css",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1))',comment:"Heredoc with embedded c++",end:"(?!\\G)",name:"meta.embedded.block.c++",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c++",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c++"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1))',comment:"Heredoc with embedded c",end:"(?!\\G)",name:"meta.embedded.block.c",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))',comment:"Heredoc with embedded javascript",end:"(?!\\G)",name:"meta.embedded.block.js",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1))',comment:"Heredoc with embedded jQuery javascript",end:"(?!\\G)",name:"meta.embedded.block.js.jquery",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))',comment:"Heredoc with embedded shell",end:"(?!\\G)",name:"meta.embedded.block.shell",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1))',comment:"Heredoc with embedded lua",end:"(?!\\G)",name:"meta.embedded.block.lua",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1))',comment:"Heredoc with embedded ruby",end:"(?!\\G)",name:"meta.embedded.block.ruby",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:"(?>=\\s*<<(\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"^\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?><<[-~](\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"heredoc with indented terminator",end:"\\s*\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?<=\\{|do|\\{\\s|do\\s)(\\|)",captures:{1:{name:"punctuation.separator.arguments.ruby"}},end:"(?<!\\|)(\\|)(?!\\|)",patterns:[{include:"$self"},{match:"[_a-zA-Z][_a-zA-Z0-9]*",name:"variable.other.block.ruby"},{match:",",name:"punctuation.separator.variable.ruby"}]},{match:"=>",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.lambda.ruby"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.ruby"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.ruby"},{match:"(?<!\\.)\\b(and|not|or)\\b(?![?!])",name:"keyword.operator.logical.ruby"},{comment:"Make sure this goes after assignment and comparison",match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.ruby"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Safe navigation operator - Added in 2.3",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|-|/)",name:"keyword.operator.arithmetic.ruby"},{match:"=",name:"keyword.operator.assignment.ruby"},{match:"\\||~|>>",name:"keyword.operator.other.ruby"},{match:";",name:"punctuation.separator.statement.ruby"},{match:",",name:"punctuation.separator.object.ruby"},{captures:{1:{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:"(::)\\s*(?=[A-Z])"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:"(\\.|::)\\s*(?![A-Z])"},{comment:"Must come after method and constant separators to prefer double colons",match:":",name:"punctuation.separator.other.ruby"},{match:"\\{",name:"punctuation.section.scope.begin.ruby"},{match:"\\}",name:"punctuation.section.scope.end.ruby"},{match:"\\[",name:"punctuation.section.array.begin.ruby"},{match:"\\]",name:"punctuation.section.array.end.ruby"},{match:"\\(|\\)",name:"punctuation.section.function.ruby"}],repository:{escaped_char:{match:"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",name:"constant.character.escape.ruby"},heredoc:{begin:"^<<[-~]?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.ruby"},1:{name:"source.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]},percent_literals:{patterns:[{begin:"%i(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"constant.other.symbol.ruby"},{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"constant.other.symbol.ruby"},{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"constant.other.symbol.ruby"},{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"constant.other.symbol.ruby"},{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"constant.other.symbol.ruby"},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%I(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"constant.other.symbol.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%q(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%Q?(?:([(\\[{<])|([^\\w\\s=]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%r(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"([)\\]}>]\\2|\\1\\2)[eimnosux]*",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.regexp.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#regex_sub"}],repository:{angles:{patterns:[{include:"#regex_sub"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#regex_sub"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#regex_sub"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#regex_sub"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%s(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.constant.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.constant.end.ruby"}},name:"constant.other.symbol.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%w(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"string.other.ruby"},{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"string.other.ruby"},{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"string.other.ruby"},{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"string.other.ruby"},{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"string.other.ruby"},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%W(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"string.other.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%x(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.quantifier.begin.ruby"},3:{name:"punctuation.definition.quantifier.end.ruby"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"keyword.operator.quantifier.ruby"},{begin:"\\[\\^?",beginCaptures:{0:{name:"punctuation.definition.character-class.begin.ruby"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.end.ruby"}},name:"constant.other.character-class.set.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.ruby"}},end:"\\)",name:"meta.group.regexp.ruby",patterns:[{include:"#regex_sub"}]},{begin:"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ruby"}},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.",end:"$\\n?",name:"comment.line.number-sign.ruby"}]}},scopeName:"source.ruby",embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"],aliases:["rb"]})]));}};});
2
- //# sourceMappingURL=ruby-951187c3.cjs.js.map
1
+ System.register(["./html-ea7b5a6d.cjs.js","./xml-1938a4d8.cjs.js","./sql-43113b01.cjs.js","./css-29043e92.cjs.js","./c-b1a3514f.cjs.js","./javascript-86304e1b.cjs.js","./shellscript-fbbc671d.cjs.js","./lua-2512266d.cjs.js","./java-5bfb7c2a.cjs.js"],function(_export,_context){"use strict";var e,n,t,a,r,i,s,c,u;function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2;}return{setters:[function(_html008CjsJs){e=_html008CjsJs["default"];},function(_xml00fCjsJs){n=_xml00fCjsJs["default"];},function(_sql00PCjsJs){t=_sql00PCjsJs["default"];},function(_css00aCjsJs){a=_css00aCjsJs["default"];},function(_c00nCjsJs){r=_c00nCjsJs["default"];},function(_javascript009CjsJs){i=_javascript009CjsJs["default"];},function(_shellscript00OCjsJs){s=_shellscript00OCjsJs["default"];},function(_lua00VCjsJs){c=_lua00VCjsJs["default"];},function(_java00hCjsJs){}],execute:function execute(){_export("default",u=[].concat(_toConsumableArray(e),_toConsumableArray(n),_toConsumableArray(t),_toConsumableArray(a),_toConsumableArray(r),_toConsumableArray(i),_toConsumableArray(s),_toConsumableArray(c),[Object.freeze({displayName:"Ruby",name:"ruby",patterns:[{captures:{1:{name:"keyword.control.class.ruby"},2:{name:"entity.name.type.class.ruby"},3:{name:"keyword.operator.other.ruby"},4:{name:"entity.other.inherited-class.ruby"},5:{name:"keyword.operator.other.ruby"},6:{name:"variable.other.object.ruby"}},match:"^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))",name:"meta.class.ruby"},{captures:{1:{name:"keyword.control.module.ruby"},2:{name:"entity.name.type.module.ruby"},3:{name:"entity.other.inherited-class.module.first.ruby"},4:{name:"punctuation.separator.inheritance.ruby"},5:{name:"entity.other.inherited-class.module.second.ruby"},6:{name:"punctuation.separator.inheritance.ruby"},7:{name:"entity.other.inherited-class.module.third.ruby"},8:{name:"punctuation.separator.inheritance.ruby"}},match:"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.module.ruby"},{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.",match:"(?<!\\.)\\belse(\\s)+if\\b",name:"invalid.deprecated.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.hashkey.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",name:"constant.other.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:"(?<!\\.)\\bdo\\b",name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:"(?<=\\{)(\\s+)",name:"meta.syntax.ruby.start-block"},{match:"(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])",name:"keyword.control.pseudo-method.ruby"},{match:"\\b(nil|true|false)\\b(?![?!])",name:"constant.language.ruby"},{match:"\\b(__(dir|FILE|LINE)__)\\b(?![?!])",name:"variable.language.ruby"},{begin:"^__END__\\n",captures:{0:{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:"(?=not)impossible",patterns:[{begin:"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",end:"(?=not)impossible",name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{match:"\\b(self)\\b(?![?!])",name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:"\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",name:"keyword.other.special-method.ruby"},{begin:"\\b(?<!\\.|::)(require|require_relative)\\b",captures:{1:{name:"keyword.other.special-method.ruby"}},end:"$|(?=#|\\})",name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])",name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.ruby"}},end:"\\]",name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",name:"support.class.ruby"},{match:"\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|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|(?<=[?!]))(?![?!])",name:"support.function.kernel.ruby"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.ruby"},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))\\s*(\\()",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"},3:{name:"punctuation.definition.parameters.ruby"}},comment:"the method pattern comes from the symbol pattern, see there for a explaination",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?=[&*_a-zA-Z])",end:"(?=[,)])",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"#parens"},{include:"#braces"},{include:"$self"}]}],repository:{braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]}}},{begin:"(?=def\\b)(?<=^|\\s)(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))[ \\t](?=[ \\t]*[^\\s#;])",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:"$",name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?![\\s,])",end:"(?=,|$)",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",name:"variable.parameter.function.ruby"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.ruby"},3:{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?=def\\b)(?<=^|\\s)(def)\\b(\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?)))?",name:"meta.function.method.without-arguments.ruby"},{match:"\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b",name:"constant.numeric.float.ruby"},{match:"\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b",name:"constant.numeric.integer.ruby"},{match:"\\b0[xX]\\h(?>_?\\h)*r?i?\\b",name:"constant.numeric.hex.ruby"},{match:"\\b0[bB][01](?>_?[01])*r?i?\\b",name:"constant.numeric.binary.ruby"},{match:"\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b",name:"constant.numeric.octal.ruby"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.ruby"}},end:"'",name:"constant.other.symbol.single-quoted.ruby",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.ruby"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.ruby"}},end:'"',name:"constant.other.symbol.double-quoted.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?<!\\()/=",name:"keyword.operator.assignment.augmented.ruby"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"single quoted string (does not allow interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:"\\\\'|\\\\\\\\",name:"constant.character.escape.ruby"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{include:"#percent_literals"},{begin:"(?:^|(?<=[=>~(?:\\[,|&;]|[\\s;]if\\s|[\\s;]elsif\\s|[\\s;]while\\s|[\\s;]unless\\s|[\\s;]when\\s|[\\s;]assert_match\\s|[\\s;]or\\s|[\\s;]and\\s|[\\s;]not\\s|[\\s.]index\\s|[\\s.]scan\\s|[\\s.]sub\\s|[\\s.]sub!\\s|[\\s.]gsub\\s|[\\s.]gsub!\\s|[\\s.]match\\s)|(?<=^when\\s|^if\\s|^elsif\\s|^while\\s|^unless\\s))\\s*((/))(?![*+{}?])",captures:{1:{name:"string.regexp.classic.ruby"},2:{name:"punctuation.definition.string.ruby"}},comment:"regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t",contentName:"string.regexp.classic.ruby",end:"((/[eimnosux]*))",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)",name:"constant.other.symbol.ruby"},{begin:"^=begin",captures:{0:{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:"^=end",name:"comment.block.documentation.ruby"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ruby"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ruby"}},end:"\\n",name:"comment.line.number-sign.ruby"}]},{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',match:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",name:"constant.numeric.ruby"},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1))',comment:"Heredoc with embedded html",end:"(?!\\G)",name:"meta.embedded.block.html",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1))',comment:"Heredoc with embedded xml",end:"(?!\\G)",name:"meta.embedded.block.xml",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1))',comment:"Heredoc with embedded sql",end:"(?!\\G)",name:"meta.embedded.block.sql",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1))',comment:"Heredoc with embedded css",end:"(?!\\G)",name:"meta.embedded.block.css",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1))',comment:"Heredoc with embedded c++",end:"(?!\\G)",name:"meta.embedded.block.c++",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c++",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c++"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1))',comment:"Heredoc with embedded c",end:"(?!\\G)",name:"meta.embedded.block.c",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))',comment:"Heredoc with embedded javascript",end:"(?!\\G)",name:"meta.embedded.block.js",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1))',comment:"Heredoc with embedded jQuery javascript",end:"(?!\\G)",name:"meta.embedded.block.js.jquery",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))',comment:"Heredoc with embedded shell",end:"(?!\\G)",name:"meta.embedded.block.shell",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1))',comment:"Heredoc with embedded lua",end:"(?!\\G)",name:"meta.embedded.block.lua",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1))',comment:"Heredoc with embedded ruby",end:"(?!\\G)",name:"meta.embedded.block.ruby",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:"(?>=\\s*<<(\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"^\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?><<[-~](\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"heredoc with indented terminator",end:"\\s*\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?<=\\{|do|\\{\\s|do\\s)(\\|)",captures:{1:{name:"punctuation.separator.arguments.ruby"}},end:"(?<!\\|)(\\|)(?!\\|)",patterns:[{include:"$self"},{match:"[_a-zA-Z][_a-zA-Z0-9]*",name:"variable.other.block.ruby"},{match:",",name:"punctuation.separator.variable.ruby"}]},{match:"=>",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.lambda.ruby"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.ruby"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.ruby"},{match:"(?<!\\.)\\b(and|not|or)\\b(?![?!])",name:"keyword.operator.logical.ruby"},{comment:"Make sure this goes after assignment and comparison",match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.ruby"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Safe navigation operator - Added in 2.3",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|-|/)",name:"keyword.operator.arithmetic.ruby"},{match:"=",name:"keyword.operator.assignment.ruby"},{match:"\\||~|>>",name:"keyword.operator.other.ruby"},{match:";",name:"punctuation.separator.statement.ruby"},{match:",",name:"punctuation.separator.object.ruby"},{captures:{1:{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:"(::)\\s*(?=[A-Z])"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:"(\\.|::)\\s*(?![A-Z])"},{comment:"Must come after method and constant separators to prefer double colons",match:":",name:"punctuation.separator.other.ruby"},{match:"\\{",name:"punctuation.section.scope.begin.ruby"},{match:"\\}",name:"punctuation.section.scope.end.ruby"},{match:"\\[",name:"punctuation.section.array.begin.ruby"},{match:"\\]",name:"punctuation.section.array.end.ruby"},{match:"\\(|\\)",name:"punctuation.section.function.ruby"}],repository:{escaped_char:{match:"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",name:"constant.character.escape.ruby"},heredoc:{begin:"^<<[-~]?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.ruby"},1:{name:"source.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]},percent_literals:{patterns:[{begin:"%i(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"constant.other.symbol.ruby"},{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"constant.other.symbol.ruby"},{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"constant.other.symbol.ruby"},{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"constant.other.symbol.ruby"},{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"constant.other.symbol.ruby"},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%I(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"constant.other.symbol.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%q(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%Q?(?:([(\\[{<])|([^\\w\\s=]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%r(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"([)\\]}>]\\2|\\1\\2)[eimnosux]*",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.regexp.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#regex_sub"}],repository:{angles:{patterns:[{include:"#regex_sub"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#regex_sub"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#regex_sub"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#regex_sub"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%s(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.constant.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.constant.end.ruby"}},name:"constant.other.symbol.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%w(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"string.other.ruby"},{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"string.other.ruby"},{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"string.other.ruby"},{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"string.other.ruby"},{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"string.other.ruby"},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%W(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"string.other.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%x(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.quantifier.begin.ruby"},3:{name:"punctuation.definition.quantifier.end.ruby"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"keyword.operator.quantifier.ruby"},{begin:"\\[\\^?",beginCaptures:{0:{name:"punctuation.definition.character-class.begin.ruby"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.end.ruby"}},name:"constant.other.character-class.set.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.ruby"}},end:"\\)",name:"meta.group.regexp.ruby",patterns:[{include:"#regex_sub"}]},{begin:"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ruby"}},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.",end:"$\\n?",name:"comment.line.number-sign.ruby"}]}},scopeName:"source.ruby",embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"],aliases:["rb"]})]));}};});
2
+ //# sourceMappingURL=ruby-82f6fde2.cjs.js.map