@malloy-publisher/server 0.0.106 → 0.0.108

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 (318) hide show
  1. package/dist/app/api-doc.yaml +133 -0
  2. package/dist/app/assets/Chip-DGhbYY0q.js +1 -0
  3. package/dist/app/assets/Container-B0KHzXKt.js +1 -0
  4. package/dist/app/assets/DialogTitle-DR48y6tE.js +1 -0
  5. package/dist/app/assets/Edit-DALFdGEc.js +1 -0
  6. package/dist/app/assets/FormControlContext-BRoFhJft.js +1 -0
  7. package/dist/app/assets/HomePage-D_nRraEL.js +3 -0
  8. package/dist/app/assets/MainPage-B4hVmqCL.js +1 -0
  9. package/dist/app/assets/MenuItem-_baoLhUG.js +1 -0
  10. package/dist/app/assets/Modal-BXBDnsg2.js +1 -0
  11. package/dist/app/assets/ModelPage-BKTJdSxS.js +2 -0
  12. package/dist/app/assets/MoreVert-CShGo3pe.js +1 -0
  13. package/dist/app/assets/PackagePage-z3SwXvJf.js +2 -0
  14. package/dist/app/assets/ProjectPage-jU6PqHcz.js +1 -0
  15. package/dist/app/assets/RouteError-xhztAFCv.js +1 -0
  16. package/dist/app/assets/WorkbookPage-BFAQAKC6.js +6 -0
  17. package/dist/app/assets/index-Bzmq4WOt.js +676 -0
  18. package/dist/app/assets/index-DIS-Myin.js +420 -0
  19. package/dist/app/assets/{index-CvbMKVwx.js → index-DoB7q17I.js} +7 -7
  20. package/dist/app/assets/index.es20-BPDKJ1mC.js +1 -0
  21. package/dist/app/assets/index.es23-CGcuw-pl.js +2 -0
  22. package/dist/app/assets/{index.es231-02O061a5.js → index.es297-CXXkvqrk.js} +1 -1
  23. package/dist/app/assets/{index.es232-DOZR37hD.js → index.es298-Clb9Gx4p.js} +1 -1
  24. package/dist/app/assets/{index.es235-CwaFVls_.js → index.es301-CvjmNg6I.js} +1 -1
  25. package/dist/app/assets/{index.es240-BXsCiix7.js → index.es306-BTbwrAfY.js} +1 -1
  26. package/dist/app/assets/{index.es248-BBXwDGlH.js → index.es314-i9HKymPG.js} +1 -1
  27. package/dist/app/assets/{index.es249-it6O0zLZ.js → index.es315-ffN5HvPT.js} +1 -1
  28. package/dist/app/assets/{index.es252-BU8jndoZ.js → index.es318-Dt5n7rl7.js} +1 -1
  29. package/dist/app/assets/{index.es256-BvZRwMxf.js → index.es322-DarpkShG.js} +1 -1
  30. package/dist/app/assets/{index.es259-6-xstYpb.js → index.es325-DGXcHkJW.js} +1 -1
  31. package/dist/app/assets/{index.es262-BDUOVoIz.js → index.es328-OrbxFN0T.js} +1 -1
  32. package/dist/app/assets/{index.es263-CHueaYAb.js → index.es329-DOg4tLZf.js} +1 -1
  33. package/dist/app/assets/{index.es277-CbrHqWmX.js → index.es343-B3c-LWee.js} +1 -1
  34. package/dist/app/assets/{index.es278-CI5gPs5v.js → index.es344-BzlM_qzj.js} +1 -1
  35. package/dist/app/assets/{index.es279-DH9b__8l.js → index.es345-Bx5jaaik.js} +1 -1
  36. package/dist/app/assets/{index.es281-CGN0Pl1D.js → index.es347-D4l698Ba.js} +1 -1
  37. package/dist/app/assets/{index.es286-XRt1U2aU.js → index.es352-CpzIN4Ck.js} +1 -1
  38. package/dist/app/assets/{index.es288-DSszyNly.js → index.es354-BzQZ7qJD.js} +1 -1
  39. package/dist/app/assets/{index.es289-xrNpklpB.js → index.es355-DX--h2FO.js} +1 -1
  40. package/dist/app/assets/{index.es294-B75OnIUq.js → index.es360-Brs4IhQL.js} +1 -1
  41. package/dist/app/assets/{index.es295-wxT8LaCU.js → index.es361-C_jQQEMZ.js} +1 -1
  42. package/dist/app/assets/{index.es297-DCQpwhAH.js → index.es363-BZd8QWNz.js} +1 -1
  43. package/dist/app/assets/{index.es298-Dtm6S7Te.js → index.es364-5Y8szdnr.js} +1 -1
  44. package/dist/app/assets/{index.es299-CO3NhjF0.js → index.es365-iXnPxtgs.js} +1 -1
  45. package/dist/app/assets/{index.es302-BNx4kwZQ.js → index.es368-BBVgx6aX.js} +1 -1
  46. package/dist/app/assets/{index.es304-Cslijulp.js → index.es370-ClbIH95T.js} +1 -1
  47. package/dist/app/assets/{index.es305-Bj5y75UJ.js → index.es371-DmqxEYIc.js} +1 -1
  48. package/dist/app/assets/{index.es306-BY9A-bfA.js → index.es372-Bot_-48c.js} +1 -1
  49. package/dist/app/assets/{index.es312-BOpCGR-W.js → index.es378-B9aRQ00Z.js} +1 -1
  50. package/dist/app/assets/{index.es313-j4e0V-ax.js → index.es379-DQAEtWxw.js} +1 -1
  51. package/dist/app/assets/{index.es314-QPXF8A7X.js → index.es380-BBp8E5gV.js} +1 -1
  52. package/dist/app/assets/{index.es315-BBht-U5W.js → index.es381-Cl0nVZsB.js} +1 -1
  53. package/dist/app/assets/{index.es317-Ba6bfhqW.js → index.es383-BMW5Mbfn.js} +1 -1
  54. package/dist/app/assets/{index.es321-BzMKJGft.js → index.es387-Cqwn90T2.js} +1 -1
  55. package/dist/app/assets/{index.es322-Dsh6cVFT.js → index.es388-BGLiezvQ.js} +1 -1
  56. package/dist/app/assets/{index.es330-CwhtB6Ga.js → index.es396-Dnto5_1_.js} +1 -1
  57. package/dist/app/assets/{index.es333-BkIXdkt8.js → index.es399-oYyQuMIn.js} +1 -1
  58. package/dist/app/assets/{index.es336-CDPSHwok.js → index.es402-C7bOCmc3.js} +1 -1
  59. package/dist/app/assets/{index.es339-CpmgqEMA.js → index.es405-CgiLlAXi.js} +1 -1
  60. package/dist/app/assets/{index.es343-DpQJ0N3s.js → index.es409-CTqIYL8X.js} +1 -1
  61. package/dist/app/assets/{index.es345-Cu1t0B48.js → index.es411-DCscG5n_.js} +1 -1
  62. package/dist/app/assets/{index.es353-Boayqq8b.js → index.es419-D8w4xXW-.js} +1 -1
  63. package/dist/app/assets/{index.es354-B25Rulno.js → index.es420-CoY4mPyG.js} +1 -1
  64. package/dist/app/assets/{index.es361-BbYa_qYT.js → index.es427-DPgNELR1.js} +1 -1
  65. package/dist/app/assets/{index.es362-BnUI1TJX.js → index.es428-CKGg3G7e.js} +1 -1
  66. package/dist/app/assets/{index.es372-Din3gmuj.js → index.es438-DLZwD0On.js} +1 -1
  67. package/dist/app/assets/{index.es376-CAM-NFdA.js → index.es442-CeFC_3kB.js} +1 -1
  68. package/dist/app/assets/{index.es382-r9NT2hns.js → index.es448-Bkdic4-K.js} +1 -1
  69. package/dist/app/assets/{index.es387-DWtDDVHa.js → index.es453-BTUy9umd.js} +1 -1
  70. package/dist/app/assets/{index.es388-Cddokof0.js → index.es454-B-wtdVwd.js} +1 -1
  71. package/dist/app/assets/{index.es390-BgcDic1S.js → index.es456-DMl0frQV.js} +1 -1
  72. package/dist/app/assets/{index.es394-Cuad4cFu.js → index.es460-BCFWaHpj.js} +1 -1
  73. package/dist/app/assets/{index.es396-CQcbzzI_.js → index.es462-CMWboMtJ.js} +1 -1
  74. package/dist/app/assets/{index.es398-DBUoETTk.js → index.es464-3Yi-DUIC.js} +1 -1
  75. package/dist/app/assets/{index.es401-D7FZbPq9.js → index.es467-Bhyygz2G.js} +1 -1
  76. package/dist/app/assets/{index.es402-C5ht0e8l.js → index.es468-HCYOhbfy.js} +1 -1
  77. package/dist/app/assets/{index.es406-pes6PLHN.js → index.es472-BGdt37JU.js} +1 -1
  78. package/dist/app/assets/{index.es408-DV2ChDJw.js → index.es474-Cvsrw_ol.js} +1 -1
  79. package/dist/app/assets/{index.es415-BI_J_S9x.js → index.es481-CQK61FBO.js} +1 -1
  80. package/dist/app/assets/{index.es417-BNH1K0F3.js → index.es483-_fCFzllD.js} +1 -1
  81. package/dist/app/assets/{index.es419-DaaHuOeT.js → index.es485-onmvNF-0.js} +1 -1
  82. package/dist/app/assets/{index.es423-BFNF97RC.js → index.es489-7PLT4DLq.js} +1 -1
  83. package/dist/app/assets/{index.es433-TWQYaV1h.js → index.es499-C0JWr_xK.js} +1 -1
  84. package/dist/app/assets/{index.es434-Dhj89L3U.js → index.es500-D41F9-Tw.js} +1 -1
  85. package/dist/app/assets/{index.es441-9pPCdH1i.js → index.es507-DKp0nulG.js} +1 -1
  86. package/dist/app/assets/{index.es442-B_JzqX5N.js → index.es508-ilzXBvKZ.js} +1 -1
  87. package/dist/app/assets/index.es7-C8O8lseo.js +1 -0
  88. package/dist/app/assets/index.modern-Da9HWSay.js +17 -0
  89. package/dist/app/assets/{index.umd-DknWdzGi.js → index.umd-BJAbIV_-.js} +61 -61
  90. package/dist/app/assets/listItemTextClasses-DhilXbg6.js +1 -0
  91. package/dist/app/index.html +1 -3
  92. package/dist/server.js +1838 -6280
  93. package/eslint.config.mjs +16 -3
  94. package/package.json +10 -10
  95. package/publisher.config.json +32 -25
  96. package/src/config.ts +61 -1
  97. package/src/constants.ts +0 -1
  98. package/src/controller/connection.controller.ts +2 -2
  99. package/src/server.ts +73 -13
  100. package/src/service/connection.ts +25 -15
  101. package/src/service/package.spec.ts +67 -22
  102. package/src/service/package.ts +8 -1
  103. package/src/service/project.ts +13 -31
  104. package/src/service/project_store.spec.ts +30 -53
  105. package/src/service/project_store.ts +100 -68
  106. package/dist/app/assets/index-Bh1cWMgT.js +0 -240
  107. package/dist/app/assets/index-SM0qJxoC.js +0 -676
  108. package/dist/app/assets/index.es24-CDJ3b9GD.js +0 -2
  109. package/dist/app/assets/mui-BL9dYvR2.js +0 -159
  110. package/dist/app/assets/vendor-c5ypKtDW.js +0 -17
  111. /package/dist/app/assets/{index.es220-CG6Dc4jp.js → index.es286-CG6Dc4jp.js} +0 -0
  112. /package/dist/app/assets/{index.es228-DsBKuouk.js → index.es294-DsBKuouk.js} +0 -0
  113. /package/dist/app/assets/{index.es229-D_z4Izcz.js → index.es295-D_z4Izcz.js} +0 -0
  114. /package/dist/app/assets/{index.es230-727ZlQH0.js → index.es296-727ZlQH0.js} +0 -0
  115. /package/dist/app/assets/{index.es233-Dn00JSTd.js → index.es299-Dn00JSTd.js} +0 -0
  116. /package/dist/app/assets/{index.es234-COJ4H7py.js → index.es300-COJ4H7py.js} +0 -0
  117. /package/dist/app/assets/{index.es236-Bu5BbsvL.js → index.es302-Bu5BbsvL.js} +0 -0
  118. /package/dist/app/assets/{index.es237-7O62HKoU.js → index.es303-7O62HKoU.js} +0 -0
  119. /package/dist/app/assets/{index.es238-BPT9niGB.js → index.es304-BPT9niGB.js} +0 -0
  120. /package/dist/app/assets/{index.es239-Dhn9LcZ4.js → index.es305-Dhn9LcZ4.js} +0 -0
  121. /package/dist/app/assets/{index.es241-eg146-Ew.js → index.es307-eg146-Ew.js} +0 -0
  122. /package/dist/app/assets/{index.es242-Du268qiB.js → index.es308-Du268qiB.js} +0 -0
  123. /package/dist/app/assets/{index.es243-fje9CFhw.js → index.es309-fje9CFhw.js} +0 -0
  124. /package/dist/app/assets/{index.es244-BwXTMy5W.js → index.es310-BwXTMy5W.js} +0 -0
  125. /package/dist/app/assets/{index.es245-3xVqZejG.js → index.es311-3xVqZejG.js} +0 -0
  126. /package/dist/app/assets/{index.es246-xW4inM5L.js → index.es312-xW4inM5L.js} +0 -0
  127. /package/dist/app/assets/{index.es247-DHo0CJ0O.js → index.es313-DHo0CJ0O.js} +0 -0
  128. /package/dist/app/assets/{index.es250-C3t2pwGQ.js → index.es316-C3t2pwGQ.js} +0 -0
  129. /package/dist/app/assets/{index.es251-DNquZEk8.js → index.es317-DNquZEk8.js} +0 -0
  130. /package/dist/app/assets/{index.es253-BHOwM8T6.js → index.es319-BHOwM8T6.js} +0 -0
  131. /package/dist/app/assets/{index.es254-DxSadP1t.js → index.es320-DxSadP1t.js} +0 -0
  132. /package/dist/app/assets/{index.es255-DbXoA79R.js → index.es321-DbXoA79R.js} +0 -0
  133. /package/dist/app/assets/{index.es257-Bp6g37R7.js → index.es323-Bp6g37R7.js} +0 -0
  134. /package/dist/app/assets/{index.es258-sacFqUAJ.js → index.es324-sacFqUAJ.js} +0 -0
  135. /package/dist/app/assets/{index.es260-C7gG9l05.js → index.es326-C7gG9l05.js} +0 -0
  136. /package/dist/app/assets/{index.es261-Dsg_Bt_b.js → index.es327-Dsg_Bt_b.js} +0 -0
  137. /package/dist/app/assets/{index.es264-D9R-vmeu.js → index.es330-D9R-vmeu.js} +0 -0
  138. /package/dist/app/assets/{index.es265-BPhBrDlE.js → index.es331-BPhBrDlE.js} +0 -0
  139. /package/dist/app/assets/{index.es266-C-TU5hQ_.js → index.es332-C-TU5hQ_.js} +0 -0
  140. /package/dist/app/assets/{index.es267-DtFQj3wx.js → index.es333-DtFQj3wx.js} +0 -0
  141. /package/dist/app/assets/{index.es268-m2LEI-9-.js → index.es334-m2LEI-9-.js} +0 -0
  142. /package/dist/app/assets/{index.es269-BoXegm-a.js → index.es335-BoXegm-a.js} +0 -0
  143. /package/dist/app/assets/{index.es270-B9wLZaAG.js → index.es336-B9wLZaAG.js} +0 -0
  144. /package/dist/app/assets/{index.es271-ClGRhx96.js → index.es337-ClGRhx96.js} +0 -0
  145. /package/dist/app/assets/{index.es272-DEIpsLCJ.js → index.es338-DEIpsLCJ.js} +0 -0
  146. /package/dist/app/assets/{index.es273-BgYniUM_.js → index.es339-BgYniUM_.js} +0 -0
  147. /package/dist/app/assets/{index.es274-COcR7UxN.js → index.es340-COcR7UxN.js} +0 -0
  148. /package/dist/app/assets/{index.es275-BjQB5zDj.js → index.es341-BjQB5zDj.js} +0 -0
  149. /package/dist/app/assets/{index.es276-C-nORZOA.js → index.es342-C-nORZOA.js} +0 -0
  150. /package/dist/app/assets/{index.es280-BX77sIaO.js → index.es346-BX77sIaO.js} +0 -0
  151. /package/dist/app/assets/{index.es282-B-DoSBHF.js → index.es348-B-DoSBHF.js} +0 -0
  152. /package/dist/app/assets/{index.es283-bCA53EVm.js → index.es349-bCA53EVm.js} +0 -0
  153. /package/dist/app/assets/{index.es284-w-ucz2PV.js → index.es350-w-ucz2PV.js} +0 -0
  154. /package/dist/app/assets/{index.es285-Dayu4EKP.js → index.es351-Dayu4EKP.js} +0 -0
  155. /package/dist/app/assets/{index.es287-DKXYxT9g.js → index.es353-DKXYxT9g.js} +0 -0
  156. /package/dist/app/assets/{index.es290-DfxzS6Rs.js → index.es356-DfxzS6Rs.js} +0 -0
  157. /package/dist/app/assets/{index.es291-SKMF96pI.js → index.es357-SKMF96pI.js} +0 -0
  158. /package/dist/app/assets/{index.es292-ajMbGru0.js → index.es358-ajMbGru0.js} +0 -0
  159. /package/dist/app/assets/{index.es293--30QC5Em.js → index.es359--30QC5Em.js} +0 -0
  160. /package/dist/app/assets/{index.es296-B430Bg39.js → index.es362-B430Bg39.js} +0 -0
  161. /package/dist/app/assets/{index.es300-CM8KxXT1.js → index.es366-CM8KxXT1.js} +0 -0
  162. /package/dist/app/assets/{index.es301-B1SYOhNW.js → index.es367-B1SYOhNW.js} +0 -0
  163. /package/dist/app/assets/{index.es303-DkBy-JyN.js → index.es369-DkBy-JyN.js} +0 -0
  164. /package/dist/app/assets/{index.es307-BILxekzW.js → index.es373-BILxekzW.js} +0 -0
  165. /package/dist/app/assets/{index.es308-C5wWYbrZ.js → index.es374-C5wWYbrZ.js} +0 -0
  166. /package/dist/app/assets/{index.es309-HzYwdGDm.js → index.es375-HzYwdGDm.js} +0 -0
  167. /package/dist/app/assets/{index.es310-T-Tgc4AT.js → index.es376-T-Tgc4AT.js} +0 -0
  168. /package/dist/app/assets/{index.es311-ifBTmRxC.js → index.es377-ifBTmRxC.js} +0 -0
  169. /package/dist/app/assets/{index.es316-BMj5Y0dO.js → index.es382-BMj5Y0dO.js} +0 -0
  170. /package/dist/app/assets/{index.es318-BjABl1g7.js → index.es384-BjABl1g7.js} +0 -0
  171. /package/dist/app/assets/{index.es319-xI-RfyKK.js → index.es385-xI-RfyKK.js} +0 -0
  172. /package/dist/app/assets/{index.es320-ySlJ1b_l.js → index.es386-ySlJ1b_l.js} +0 -0
  173. /package/dist/app/assets/{index.es323-BQoSv7ci.js → index.es389-BQoSv7ci.js} +0 -0
  174. /package/dist/app/assets/{index.es324-w8dY5SsB.js → index.es390-w8dY5SsB.js} +0 -0
  175. /package/dist/app/assets/{index.es325-TU54ms6u.js → index.es391-TU54ms6u.js} +0 -0
  176. /package/dist/app/assets/{index.es326-DREVFZK8.js → index.es392-DREVFZK8.js} +0 -0
  177. /package/dist/app/assets/{index.es327-BfivnA6A.js → index.es393-BfivnA6A.js} +0 -0
  178. /package/dist/app/assets/{index.es328-P4WzXJd0.js → index.es394-P4WzXJd0.js} +0 -0
  179. /package/dist/app/assets/{index.es329-BAng5TT0.js → index.es395-BAng5TT0.js} +0 -0
  180. /package/dist/app/assets/{index.es331-B5lbUyaz.js → index.es397-B5lbUyaz.js} +0 -0
  181. /package/dist/app/assets/{index.es332-mebxcVVE.js → index.es398-mebxcVVE.js} +0 -0
  182. /package/dist/app/assets/{index.es334-XBlWyCtg.js → index.es400-XBlWyCtg.js} +0 -0
  183. /package/dist/app/assets/{index.es335-BfCpw3nA.js → index.es401-BfCpw3nA.js} +0 -0
  184. /package/dist/app/assets/{index.es337-Cc5clBb7.js → index.es403-Cc5clBb7.js} +0 -0
  185. /package/dist/app/assets/{index.es338-IuBKFhSY.js → index.es404-IuBKFhSY.js} +0 -0
  186. /package/dist/app/assets/{index.es340-Du5NY7AG.js → index.es406-Du5NY7AG.js} +0 -0
  187. /package/dist/app/assets/{index.es341-Bvotw-X0.js → index.es407-Bvotw-X0.js} +0 -0
  188. /package/dist/app/assets/{index.es342-UIAJJxZW.js → index.es408-UIAJJxZW.js} +0 -0
  189. /package/dist/app/assets/{index.es344-D9-PGadD.js → index.es410-D9-PGadD.js} +0 -0
  190. /package/dist/app/assets/{index.es346-sdHcTMYB.js → index.es412-sdHcTMYB.js} +0 -0
  191. /package/dist/app/assets/{index.es347-Ci6OQyBP.js → index.es413-Ci6OQyBP.js} +0 -0
  192. /package/dist/app/assets/{index.es348-BC5c_5Pe.js → index.es414-BC5c_5Pe.js} +0 -0
  193. /package/dist/app/assets/{index.es349-Tz6hzZYG.js → index.es415-Tz6hzZYG.js} +0 -0
  194. /package/dist/app/assets/{index.es350-DB_GagMm.js → index.es416-DB_GagMm.js} +0 -0
  195. /package/dist/app/assets/{index.es351-DLbgOhZU.js → index.es417-DLbgOhZU.js} +0 -0
  196. /package/dist/app/assets/{index.es352-B0XVJmRM.js → index.es418-B0XVJmRM.js} +0 -0
  197. /package/dist/app/assets/{index.es355-shcSOmrb.js → index.es421-shcSOmrb.js} +0 -0
  198. /package/dist/app/assets/{index.es356-D4Tzg5kh.js → index.es422-D4Tzg5kh.js} +0 -0
  199. /package/dist/app/assets/{index.es357-Deuh7S70.js → index.es423-Deuh7S70.js} +0 -0
  200. /package/dist/app/assets/{index.es358-BUEGK8hf.js → index.es424-BUEGK8hf.js} +0 -0
  201. /package/dist/app/assets/{index.es359-BNioltXt.js → index.es425-BNioltXt.js} +0 -0
  202. /package/dist/app/assets/{index.es360-JqZropPD.js → index.es426-JqZropPD.js} +0 -0
  203. /package/dist/app/assets/{index.es363-LKU2TuZ1.js → index.es429-LKU2TuZ1.js} +0 -0
  204. /package/dist/app/assets/{index.es364-BFLt1xDp.js → index.es430-BFLt1xDp.js} +0 -0
  205. /package/dist/app/assets/{index.es365-DKykz6zU.js → index.es431-DKykz6zU.js} +0 -0
  206. /package/dist/app/assets/{index.es366-B3ZDOciz.js → index.es432-B3ZDOciz.js} +0 -0
  207. /package/dist/app/assets/{index.es367-CSHBycmS.js → index.es433-CSHBycmS.js} +0 -0
  208. /package/dist/app/assets/{index.es368-BIEUsx6d.js → index.es434-BIEUsx6d.js} +0 -0
  209. /package/dist/app/assets/{index.es369-B48N-Iqd.js → index.es435-B48N-Iqd.js} +0 -0
  210. /package/dist/app/assets/{index.es370-BY-TUvya.js → index.es436-BY-TUvya.js} +0 -0
  211. /package/dist/app/assets/{index.es371-zocC4JxJ.js → index.es437-zocC4JxJ.js} +0 -0
  212. /package/dist/app/assets/{index.es373-Cza_XSSt.js → index.es439-Cza_XSSt.js} +0 -0
  213. /package/dist/app/assets/{index.es374-Bg-kzb6g.js → index.es440-Bg-kzb6g.js} +0 -0
  214. /package/dist/app/assets/{index.es375-DhUJRlN_.js → index.es441-DhUJRlN_.js} +0 -0
  215. /package/dist/app/assets/{index.es377-C8lEn-DE.js → index.es443-C8lEn-DE.js} +0 -0
  216. /package/dist/app/assets/{index.es378-DhMKtDLN.js → index.es444-DhMKtDLN.js} +0 -0
  217. /package/dist/app/assets/{index.es379-CwjWoCRV.js → index.es445-CwjWoCRV.js} +0 -0
  218. /package/dist/app/assets/{index.es380-CzouJOBO.js → index.es446-CzouJOBO.js} +0 -0
  219. /package/dist/app/assets/{index.es381-B1bQXN8T.js → index.es447-B1bQXN8T.js} +0 -0
  220. /package/dist/app/assets/{index.es383-5LuOXUq_.js → index.es449-5LuOXUq_.js} +0 -0
  221. /package/dist/app/assets/{index.es384-DWJ3fJO_.js → index.es450-DWJ3fJO_.js} +0 -0
  222. /package/dist/app/assets/{index.es385-DJlmqQ1C.js → index.es451-DJlmqQ1C.js} +0 -0
  223. /package/dist/app/assets/{index.es386-QhoSD0DR.js → index.es452-QhoSD0DR.js} +0 -0
  224. /package/dist/app/assets/{index.es389-Be6lgOlo.js → index.es455-Be6lgOlo.js} +0 -0
  225. /package/dist/app/assets/{index.es391-BJ4Li9vH.js → index.es457-BJ4Li9vH.js} +0 -0
  226. /package/dist/app/assets/{index.es392-DQVVAn-B.js → index.es458-DQVVAn-B.js} +0 -0
  227. /package/dist/app/assets/{index.es393-BJGe-b2p.js → index.es459-BJGe-b2p.js} +0 -0
  228. /package/dist/app/assets/{index.es395-BLhTXw86.js → index.es461-BLhTXw86.js} +0 -0
  229. /package/dist/app/assets/{index.es397-atvbtKCR.js → index.es463-atvbtKCR.js} +0 -0
  230. /package/dist/app/assets/{index.es399-DkLiglaE.js → index.es465-DkLiglaE.js} +0 -0
  231. /package/dist/app/assets/{index.es400-C1w2a3ep.js → index.es466-C1w2a3ep.js} +0 -0
  232. /package/dist/app/assets/{index.es403-Cf8iN4DR.js → index.es469-Cf8iN4DR.js} +0 -0
  233. /package/dist/app/assets/{index.es404-COK4E0Yg.js → index.es470-COK4E0Yg.js} +0 -0
  234. /package/dist/app/assets/{index.es405-BknIz3MU.js → index.es471-BknIz3MU.js} +0 -0
  235. /package/dist/app/assets/{index.es407-BeQkCIfX.js → index.es473-BeQkCIfX.js} +0 -0
  236. /package/dist/app/assets/{index.es409-BSxZ-RaX.js → index.es475-BSxZ-RaX.js} +0 -0
  237. /package/dist/app/assets/{index.es410-C7L56vO4.js → index.es476-C7L56vO4.js} +0 -0
  238. /package/dist/app/assets/{index.es411-CUnW07Te.js → index.es477-CUnW07Te.js} +0 -0
  239. /package/dist/app/assets/{index.es412-C1XDQQGZ.js → index.es478-C1XDQQGZ.js} +0 -0
  240. /package/dist/app/assets/{index.es413-CQjiPCtT.js → index.es479-CQjiPCtT.js} +0 -0
  241. /package/dist/app/assets/{index.es414-DQ1-QYvQ.js → index.es480-DQ1-QYvQ.js} +0 -0
  242. /package/dist/app/assets/{index.es416-BbSNqyBO.js → index.es482-BbSNqyBO.js} +0 -0
  243. /package/dist/app/assets/{index.es418-CB2ApiWb.js → index.es484-CB2ApiWb.js} +0 -0
  244. /package/dist/app/assets/{index.es420-B_m7g4N7.js → index.es486-B_m7g4N7.js} +0 -0
  245. /package/dist/app/assets/{index.es421-B6W0miNI.js → index.es487-B6W0miNI.js} +0 -0
  246. /package/dist/app/assets/{index.es422-BMR_PYu6.js → index.es488-BMR_PYu6.js} +0 -0
  247. /package/dist/app/assets/{index.es424-Dj6nwHGl.js → index.es490-Dj6nwHGl.js} +0 -0
  248. /package/dist/app/assets/{index.es425-BpWG_bgh.js → index.es491-BpWG_bgh.js} +0 -0
  249. /package/dist/app/assets/{index.es426-BVUVsWT6.js → index.es492-BVUVsWT6.js} +0 -0
  250. /package/dist/app/assets/{index.es427-CAQ2eGtk.js → index.es493-CAQ2eGtk.js} +0 -0
  251. /package/dist/app/assets/{index.es428-BFOHcciG.js → index.es494-BFOHcciG.js} +0 -0
  252. /package/dist/app/assets/{index.es429-CdO5JTpU.js → index.es495-CdO5JTpU.js} +0 -0
  253. /package/dist/app/assets/{index.es430-CJaU5se_.js → index.es496-CJaU5se_.js} +0 -0
  254. /package/dist/app/assets/{index.es431-DYoNaHQp.js → index.es497-DYoNaHQp.js} +0 -0
  255. /package/dist/app/assets/{index.es432-m4uW47V2.js → index.es498-m4uW47V2.js} +0 -0
  256. /package/dist/app/assets/{index.es435-nyqBNV6O.js → index.es501-nyqBNV6O.js} +0 -0
  257. /package/dist/app/assets/{index.es436-C6j12Q_x.js → index.es502-C6j12Q_x.js} +0 -0
  258. /package/dist/app/assets/{index.es437-7A4Fjokl.js → index.es503-7A4Fjokl.js} +0 -0
  259. /package/dist/app/assets/{index.es438-CB0Krxn9.js → index.es504-CB0Krxn9.js} +0 -0
  260. /package/dist/app/assets/{index.es439-DCE3LsBG.js → index.es505-DCE3LsBG.js} +0 -0
  261. /package/dist/app/assets/{index.es440-C3FkfJm5.js → index.es506-C3FkfJm5.js} +0 -0
  262. /package/dist/app/assets/{index.es443-CVw76BM1.js → index.es509-CVw76BM1.js} +0 -0
  263. /package/dist/app/assets/{index.es444-HnGAYVZD.js → index.es510-HnGAYVZD.js} +0 -0
  264. /package/dist/app/assets/{index.es445-BVz_zdnA.js → index.es511-BVz_zdnA.js} +0 -0
  265. /package/dist/app/assets/{index.es446-C3khCPGq.js → index.es512-C3khCPGq.js} +0 -0
  266. /package/dist/app/assets/{index.es447-D-2ljcwZ.js → index.es513-D-2ljcwZ.js} +0 -0
  267. /package/dist/app/assets/{index.es448-Cv9koXgw.js → index.es514-Cv9koXgw.js} +0 -0
  268. /package/dist/app/assets/{index.es449-CD_QflpE.js → index.es515-CD_QflpE.js} +0 -0
  269. /package/dist/app/assets/{index.es450-DRW-0cLl.js → index.es516-DRW-0cLl.js} +0 -0
  270. /package/dist/app/assets/{index.es451-C-_shW-Y.js → index.es517-C-_shW-Y.js} +0 -0
  271. /package/dist/app/assets/{index.es452-LGGdnPYs.js → index.es518-LGGdnPYs.js} +0 -0
  272. /package/dist/app/assets/{index.es453-C3mMm8J8.js → index.es519-C3mMm8J8.js} +0 -0
  273. /package/dist/app/assets/{index.es454-BzJJZx-M.js → index.es520-BzJJZx-M.js} +0 -0
  274. /package/dist/app/assets/{index.es455-BXkSAIEj.js → index.es521-BXkSAIEj.js} +0 -0
  275. /package/dist/app/assets/{index.es456-BgDCqdQA.js → index.es522-BgDCqdQA.js} +0 -0
  276. /package/dist/app/assets/{index.es457-C8M2exoo.js → index.es523-C8M2exoo.js} +0 -0
  277. /package/dist/app/assets/{index.es458-DHJKELXO.js → index.es524-DHJKELXO.js} +0 -0
  278. /package/dist/app/assets/{index.es459-Cuk6v7N8.js → index.es525-Cuk6v7N8.js} +0 -0
  279. /package/dist/app/assets/{index.es460-DH5Ifo-i.js → index.es526-DH5Ifo-i.js} +0 -0
  280. /package/dist/app/assets/{index.es461-E3gJ1_iC.js → index.es527-E3gJ1_iC.js} +0 -0
  281. /package/dist/app/assets/{index.es462-DAi9KRSo.js → index.es528-DAi9KRSo.js} +0 -0
  282. /package/dist/app/assets/{index.es463-D7oLnXFd.js → index.es529-D7oLnXFd.js} +0 -0
  283. /package/dist/app/assets/{index.es464-BfjtVDDH.js → index.es530-BfjtVDDH.js} +0 -0
  284. /package/dist/app/assets/{index.es465-DnULxvSX.js → index.es531-DnULxvSX.js} +0 -0
  285. /package/dist/app/assets/{index.es466-CkXjmgJE.js → index.es532-CkXjmgJE.js} +0 -0
  286. /package/dist/app/assets/{index.es467-CfQXZHmo.js → index.es533-CfQXZHmo.js} +0 -0
  287. /package/dist/app/assets/{index.es468-DWedfzmr.js → index.es534-DWedfzmr.js} +0 -0
  288. /package/dist/app/assets/{index.es469-DUszq2jm.js → index.es535-DUszq2jm.js} +0 -0
  289. /package/dist/app/assets/{index.es470-B7mTdjB0.js → index.es536-B7mTdjB0.js} +0 -0
  290. /package/dist/app/assets/{index.es471-D5KoaKCx.js → index.es537-D5KoaKCx.js} +0 -0
  291. /package/dist/app/assets/{index.es472-BfHTSMKl.js → index.es538-BfHTSMKl.js} +0 -0
  292. /package/dist/app/assets/{index.es473-B0m2ddpp.js → index.es539-B0m2ddpp.js} +0 -0
  293. /package/dist/app/assets/{index.es474-CyktbL80.js → index.es540-CyktbL80.js} +0 -0
  294. /package/dist/app/assets/{index.es475-Csfq5Kiy.js → index.es541-Csfq5Kiy.js} +0 -0
  295. /package/dist/app/assets/{index.es476-CafNBF8u.js → index.es542-CafNBF8u.js} +0 -0
  296. /package/dist/app/assets/{index.es477-CTRr51gU.js → index.es543-CTRr51gU.js} +0 -0
  297. /package/dist/app/assets/{index.es478-D4h5O-jR.js → index.es544-D4h5O-jR.js} +0 -0
  298. /package/dist/app/assets/{index.es479-C39BiMTA.js → index.es545-C39BiMTA.js} +0 -0
  299. /package/dist/app/assets/{index.es480-Ddv68eIx.js → index.es546-Ddv68eIx.js} +0 -0
  300. /package/dist/app/assets/{index.es481-GBQ2dnAY.js → index.es547-GBQ2dnAY.js} +0 -0
  301. /package/dist/app/assets/{index.es482-PoHY5YXO.js → index.es548-PoHY5YXO.js} +0 -0
  302. /package/dist/app/assets/{index.es483-3e1v2bzS.js → index.es549-3e1v2bzS.js} +0 -0
  303. /package/dist/app/assets/{index.es484-CS3Unz2-.js → index.es550-CS3Unz2-.js} +0 -0
  304. /package/dist/app/assets/{index.es485-bN70gL4F.js → index.es551-bN70gL4F.js} +0 -0
  305. /package/dist/app/assets/{index.es486-CmCqftbK.js → index.es552-CmCqftbK.js} +0 -0
  306. /package/dist/app/assets/{index.es487-Ds-gbosJ.js → index.es553-Ds-gbosJ.js} +0 -0
  307. /package/dist/app/assets/{index.es488-CjDtw9vr.js → index.es554-CjDtw9vr.js} +0 -0
  308. /package/dist/app/assets/{index.es489-BthQWCQV.js → index.es555-BthQWCQV.js} +0 -0
  309. /package/dist/app/assets/{index.es490-DqwNpetd.js → index.es556-DqwNpetd.js} +0 -0
  310. /package/dist/app/assets/{index.es491-Bw305WKR.js → index.es557-Bw305WKR.js} +0 -0
  311. /package/dist/app/assets/{index.es492-DXbdFlpD.js → index.es558-DXbdFlpD.js} +0 -0
  312. /package/dist/app/assets/{index.es493-L9t79GZl.js → index.es559-L9t79GZl.js} +0 -0
  313. /package/dist/app/assets/{index.es494-CbfX1IO0.js → index.es560-CbfX1IO0.js} +0 -0
  314. /package/dist/app/assets/{index.es495-DBQeEorK.js → index.es561-DBQeEorK.js} +0 -0
  315. /package/dist/app/assets/{index.es496-BEBZ7ncR.js → index.es562-BEBZ7ncR.js} +0 -0
  316. /package/dist/app/assets/{index.es497-Bkuqu6BP.js → index.es563-Bkuqu6BP.js} +0 -0
  317. /package/dist/app/assets/{index.es498-D0r3Knsf.js → index.es564-D0r3Knsf.js} +0 -0
  318. /package/dist/app/assets/{index.es499-CVO1_9PV.js → index.es565-CVO1_9PV.js} +0 -0
@@ -1 +1 @@
1
- import e from"./index.es312-BOpCGR-W.js";import n from"./index.es305-Bj5y75UJ.js";import t from"./index.es441-9pPCdH1i.js";import a from"./index.es404-COK4E0Yg.js";import r from"./index.es302-BNx4kwZQ.js";import i from"./index.es265-BPhBrDlE.js";import u from"./index.es262-BDUOVoIz.js";import c from"./index.es250-C3t2pwGQ.js";import o from"./index.es320-ySlJ1b_l.js";import s from"./index.es397-atvbtKCR.js";import d from"./index.es339-CpmgqEMA.js";import m from"./index.es443-CVw76BM1.js";import"./index.es319-xI-RfyKK.js";import"./index.es424-Dj6nwHGl.js";import"./index.es329-BAng5TT0.js";import"./index.es421-B6W0miNI.js";import"./index.es384-DWJ3fJO_.js";import"./index.es299-CO3NhjF0.js";const b=Object.freeze(JSON.parse(`{"displayName":"Ruby","name":"ruby","patterns":[{"captures":{"1":{"name":"keyword.control.class.ruby"},"2":{"name":"entity.name.type.class.ruby"},"5":{"name":"punctuation.separator.namespace.ruby"},"7":{"name":"punctuation.separator.inheritance.ruby"},"8":{"name":"entity.other.inherited-class.ruby"},"11":{"name":"punctuation.separator.namespace.ruby"}},"comment":"class Namespace::ClassName < OtherNamespace::OtherClassName","match":"\\b(class)\\\\s+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\\\\s*((<)\\\\s*(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*))?","name":"meta.class.ruby"},{"captures":{"1":{"name":"keyword.control.module.ruby"},"2":{"name":"entity.name.type.module.ruby"},"5":{"name":"punctuation.separator.namespace.ruby"}},"match":"\\b(module)\\\\s+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)","name":"meta.module.ruby"},{"captures":{"1":{"name":"keyword.control.class.ruby"},"2":{"name":"punctuation.separator.inheritance.ruby"}},"match":"\\b(class)\\\\s*(<<)\\\\s*","name":"meta.class.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":"variable.ruby"},"3":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable and/or assignment","match":"^\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((&&|\\\\|\\\\|)=)"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"},"5":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable and/or assignment in a condition","match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((&&|\\\\|\\\\|)=)"},{"captures":{"1":{"name":"variable.ruby"},"3":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable operation assignment (+=, -=, *=, /=)","match":"^\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((\\\\+|\\\\*|-|\\\\/|%|\\\\*\\\\*|&|\\\\||\\\\^|<<|>>)=)"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"},"5":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable operation assignment in a condition","match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((\\\\+|\\\\*|-|\\\\/|%|\\\\*\\\\*|&|\\\\||\\\\^|<<|>>)=)"},{"captures":{"1":{"name":"variable.ruby"}},"comment":"A local variable assignment","match":"^\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*=[^=>]"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"}},"comment":"A local variable assignment in a condition","match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*=[^=>]"},{"captures":{"1":{"name":"punctuation.definition.constant.hashkey.ruby"}},"comment":"symbols as hash key (1.9 syntax)","match":"(?>[a-zA-Z_]\\\\w*(?>[?!])?)(:)(?!:)","name":"constant.language.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.language.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|break|next|redo|retry|return|super|undef|yield)\\\\b(?![?!])|\\\\bdefined\\\\?|\\\\b(block_given|iterator)\\\\?","name":"keyword.control.pseudo-method.ruby"},{"match":"\\\\bnil\\\\b(?![?!])","name":"constant.language.nil.ruby"},{"match":"\\\\b(true|false)\\\\b(?![?!])","name":"constant.language.boolean.ruby"},{"match":"\\\\b(__(FILE|LINE)__)\\\\b(?![?!])","name":"variable.language.ruby"},{"match":"\\\\bself\\\\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|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\\\b(?![?!])","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+|~|=|/|\\\\\\\\|,|;|\\\\.|<|>|_|\\\\*|\\\\$|\\\\?|:|\\"|-[0adFiIlpv])","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|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\\\b(?![?!])|autoload\\\\?|exit!)","name":"support.function.kernel.ruby"},{"match":"\\\\b[_A-Z]\\\\w*\\\\b","name":"variable.other.constant.ruby"},{"begin":"(->)\\\\(","beginCaptures":{"1":{"name":"support.function.kernel.ruby"}},"comment":"Lambda parameters.","end":"\\\\)","patterns":[{"begin":"(?=[&*_a-zA-Z])","end":"(?=[,)])","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"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 an explanation.","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.ruby"}},"name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?=[&*_a-zA-Z])","end":"(?=[,)])","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"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":"(?=;)|(?<=[\\\\w\\\\])}\`'\\"!?])(?=\\\\s*#|\\\\s*$)","name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?=[&*_a-zA-Z])","end":"(?=,|;|\\\\s*#|\\\\s*$)","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"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)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0(?:[xX]\\\\h(?>_?\\\\h)*|[oO]?[0-7](?>_?[0-7])*|[bB][01](?>_?[01])*|[dD]\\\\d(?>_?\\\\d)*))\\\\b","name":"constant.numeric.ruby"},{"begin":":'","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with '' delimiter","end":"'","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\['\\\\\\\\]","name":"constant.character.escape.ruby"}]},{"begin":":\\"","beginCaptures":{"0":{"name":"punctuation.section.symbol.begin.ruby"}},"comment":"symbol literal with \\"\\" delimiter","end":"\\"","endCaptures":{"0":{"name":"punctuation.section.symbol.end.ruby"}},"name":"constant.language.symbol.interpolated.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":"string literal with '' delimiter","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":"string literal with interpolation and \\"\\" delimiter","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.double.interpolated.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"}]},{"begin":"(?<![\\\\w)])((/))(?![?*+])(?=(?:\\\\\\\\/|[^/])*+/[eimnosux]*\\\\s*(?:[)\\\\]}#.,?:]|\\\\|\\\\||&&|<=>|=>|==|=~|!~|!=|;|$|if|else|elsif|then|do|end|unless|while|until|or|and)|$)","captures":{"1":{"name":"string.regexp.interpolated.ruby"},"2":{"name":"punctuation.section.regexp.ruby"}},"comment":"regular expression literal with interpolation","contentName":"string.regexp.interpolated.ruby","end":"((/[eimnosux]*))","patterns":[{"include":"#regex_sub"}]},{"begin":"%r{","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"}[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},{"begin":"%r\\\\[","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"][eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},{"begin":"%r\\\\(","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"\\\\)[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},{"begin":"%r<","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":">[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},{"begin":"%r([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"\\\\1[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"}]},{"begin":"%I\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%I\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%I<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%I{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%I([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%i\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%i\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%i<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%i{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%i([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"begin":"%W\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%W\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%W<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%W{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%W([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%w\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%w\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%w<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%w{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%w([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"begin":"%[Qx]?\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%[Qx]?\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%[Qx]?{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%[Qx]?<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%[Qx]([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%([^\\\\w\\\\s=])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%q\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%q<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%q\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%q{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%q([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"begin":"%s\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%s<","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%s\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%s{","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%s([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"captures":{"1":{"name":"punctuation.definition.constant.ruby"}},"comment":"symbols","match":"(?<!:)(:)(?>[$a-zA-Z_]\\\\w*(?>[?!]|=(?![>=]))?|===?|<=>|>[>=]?|<[<=]?|[%&\`/\\\\|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[]=?|@@?[a-zA-Z_]\\\\w*)","name":"constant.language.symbol.ruby"},{"begin":"^=begin","captures":{"0":{"name":"punctuation.definition.comment.ruby"}},"comment":"multiline comments","end":"^=end","name":"comment.block.documentation.ruby"},{"include":"#yard"},{"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":"^__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"}]}]},{"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]+_|)HAML)\\\\b\\\\1))","comment":"Heredoc with embedded HAML","end":"(?!\\\\G)","name":"meta.embedded.block.haml","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)HAML)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"text.haml","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.haml"},{"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]+_|)(?:GRAPHQL|GQL))\\\\b\\\\1))","comment":"Heredoc with embedded GraphQL","end":"(?!\\\\G)","name":"meta.embedded.block.graphql","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)(?:GRAPHQL|GQL))\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.graphql","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.graphql"},{"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.cpp","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)CPP)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.cpp","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.cpp"},{"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":"(?=(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)(?:YAML|YML))\\\\b\\\\1))","comment":"Heredoc with embedded YAML","end":"(?!\\\\G)","name":"meta.embedded.block.yaml","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)(?:YAML|YML))\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.yaml","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.yaml"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)SLIM)\\\\b\\\\1))","comment":"Heredoc with embedded Slim","end":"(?!\\\\G)","name":"meta.embedded.block.slim","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)SLIM)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"text.slim","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.slim"},{"include":"#escaped_char"}]}]},{"begin":"(?>=\\\\s*<<([\\"'\`]?)(\\\\w+)\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"^\\\\2$","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?>((<<[-~]([\\"'\`]?)(\\\\w+)\\\\3,\\\\s?)*<<[-~]([\\"'\`]?)(\\\\w+)\\\\5))(.*)","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.ruby"},"7":{"patterns":[{"include":"source.ruby"}]}},"comment":"heredoc with multiple inputs and indented terminator","end":"^\\\\s*\\\\6$","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?<={|{\\\\s|[^A-Za-z0-9_:@$]do|^do|[^A-Za-z0-9_:@$]do\\\\s|^do\\\\s)(\\\\|)","captures":{"1":{"name":"punctuation.separator.variable.ruby"}},"end":"(?<!\\\\|)(\\\\|)(?!\\\\|)","name":"meta.block.parameters.ruby","patterns":[{"begin":"(?![\\\\s,|(])","end":"(?=,|\\\\|\\\\s*)","patterns":[{"captures":{"1":{"name":"storage.type.variable.ruby"},"2":{"name":"variable.other.block.ruby"},"3":{"name":"variable.other.block.unused.ruby variable.other.constant.ruby"}},"match":"\\\\G([&*]?)([a-zA-Z][\\\\w_]*)|(_[\\\\w_]*)"}]},{"match":",","name":"punctuation.separator.variable.ruby"}]},{"match":"=>","name":"punctuation.separator.key-value"},{"match":"->","name":"support.function.kernel.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"},{"match":"(?<=^|[ \\\\t!])!|&&|\\\\|\\\\||\\\\^","name":"keyword.operator.logical.ruby"},{"captures":{"1":{"name":"keyword.operator.logical.ruby"}},"comment":"Safe navigation operator","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"},{"begin":"(?<=[^\\\\.]\\\\.|::)(?=[a-zA-Z][a-zA-Z0-9_!?]*[^a-zA-Z0-9_!?])","end":"(?<=[a-zA-Z0-9_!?])(?=[^a-zA-Z0-9_!?])","name":"meta.function-call.ruby","patterns":[{"match":"([a-zA-Z][a-zA-Z0-9_!?]*)(?=[^a-zA-Z0-9_!?])","name":"entity.name.function.ruby"}]},{"begin":"([a-zA-Z]\\\\w*[!?]?)(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.ruby"},"2":{"name":"punctuation.section.function.ruby"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.ruby"}},"name":"meta.function-call.ruby","patterns":[{"include":"$self"}]}],"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"}},"name":"meta.embedded.line.ruby","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"}]},"method_parameters":{"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"#params"},{"include":"$self"}],"repository":{"braces":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.scope.begin.ruby"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.scope.end.ruby"}},"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"$self"}]},"brackets":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"$self"}]},"params":{"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*))"},"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":"#brackets"},{"include":"$self"}]}}},"nest_brackets":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#nest_brackets"}]},"nest_brackets_i":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},"nest_brackets_r":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},"nest_curly":{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#nest_curly"}]},"nest_curly_and_self":{"patterns":[{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#nest_curly_and_self"}]},{"include":"$self"}]},"nest_curly_i":{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},"nest_curly_r":{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},"nest_ltgt":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#nest_ltgt"}]},"nest_ltgt_i":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},"nest_ltgt_r":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},"nest_parens":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#nest_parens"}]},"nest_parens_i":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},"nest_parens_r":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},"regex_sub":{"patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.ruby"},"3":{"name":"punctuation.definition.arbitrary-repetition.ruby"}},"match":"({)\\\\d+(,\\\\d+)?(})","name":"string.regexp.arbitrary-repetition.ruby"},{"begin":"\\\\[(?:\\\\^?])?","captures":{"0":{"name":"punctuation.definition.character-class.ruby"}},"end":"]","name":"string.regexp.character-class.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":"string.regexp.group.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?","endCaptures":{"0":{"name":"punctuation.definition.comment.ruby"}},"name":"comment.line.number-sign.ruby"}]},"yard":{"patterns":[{"include":"#yard_comment"},{"include":"#yard_param_types"},{"include":"#yard_option"},{"include":"#yard_tag"},{"include":"#yard_types"},{"include":"#yard_directive"},{"include":"#yard_see"},{"include":"#yard_macro_attribute"}]},"yard_comment":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\\\\s|$)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"}},"comment":"For YARD tags that follow the tag-comment pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_continuation":{"match":"^\\\\s*#","name":"punctuation.definition.comment.ruby"},"yard_directive":{"begin":"^(\\\\s*)(#)(\\\\s*)(@!)(endgroup|group|method|parse|scope|visibility)(\\\\s+((\\\\[).+(])))?(?=\\\\s)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"}},"comment":"For YARD directives","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_macro_attribute":{"begin":"^(\\\\s*)(#)(\\\\s*)(@!)(attribute|macro)(\\\\s+((\\\\[).+(])))?(?=\\\\s)(\\\\s+([a-z_]\\\\w*:?))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"11":{"name":"comment.line.parameter.yard.ruby"}},"comment":"separate rule for attribute and macro tags because name goes after []","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_option":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(option)(?=\\\\s)(?>\\\\s+([a-z_]\\\\w*:?))?(?>\\\\s+((\\\\[).+(])))?(?>\\\\s+((\\\\S*)))?(?>\\\\s+((\\\\().+(\\\\))))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"6":{"name":"comment.line.parameter.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"10":{"name":"comment.line.keyword.yard.ruby"},"11":{"name":"comment.line.hashkey.yard.ruby"},"12":{"name":"comment.line.defaultvalue.yard.ruby"},"13":{"name":"comment.line.punctuation.yard.ruby"},"14":{"name":"comment.line.punctuation.yard.ruby"}},"comment":"For YARD option tag that follow the tag-name-types-key-(value)-description pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_param_types":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\\\s)(?>\\\\s+(?>([a-z_]\\\\w*:?)|((\\\\[).+(]))))?(?>\\\\s+(?>((\\\\[).+(]))|([a-z_]\\\\w*:?)))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"6":{"name":"comment.line.parameter.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"10":{"name":"comment.line.type.yard.ruby"},"11":{"name":"comment.line.punctuation.yard.ruby"},"12":{"name":"comment.line.punctuation.yard.ruby"},"13":{"name":"comment.line.parameter.yard.ruby"}},"comment":"For YARD tags that follow the tag-name-types-description or tag-types-name-description pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_see":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(see)(?=\\\\s)(\\\\s+(.+?))?(?=\\\\s|$)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.parameter.yard.ruby"}},"comment":"separate rule for @see because name could contain url","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_tag":{"captures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"}},"comment":"For YARD tags that are just the tag","match":"^(\\\\s*)(#)(\\\\s*)(@)(private)$","name":"comment.line.number-sign.ruby"},"yard_types":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(raise|return|yield(?:return)?)(?=\\\\s)(\\\\s+((\\\\[).+(])))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"}},"comment":"For YARD tags that follow the tag-types-comment pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]}},"scopeName":"source.ruby","embeddedLangs":["html","haml","xml","sql","graphql","css","cpp","c","javascript","shellscript","lua","yaml"],"aliases":["rb"]}`)),L=[...e,...n,...t,...a,...r,...i,...u,...c,...o,...s,...d,...m,b];export{L as default};
1
+ import e from"./index.es378-B9aRQ00Z.js";import n from"./index.es371-DmqxEYIc.js";import t from"./index.es507-DKp0nulG.js";import a from"./index.es470-COK4E0Yg.js";import r from"./index.es368-BBVgx6aX.js";import i from"./index.es331-BPhBrDlE.js";import u from"./index.es328-OrbxFN0T.js";import c from"./index.es316-C3t2pwGQ.js";import o from"./index.es386-ySlJ1b_l.js";import s from"./index.es463-atvbtKCR.js";import d from"./index.es405-CgiLlAXi.js";import m from"./index.es509-CVw76BM1.js";import"./index.es385-xI-RfyKK.js";import"./index.es490-Dj6nwHGl.js";import"./index.es395-BAng5TT0.js";import"./index.es487-B6W0miNI.js";import"./index.es450-DWJ3fJO_.js";import"./index.es365-iXnPxtgs.js";const b=Object.freeze(JSON.parse(`{"displayName":"Ruby","name":"ruby","patterns":[{"captures":{"1":{"name":"keyword.control.class.ruby"},"2":{"name":"entity.name.type.class.ruby"},"5":{"name":"punctuation.separator.namespace.ruby"},"7":{"name":"punctuation.separator.inheritance.ruby"},"8":{"name":"entity.other.inherited-class.ruby"},"11":{"name":"punctuation.separator.namespace.ruby"}},"comment":"class Namespace::ClassName < OtherNamespace::OtherClassName","match":"\\b(class)\\\\s+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)\\\\s*((<)\\\\s*(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*))?","name":"meta.class.ruby"},{"captures":{"1":{"name":"keyword.control.module.ruby"},"2":{"name":"entity.name.type.module.ruby"},"5":{"name":"punctuation.separator.namespace.ruby"}},"match":"\\b(module)\\\\s+(([a-zA-Z0-9_]+)((::)[a-zA-Z0-9_]+)*)","name":"meta.module.ruby"},{"captures":{"1":{"name":"keyword.control.class.ruby"},"2":{"name":"punctuation.separator.inheritance.ruby"}},"match":"\\b(class)\\\\s*(<<)\\\\s*","name":"meta.class.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":"variable.ruby"},"3":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable and/or assignment","match":"^\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((&&|\\\\|\\\\|)=)"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"},"5":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable and/or assignment in a condition","match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((&&|\\\\|\\\\|)=)"},{"captures":{"1":{"name":"variable.ruby"},"3":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable operation assignment (+=, -=, *=, /=)","match":"^\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((\\\\+|\\\\*|-|\\\\/|%|\\\\*\\\\*|&|\\\\||\\\\^|<<|>>)=)"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"},"5":{"name":"keyword.operator.assignment.augmented.ruby"}},"comment":"A local variable operation assignment in a condition","match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*((\\\\+|\\\\*|-|\\\\/|%|\\\\*\\\\*|&|\\\\||\\\\^|<<|>>)=)"},{"captures":{"1":{"name":"variable.ruby"}},"comment":"A local variable assignment","match":"^\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*=[^=>]"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"}},"comment":"A local variable assignment in a condition","match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([a-z]([A-Za-z0-9_])*)\\\\s*=[^=>]"},{"captures":{"1":{"name":"punctuation.definition.constant.hashkey.ruby"}},"comment":"symbols as hash key (1.9 syntax)","match":"(?>[a-zA-Z_]\\\\w*(?>[?!])?)(:)(?!:)","name":"constant.language.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.language.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|break|next|redo|retry|return|super|undef|yield)\\\\b(?![?!])|\\\\bdefined\\\\?|\\\\b(block_given|iterator)\\\\?","name":"keyword.control.pseudo-method.ruby"},{"match":"\\\\bnil\\\\b(?![?!])","name":"constant.language.nil.ruby"},{"match":"\\\\b(true|false)\\\\b(?![?!])","name":"constant.language.boolean.ruby"},{"match":"\\\\b(__(FILE|LINE)__)\\\\b(?![?!])","name":"variable.language.ruby"},{"match":"\\\\bself\\\\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|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\\\b(?![?!])","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+|~|=|/|\\\\\\\\|,|;|\\\\.|<|>|_|\\\\*|\\\\$|\\\\?|:|\\"|-[0adFiIlpv])","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|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\\\b(?![?!])|autoload\\\\?|exit!)","name":"support.function.kernel.ruby"},{"match":"\\\\b[_A-Z]\\\\w*\\\\b","name":"variable.other.constant.ruby"},{"begin":"(->)\\\\(","beginCaptures":{"1":{"name":"support.function.kernel.ruby"}},"comment":"Lambda parameters.","end":"\\\\)","patterns":[{"begin":"(?=[&*_a-zA-Z])","end":"(?=[,)])","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"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 an explanation.","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.ruby"}},"name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?=[&*_a-zA-Z])","end":"(?=[,)])","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"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":"(?=;)|(?<=[\\\\w\\\\])}\`'\\"!?])(?=\\\\s*#|\\\\s*$)","name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?=[&*_a-zA-Z])","end":"(?=,|;|\\\\s*#|\\\\s*$)","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"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)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0(?:[xX]\\\\h(?>_?\\\\h)*|[oO]?[0-7](?>_?[0-7])*|[bB][01](?>_?[01])*|[dD]\\\\d(?>_?\\\\d)*))\\\\b","name":"constant.numeric.ruby"},{"begin":":'","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"comment":"symbol literal with '' delimiter","end":"'","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\['\\\\\\\\]","name":"constant.character.escape.ruby"}]},{"begin":":\\"","beginCaptures":{"0":{"name":"punctuation.section.symbol.begin.ruby"}},"comment":"symbol literal with \\"\\" delimiter","end":"\\"","endCaptures":{"0":{"name":"punctuation.section.symbol.end.ruby"}},"name":"constant.language.symbol.interpolated.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":"string literal with '' delimiter","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":"string literal with interpolation and \\"\\" delimiter","end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.double.interpolated.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"}]},{"begin":"(?<![\\\\w)])((/))(?![?*+])(?=(?:\\\\\\\\/|[^/])*+/[eimnosux]*\\\\s*(?:[)\\\\]}#.,?:]|\\\\|\\\\||&&|<=>|=>|==|=~|!~|!=|;|$|if|else|elsif|then|do|end|unless|while|until|or|and)|$)","captures":{"1":{"name":"string.regexp.interpolated.ruby"},"2":{"name":"punctuation.section.regexp.ruby"}},"comment":"regular expression literal with interpolation","contentName":"string.regexp.interpolated.ruby","end":"((/[eimnosux]*))","patterns":[{"include":"#regex_sub"}]},{"begin":"%r{","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"}[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},{"begin":"%r\\\\[","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"][eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},{"begin":"%r\\\\(","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"\\\\)[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},{"begin":"%r<","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":">[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},{"begin":"%r([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"\\\\1[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"}]},{"begin":"%I\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%I\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%I<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%I{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%I([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%i\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%i\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%i<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%i{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%i([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"begin":"%W\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%W\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%W<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%W{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%W([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%w\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%w\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%w<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%w{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%w([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"begin":"%[Qx]?\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%[Qx]?\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%[Qx]?{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%[Qx]?<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%[Qx]([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%([^\\\\w\\\\s=])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%q\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%q<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%q\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%q{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%q([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"begin":"%s\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\\\\\)|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%s<","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\>|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%s\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\]|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%s{","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\}|\\\\\\\\\\\\\\\\","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%s([^\\\\w])","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"comment":"Cant be named because its not necessarily an escape.","match":"\\\\\\\\."}]},{"captures":{"1":{"name":"punctuation.definition.constant.ruby"}},"comment":"symbols","match":"(?<!:)(:)(?>[$a-zA-Z_]\\\\w*(?>[?!]|=(?![>=]))?|===?|<=>|>[>=]?|<[<=]?|[%&\`/\\\\|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[]=?|@@?[a-zA-Z_]\\\\w*)","name":"constant.language.symbol.ruby"},{"begin":"^=begin","captures":{"0":{"name":"punctuation.definition.comment.ruby"}},"comment":"multiline comments","end":"^=end","name":"comment.block.documentation.ruby"},{"include":"#yard"},{"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":"^__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"}]}]},{"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]+_|)HAML)\\\\b\\\\1))","comment":"Heredoc with embedded HAML","end":"(?!\\\\G)","name":"meta.embedded.block.haml","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)HAML)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"text.haml","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.haml"},{"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]+_|)(?:GRAPHQL|GQL))\\\\b\\\\1))","comment":"Heredoc with embedded GraphQL","end":"(?!\\\\G)","name":"meta.embedded.block.graphql","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)(?:GRAPHQL|GQL))\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.graphql","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.graphql"},{"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.cpp","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)CPP)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.cpp","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.cpp"},{"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":"(?=(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)(?:YAML|YML))\\\\b\\\\1))","comment":"Heredoc with embedded YAML","end":"(?!\\\\G)","name":"meta.embedded.block.yaml","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)(?:YAML|YML))\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"source.yaml","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.yaml"},{"include":"#escaped_char"}]}]},{"begin":"(?=(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)SLIM)\\\\b\\\\1))","comment":"Heredoc with embedded Slim","end":"(?!\\\\G)","name":"meta.embedded.block.slim","patterns":[{"begin":"(?><<[-~]([\\"'\`]?)((?:[_\\\\w]+_|)SLIM)\\\\b\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"contentName":"text.slim","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.slim"},{"include":"#escaped_char"}]}]},{"begin":"(?>=\\\\s*<<([\\"'\`]?)(\\\\w+)\\\\1)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"^\\\\2$","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?>((<<[-~]([\\"'\`]?)(\\\\w+)\\\\3,\\\\s?)*<<[-~]([\\"'\`]?)(\\\\w+)\\\\5))(.*)","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.ruby"},"7":{"patterns":[{"include":"source.ruby"}]}},"comment":"heredoc with multiple inputs and indented terminator","end":"^\\\\s*\\\\6$","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.unquoted.heredoc.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?<={|{\\\\s|[^A-Za-z0-9_:@$]do|^do|[^A-Za-z0-9_:@$]do\\\\s|^do\\\\s)(\\\\|)","captures":{"1":{"name":"punctuation.separator.variable.ruby"}},"end":"(?<!\\\\|)(\\\\|)(?!\\\\|)","name":"meta.block.parameters.ruby","patterns":[{"begin":"(?![\\\\s,|(])","end":"(?=,|\\\\|\\\\s*)","patterns":[{"captures":{"1":{"name":"storage.type.variable.ruby"},"2":{"name":"variable.other.block.ruby"},"3":{"name":"variable.other.block.unused.ruby variable.other.constant.ruby"}},"match":"\\\\G([&*]?)([a-zA-Z][\\\\w_]*)|(_[\\\\w_]*)"}]},{"match":",","name":"punctuation.separator.variable.ruby"}]},{"match":"=>","name":"punctuation.separator.key-value"},{"match":"->","name":"support.function.kernel.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"},{"match":"(?<=^|[ \\\\t!])!|&&|\\\\|\\\\||\\\\^","name":"keyword.operator.logical.ruby"},{"captures":{"1":{"name":"keyword.operator.logical.ruby"}},"comment":"Safe navigation operator","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"},{"begin":"(?<=[^\\\\.]\\\\.|::)(?=[a-zA-Z][a-zA-Z0-9_!?]*[^a-zA-Z0-9_!?])","end":"(?<=[a-zA-Z0-9_!?])(?=[^a-zA-Z0-9_!?])","name":"meta.function-call.ruby","patterns":[{"match":"([a-zA-Z][a-zA-Z0-9_!?]*)(?=[^a-zA-Z0-9_!?])","name":"entity.name.function.ruby"}]},{"begin":"([a-zA-Z]\\\\w*[!?]?)(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.ruby"},"2":{"name":"punctuation.section.function.ruby"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.ruby"}},"name":"meta.function-call.ruby","patterns":[{"include":"$self"}]}],"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"}},"name":"meta.embedded.line.ruby","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"}]},"method_parameters":{"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"#params"},{"include":"$self"}],"repository":{"braces":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.scope.begin.ruby"}},"end":"\\\\}","endCaptures":{"0":{"name":"punctuation.section.scope.end.ruby"}},"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"$self"}]},"brackets":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"$self"}]},"params":{"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*))"},"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":"#brackets"},{"include":"$self"}]}}},"nest_brackets":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#nest_brackets"}]},"nest_brackets_i":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},"nest_brackets_r":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},"nest_curly":{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#nest_curly"}]},"nest_curly_and_self":{"patterns":[{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#nest_curly_and_self"}]},{"include":"$self"}]},"nest_curly_i":{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},"nest_curly_r":{"begin":"{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},"nest_ltgt":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#nest_ltgt"}]},"nest_ltgt_i":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},"nest_ltgt_r":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},"nest_parens":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#nest_parens"}]},"nest_parens_i":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},"nest_parens_r":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},"regex_sub":{"patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.ruby"},"3":{"name":"punctuation.definition.arbitrary-repetition.ruby"}},"match":"({)\\\\d+(,\\\\d+)?(})","name":"string.regexp.arbitrary-repetition.ruby"},{"begin":"\\\\[(?:\\\\^?])?","captures":{"0":{"name":"punctuation.definition.character-class.ruby"}},"end":"]","name":"string.regexp.character-class.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":"string.regexp.group.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?","endCaptures":{"0":{"name":"punctuation.definition.comment.ruby"}},"name":"comment.line.number-sign.ruby"}]},"yard":{"patterns":[{"include":"#yard_comment"},{"include":"#yard_param_types"},{"include":"#yard_option"},{"include":"#yard_tag"},{"include":"#yard_types"},{"include":"#yard_directive"},{"include":"#yard_see"},{"include":"#yard_macro_attribute"}]},"yard_comment":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\\\\s|$)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"}},"comment":"For YARD tags that follow the tag-comment pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_continuation":{"match":"^\\\\s*#","name":"punctuation.definition.comment.ruby"},"yard_directive":{"begin":"^(\\\\s*)(#)(\\\\s*)(@!)(endgroup|group|method|parse|scope|visibility)(\\\\s+((\\\\[).+(])))?(?=\\\\s)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"}},"comment":"For YARD directives","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_macro_attribute":{"begin":"^(\\\\s*)(#)(\\\\s*)(@!)(attribute|macro)(\\\\s+((\\\\[).+(])))?(?=\\\\s)(\\\\s+([a-z_]\\\\w*:?))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"11":{"name":"comment.line.parameter.yard.ruby"}},"comment":"separate rule for attribute and macro tags because name goes after []","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_option":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(option)(?=\\\\s)(?>\\\\s+([a-z_]\\\\w*:?))?(?>\\\\s+((\\\\[).+(])))?(?>\\\\s+((\\\\S*)))?(?>\\\\s+((\\\\().+(\\\\))))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"6":{"name":"comment.line.parameter.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"10":{"name":"comment.line.keyword.yard.ruby"},"11":{"name":"comment.line.hashkey.yard.ruby"},"12":{"name":"comment.line.defaultvalue.yard.ruby"},"13":{"name":"comment.line.punctuation.yard.ruby"},"14":{"name":"comment.line.punctuation.yard.ruby"}},"comment":"For YARD option tag that follow the tag-name-types-key-(value)-description pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_param_types":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\\\s)(?>\\\\s+(?>([a-z_]\\\\w*:?)|((\\\\[).+(]))))?(?>\\\\s+(?>((\\\\[).+(]))|([a-z_]\\\\w*:?)))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"6":{"name":"comment.line.parameter.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"10":{"name":"comment.line.type.yard.ruby"},"11":{"name":"comment.line.punctuation.yard.ruby"},"12":{"name":"comment.line.punctuation.yard.ruby"},"13":{"name":"comment.line.parameter.yard.ruby"}},"comment":"For YARD tags that follow the tag-name-types-description or tag-types-name-description pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_see":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(see)(?=\\\\s)(\\\\s+(.+?))?(?=\\\\s|$)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.parameter.yard.ruby"}},"comment":"separate rule for @see because name could contain url","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_tag":{"captures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"}},"comment":"For YARD tags that are just the tag","match":"^(\\\\s*)(#)(\\\\s*)(@)(private)$","name":"comment.line.number-sign.ruby"},"yard_types":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(raise|return|yield(?:return)?)(?=\\\\s)(\\\\s+((\\\\[).+(])))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"}},"comment":"For YARD tags that follow the tag-types-comment pattern","contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]}},"scopeName":"source.ruby","embeddedLangs":["html","haml","xml","sql","graphql","css","cpp","c","javascript","shellscript","lua","yaml"],"aliases":["rb"]}`)),L=[...e,...n,...t,...a,...r,...i,...u,...c,...o,...s,...d,...m,b];export{L as default};
@@ -1 +1 @@
1
- import e from"./index.es404-COK4E0Yg.js";const t=Object.freeze(JSON.parse(`{"displayName":"SAS","fileTypes":["sas"],"foldingStartMarker":"(?i:(proc|data|%macro).*;$)","foldingStopMarker":"(?i:(run|quit|%mend)\\\\s?);","name":"sas","patterns":[{"include":"#starComment"},{"include":"#blockComment"},{"include":"#macro"},{"include":"#constant"},{"include":"#quote"},{"include":"#operator"},{"begin":"\\\\b(?i:(data))\\\\s+","beginCaptures":{"1":{"name":"keyword.other.sas"}},"comment":"Begins a DATA step and provides names for any output SAS data sets, views, or programs.","end":"(;)","patterns":[{"include":"#blockComment"},{"include":"#dataSet"},{"captures":{"1":{"name":"keyword.other.sas"},"2":{"name":"keyword.other.sas"}},"match":"(?i:(?:(stack|pgm|view|source)\\\\s?=\\\\s?)|(debug|nesting|nolist))"}]},{"begin":"\\\\b(?i:(set|update|modify|merge))\\\\s+","beginCaptures":{"1":{"name":"support.function.sas"},"2":{"name":"entity.name.class.sas"},"3":{"name":"entity.name.class.sas"}},"comment":"DATA set File-Handling Statements for DATA step","end":"(;)","patterns":[{"include":"#blockComment"},{"include":"#dataSet"}]},{"match":"(?i:\\\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\\\b)","name":"keyword.control.sas"},{"captures":{"1":{"name":"support.class.sas"},"3":{"name":"entity.name.function.sas"}},"match":"(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\\\b))\\\\s*(\\\\w*)","name":"keyword.other.sas"},{"begin":"(?i:\\\\b(proc\\\\s*(sql))\\\\b)","beginCaptures":{"1":{"name":"support.function.sas"},"2":{"name":"support.class.sas"}},"comment":"Looks like for this to work there must be a *name* as well as the patterns/include bit.","end":"(?i:\\\\b(quit)\\\\s*;)","endCaptures":{"1":{"name":"keyword.control.sas"}},"name":"meta.sql.sas","patterns":[{"include":"#starComment"},{"include":"#blockComment"},{"include":"source.sql"}]},{"match":"(?i:\\\\b(by|label|format)\\\\b)","name":"keyword.datastep.sas"},{"captures":{"1":{"name":"support.function.sas"},"2":{"name":"support.class.sas"}},"match":"(?i:\\\\b(proc (\\\\w+))\\\\b)","name":"meta.function-call.sas"},{"match":"(?i:\\\\b(_n_|_error_)\\\\b)","name":"variable.language.sas"},{"captures":{"1":{"name":"support.class.sas"}},"match":"\\\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\\\b","name":"support.function.sas"}],"repository":{"blockComment":{"patterns":[{"begin":"\\\\/\\\\*","end":"\\\\*\\\\/","name":"comment.block.slashstar.sas"}]},"constant":{"patterns":[{"comment":"numeric constant","match":"(?<![&\\\\}])\\\\b[0-9]*\\\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\\\b","name":"constant.numeric.sas"},{"comment":"single quote numeric-type constant","match":"(')([^']+)(')(dt|[dt])","name":"constant.numeric.quote.single.sas"},{"comment":"double quote numeric-type constant","match":"(\\")([^\\"]+)(\\")(dt|[dt])","name":"constant.numeric.quote.double.sas"}]},"dataSet":{"patterns":[{"begin":"((\\\\w+)\\\\.)?(\\\\w+)\\\\s?\\\\(","beginCaptures":{"2":{"name":"entity.name.class.libref.sas"},"3":{"name":"entity.name.class.dsname.sas"}},"comment":"data set with options","end":"\\\\)","patterns":[{"include":"#dataSetOptions"},{"include":"#blockComment"},{"include":"#macro"},{"include":"#constant"},{"include":"#quote"},{"include":"#operator"}]},{"captures":{"2":{"name":"entity.name.class.libref.sas"},"3":{"name":"entity.name.class.dsname.sas"}},"comment":"data set without options","match":"\\\\b((\\\\w+)\\\\.)?(\\\\w+)\\\\b"}]},"dataSetOptions":{"patterns":[{"match":"(?<=\\\\s|\\\\(|\\\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\\\s?=","name":"keyword.other.sas"}]},"macro":{"patterns":[{"match":"(&+(?i:[a-z_]([a-z0-9_]+)?)(\\\\.+)?)\\\\b","name":"variable.other.macro.sas"}]},"operator":{"patterns":[{"match":"([\\\\+\\\\-\\\\*\\\\^\\\\/])","name":"keyword.operator.arithmetic.sas"},{"match":"\\\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\\\b","name":"keyword.operator.comparison.sas"},{"match":"([¬<>^~]?=(:)?|>|<|\\\\||!|¦|¬|^|~|<>|><|\\\\|\\\\|)","name":"keyword.operator.sas"}]},"quote":{"patterns":[{"begin":"(?<!%)(')","comment":"single quoted string block","end":"(')([bx])?","name":"string.quoted.single.sas"},{"begin":"(\\")","comment":"double quoted string block","end":"(\\")([bx])?","name":"string.quoted.double.sas"}]},"starComment":{"patterns":[{"include":"#blockcomment"},{"begin":"(?<=;)[\\\\s%]*\\\\*","end":";","name":"comment.line.inline.star.sas"},{"begin":"^[\\\\s%]*\\\\*","end":";","name":"comment.line.start.sas"}]}},"scopeName":"source.sas","embeddedLangs":["sql"]}`)),a=[...e,t];export{a as default};
1
+ import e from"./index.es470-COK4E0Yg.js";const t=Object.freeze(JSON.parse(`{"displayName":"SAS","fileTypes":["sas"],"foldingStartMarker":"(?i:(proc|data|%macro).*;$)","foldingStopMarker":"(?i:(run|quit|%mend)\\\\s?);","name":"sas","patterns":[{"include":"#starComment"},{"include":"#blockComment"},{"include":"#macro"},{"include":"#constant"},{"include":"#quote"},{"include":"#operator"},{"begin":"\\\\b(?i:(data))\\\\s+","beginCaptures":{"1":{"name":"keyword.other.sas"}},"comment":"Begins a DATA step and provides names for any output SAS data sets, views, or programs.","end":"(;)","patterns":[{"include":"#blockComment"},{"include":"#dataSet"},{"captures":{"1":{"name":"keyword.other.sas"},"2":{"name":"keyword.other.sas"}},"match":"(?i:(?:(stack|pgm|view|source)\\\\s?=\\\\s?)|(debug|nesting|nolist))"}]},{"begin":"\\\\b(?i:(set|update|modify|merge))\\\\s+","beginCaptures":{"1":{"name":"support.function.sas"},"2":{"name":"entity.name.class.sas"},"3":{"name":"entity.name.class.sas"}},"comment":"DATA set File-Handling Statements for DATA step","end":"(;)","patterns":[{"include":"#blockComment"},{"include":"#dataSet"}]},{"match":"(?i:\\\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\\\b)","name":"keyword.control.sas"},{"captures":{"1":{"name":"support.class.sas"},"3":{"name":"entity.name.function.sas"}},"match":"(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\\\b))\\\\s*(\\\\w*)","name":"keyword.other.sas"},{"begin":"(?i:\\\\b(proc\\\\s*(sql))\\\\b)","beginCaptures":{"1":{"name":"support.function.sas"},"2":{"name":"support.class.sas"}},"comment":"Looks like for this to work there must be a *name* as well as the patterns/include bit.","end":"(?i:\\\\b(quit)\\\\s*;)","endCaptures":{"1":{"name":"keyword.control.sas"}},"name":"meta.sql.sas","patterns":[{"include":"#starComment"},{"include":"#blockComment"},{"include":"source.sql"}]},{"match":"(?i:\\\\b(by|label|format)\\\\b)","name":"keyword.datastep.sas"},{"captures":{"1":{"name":"support.function.sas"},"2":{"name":"support.class.sas"}},"match":"(?i:\\\\b(proc (\\\\w+))\\\\b)","name":"meta.function-call.sas"},{"match":"(?i:\\\\b(_n_|_error_)\\\\b)","name":"variable.language.sas"},{"captures":{"1":{"name":"support.class.sas"}},"match":"\\\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\\\b","name":"support.function.sas"}],"repository":{"blockComment":{"patterns":[{"begin":"\\\\/\\\\*","end":"\\\\*\\\\/","name":"comment.block.slashstar.sas"}]},"constant":{"patterns":[{"comment":"numeric constant","match":"(?<![&\\\\}])\\\\b[0-9]*\\\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\\\b","name":"constant.numeric.sas"},{"comment":"single quote numeric-type constant","match":"(')([^']+)(')(dt|[dt])","name":"constant.numeric.quote.single.sas"},{"comment":"double quote numeric-type constant","match":"(\\")([^\\"]+)(\\")(dt|[dt])","name":"constant.numeric.quote.double.sas"}]},"dataSet":{"patterns":[{"begin":"((\\\\w+)\\\\.)?(\\\\w+)\\\\s?\\\\(","beginCaptures":{"2":{"name":"entity.name.class.libref.sas"},"3":{"name":"entity.name.class.dsname.sas"}},"comment":"data set with options","end":"\\\\)","patterns":[{"include":"#dataSetOptions"},{"include":"#blockComment"},{"include":"#macro"},{"include":"#constant"},{"include":"#quote"},{"include":"#operator"}]},{"captures":{"2":{"name":"entity.name.class.libref.sas"},"3":{"name":"entity.name.class.dsname.sas"}},"comment":"data set without options","match":"\\\\b((\\\\w+)\\\\.)?(\\\\w+)\\\\b"}]},"dataSetOptions":{"patterns":[{"match":"(?<=\\\\s|\\\\(|\\\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\\\s?=","name":"keyword.other.sas"}]},"macro":{"patterns":[{"match":"(&+(?i:[a-z_]([a-z0-9_]+)?)(\\\\.+)?)\\\\b","name":"variable.other.macro.sas"}]},"operator":{"patterns":[{"match":"([\\\\+\\\\-\\\\*\\\\^\\\\/])","name":"keyword.operator.arithmetic.sas"},{"match":"\\\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\\\b","name":"keyword.operator.comparison.sas"},{"match":"([¬<>^~]?=(:)?|>|<|\\\\||!|¦|¬|^|~|<>|><|\\\\|\\\\|)","name":"keyword.operator.sas"}]},"quote":{"patterns":[{"begin":"(?<!%)(')","comment":"single quoted string block","end":"(')([bx])?","name":"string.quoted.single.sas"},{"begin":"(\\")","comment":"double quoted string block","end":"(\\")([bx])?","name":"string.quoted.double.sas"}]},"starComment":{"patterns":[{"include":"#blockcomment"},{"begin":"(?<=;)[\\\\s%]*\\\\*","end":";","name":"comment.line.inline.star.sas"},{"begin":"^[\\\\s%]*\\\\*","end":";","name":"comment.line.start.sas"}]}},"scopeName":"source.sas","embeddedLangs":["sql"]}`)),a=[...e,t];export{a as default};