tocco-admin 1.0.7 → 1.0.8

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 (438) hide show
  1. package/changelog.md +10 -0
  2. package/dist/010d0560a00a032c33da819e3c86596a.js +1 -368
  3. package/dist/029ed9161a8d24a9c2ba97124020989d.js +1 -9
  4. package/dist/02d5c4961ca855a88b1cd3e1b7fa7aa2.js +1 -113
  5. package/dist/03371bf1d5cbb1eab58e3a0130d1e9c2.js +1 -15001
  6. package/dist/03487ba89c7b63069d63c1b3802a472c.js +1 -24
  7. package/dist/03748243ac7148ca150ba06c2919ff81.js +1 -271
  8. package/dist/03980cb12dacd26148c22bb61fce440f.js +1 -9
  9. package/dist/03aae8272914723a7bf85b984385032c.js +1 -9
  10. package/dist/04770a551c5b6daa744be9b180a8d0fe.js +1 -13311
  11. package/dist/06d958315fc6cdbb28576b03e43203aa.js +1 -9
  12. package/dist/07101530302fe1d03dcd731992f7a899.js +1 -869
  13. package/dist/0731d7568a06d2e28351781370bc52bb.js +1 -445
  14. package/dist/0794fa2b9c882c72fa7d586069b61055.js +1 -3608
  15. package/dist/0872e65446d05c1c443180c6280b015f.js +1 -214
  16. package/dist/08b9f3e305b5e3e0b81f7848fa7f3b6b.js +1 -105
  17. package/dist/09563004132aabcfcc186943555a92a1.js +1 -263
  18. package/dist/0a1d9862d917663419ac2dd2e8193267.js +1 -9
  19. package/dist/0a858573915ab9b03fe79f98f8c51a04.js +1 -271
  20. package/dist/0a9cd3d62e7f1cd404606c50d9da86fb.js +1 -229
  21. package/dist/0beea7b55cf3b8c9f9b0bd46170bb30e.js +1 -238
  22. package/dist/0ec4bf56a876c2bf34ea174c584ce628.js +1 -97
  23. package/dist/0f418117fac55a859631143ad7d0e833.js +1 -1038
  24. package/dist/10132993df2cf9c9423b53a8a44379ab.js +1 -9
  25. package/dist/1034e3807d1bcf55cb564491950237ab.js +1 -9
  26. package/dist/104959bdb953a3792a203e98d2bf530f.js +1 -895
  27. package/dist/114c58e47951fe3f6d25f683e0cd54e7.js +1 -381
  28. package/dist/11b2d52156942feeb87b7c608276c49b.js +1 -119
  29. package/dist/11dc77ef2ea3a04834945a52f7de2072.js +1 -3208
  30. package/dist/12b520593765ef7e714d7fb3764633ed.js +1 -167
  31. package/dist/130340e2c62b9e858f186dab5f491e55.js +1 -9
  32. package/dist/1324f89bd8db0bae85b79b7f90f6c119.js +1 -418
  33. package/dist/13eda3507db9cbfb400f46b9b3ff6553.js +1 -9
  34. package/dist/1441681e52f3ae9ab33afbc5517359a0.js +1 -45
  35. package/dist/1533058f0ce13acdaa8d5bdc7d147bef.js +1 -9
  36. package/dist/1549fe09fd6b44aca96e2b1b7cbd93d0.js +1 -111
  37. package/dist/15f3800d33b854ba476c9daf1b9e0326.js +1 -9
  38. package/dist/16563bfaf4741097d38cc6ce3ccc1a2d.js +1 -2644
  39. package/dist/170487867de05784a96608617bdd544d.js +1 -9
  40. package/dist/179a93d3148b7edb72581279c3787d0c.js +1 -353
  41. package/dist/17dc98279d24649d3ca77cbce8c44e83.js +1 -9
  42. package/dist/1850762f1bfaf1a1044765b02b243ed4.js +1 -262
  43. package/dist/18cfa6de2de3832aa10439fbf963217a.js +1 -3035
  44. package/dist/18e63e724098792b95b076412a860636.js +1 -116
  45. package/dist/191feb6103c36b202bc01ba262916cdf.js +1 -9
  46. package/dist/19e684db1b08c82963634abc8b2c989f.js +1 -422
  47. package/dist/1abc9efccf77fd4527d1c2fc85d87e04.js +1 -647
  48. package/dist/1b15b9f88acaf59b96e59c6b5f32da12.js +1 -9
  49. package/dist/1b64f97eed4a3837a93f8bdd363295fb.js +1 -1873
  50. package/dist/1c02ec6ec024eee3ebb6b34fa8ff316f.js +1 -103
  51. package/dist/1c57b3481f295105588972ffa1305521.js +1 -9
  52. package/dist/1cc82820c232a82b5d8b6cb9e4152af3.js +1 -514
  53. package/dist/1cd3d09b5303cc37fa337225ed6a9132.js +1 -137
  54. package/dist/1e029a7f1f64457da4f54254d50ac59b.js +1 -95
  55. package/dist/1e26167b5f75d5b94add34f1f4d8b044.js +1 -380
  56. package/dist/1e4131e1241a5b81d54c7d9cb66b0e87.js +1 -254
  57. package/dist/1fe2d583da5f073431d81a6ea13ffc0c.js +1 -275
  58. package/dist/1fee62e3e043728a265935971fa26200.js +1 -981
  59. package/dist/211511e7b374f57ad31acaf49dbdccb1.js +1 -9
  60. package/dist/2183252fe9e1b88fcf2bc454d6fd9273.js +1 -115
  61. package/dist/222d52530e9db0a0ec565c6306c5db35.js +1 -104
  62. package/dist/2267d20fd89c81a461e38abecdb8fcdc.js +1 -282
  63. package/dist/2272c6632c52c3e402ab27b8045ab8f1.js +1 -9
  64. package/dist/23bb1a9f279e7a732bfd405350aab114.js +1 -9
  65. package/dist/23da8ba64540ff4aa68a34d3445db680.js +1 -232
  66. package/dist/243c0c0572ab9866e02e18821558a1c5.js +1 -89
  67. package/dist/244b1a234ec1728d0268214de601449d.js +1 -343
  68. package/dist/24a3ff38afde257888d755ece9bfd704.js +1 -9
  69. package/dist/25718a469574ade47e23567d8c543169.js +1 -9
  70. package/dist/25c99a71d30112583893bc5277402c46.js +1 -329
  71. package/dist/25eda4bb98e40a82cfd5b4bf9fbc06ec.js +1 -9
  72. package/dist/263f7107e9357b1c91997e1a21b59ff5.js +1 -2025
  73. package/dist/26fb247a2e0630e1f435cb4d91ec51fd.js +1 -397
  74. package/dist/27730a0bdc6f430cc85049a46a73a029.js +1 -9
  75. package/dist/27ccb71fa24357a0919a861351d5b82d.js +1 -2806
  76. package/dist/28474eb7ee45a125e49cc5cbe69e336f.js +1 -1193
  77. package/dist/28785bea435918d49b290d27bf660baa.js +1 -9
  78. package/dist/28acb3b48578dfd30dd555fff7c822f7.js +1 -312
  79. package/dist/291611f874a2bc54dbc291b52d74c512.js +1 -501
  80. package/dist/2b2fe1a34cdf81c656a47e493ca9d658.js +1 -257
  81. package/dist/2bcf741e1f2cb07989a722a6ba9c2ea7.js +1 -128
  82. package/dist/2d2a42eeeeec801ab35f2fff7d900e43.js +1 -330
  83. package/dist/2dd82c65030101b60dffccedd8741c6e.js +1 -9
  84. package/dist/2ddd0346681f9f12fd3a191245aa41df.js +1 -797
  85. package/dist/2f055ac4066041b9008dd6aebf9df34b.js +1 -9
  86. package/dist/2f5be3e3e9ab852d217168220854ea9b.js +1 -102
  87. package/dist/2f7c864f08b00c01f04ac22375f7ddd9.js +1 -520
  88. package/dist/2fc0239242a898632ca8aa451cb930c2.js +1 -9
  89. package/dist/2ff54aa3c655216f360438bc7f5b181a.js +1 -2742
  90. package/dist/30e80558090a09477e4466af8af4c40e.js +1 -135
  91. package/dist/34791bf31a4236531bc887b48f872c1c.js +1 -1090
  92. package/dist/34b3249d58303435b894a43d3776a5c3.js +1 -1433
  93. package/dist/3567d1ea443427e944a6f189a0898819.js +1 -9
  94. package/dist/3646668820dc96864fbed7746f805947.js +1 -452
  95. package/dist/36474100e81ab63c4ddbc94ab2cc8667.js +1 -799
  96. package/dist/365b89ceec577ebec0a39c938c2363f0.js +1 -263
  97. package/dist/367ad31e6d99d0021d05133b85bb9faf.js +1 -93
  98. package/dist/37172facd8a534a38f378ca2a9c7c11b.js +1 -9
  99. package/dist/37afa466cdb7fa8fc2e043164d48f29e.js +1 -13110
  100. package/dist/37ee3b5201ae2e2dc5dc8b1b20ad900e.js +1 -9
  101. package/dist/38270ad5088729f40c461c4a5a6bad5d.js +1 -248
  102. package/dist/3b190e5159c72fb7e27271956772bcba.js +1 -9
  103. package/dist/3b544bb2c5a4e7b225a4b50235a0fd6d.js +1 -9
  104. package/dist/3b6e7dc98c47eeafd851ca5072db4be6.js +1 -9
  105. package/dist/3bbf0faa999b08584dc971eab820113a.js +1 -1169
  106. package/dist/3c5b59a666c5d39d9ba9cc054d36a410.js +1 -9
  107. package/dist/3c71a5c0e85afc5486ee9ac29099843d.js +1 -230
  108. package/dist/3dcc18a5dee46b57ad7f85c0bee86802.js +1 -508
  109. package/dist/3df92508d7112d83474f31fe9590e289.js +1 -1015
  110. package/dist/3e277a4ce5486a806a00497aea8ecdd3.js +1 -502
  111. package/dist/3e3e2243675fa4fb4b320dc57daf2d4f.js +1 -346
  112. package/dist/3f55ba1c6515db2f98bb996c1a5bc9e3.js +1 -76
  113. package/dist/3f758ea78954547fed0a8d999691dd7c.js +1 -292
  114. package/dist/406884d5525e864955e9f5058526aa02.js +1 -101
  115. package/dist/40dc555a17f1c85020333a41f01dd9ba.js +1 -106
  116. package/dist/40e6f6cb52a24a747b1046614db3b164.js +1 -213
  117. package/dist/41d8a58fd52b6a06e8d3fb06cdabf67a.js +1 -989
  118. package/dist/42b4ce6de00994aa6bf7db7ff2f931a8.js +1 -1331
  119. package/dist/43a0e099f8283dc1c1c6bbd39148d98d.js +1 -867
  120. package/dist/440f4d477b586c7a6ba4c1c966ca79fc.js +1 -147
  121. package/dist/444ababf8edc26948943fbb45bd06a19.js +1 -259
  122. package/dist/44701e25bb6f2ab9ff18343f2357d1b0.js +1 -171
  123. package/dist/44ac2a2398075299754707d4bac7c276.js +1 -59
  124. package/dist/460c67d8fe31ef229704bd5ab6d1dd26.js +1 -942
  125. package/dist/4639c30a609d986a255ccc684404527e.js +1 -676
  126. package/dist/4700af84801dbda8a3880e3469c21130.js +1 -413
  127. package/dist/4736a562251eeaea46dd06892b489f35.js +1 -46
  128. package/dist/47541c23870e955fff15de4be490ba74.js +1 -112
  129. package/dist/47f0fbf038314894ac52f2d67466b5e9.js +1 -2848
  130. package/dist/4860a6a7c59b9ed5c779f7201dc1f591.js +1 -349
  131. package/dist/48e9351c5623d4da657ce7d5d0267ea6.js +1 -9
  132. package/dist/4a1dab236c2844d28f73c5c128afe299.js +1 -193
  133. package/dist/4b425eb8188febc5a89674b89a72d296.js +1 -798
  134. package/dist/4b61fe945e9e73aba22717e5d6f080df.js +1 -642
  135. package/dist/4bf3bc1fbdd26ac698fef1bdf26e3ff4.js +1 -9
  136. package/dist/4c2816c26725f7aae5b490142e31112f.js +1 -352
  137. package/dist/4ceabd28d8dc751f41002ebf2b6fed88.js +1 -539
  138. package/dist/4d143a2d103a9e376a9e3b55e680eef7.js +1 -310
  139. package/dist/4d8cb7033879cb7fcc7a43798e2bde22.js +1 -9
  140. package/dist/4e389cce6fb8f78845fab249bce43c0b.js +1 -9
  141. package/dist/4eed3725a00fc2bab78accdb014b7826.js +1 -325
  142. package/dist/4ef80ee74467e0297eec3cc03092da01.js +1 -9
  143. package/dist/506d44d8712a22011ce2bec8adbb19b2.js +1 -210
  144. package/dist/50c073327491a2ed3bfa2ebb466c4204.js +1 -25
  145. package/dist/51f903c5ce5284a63196247cffb5ca40.js +1 -9
  146. package/dist/5352ecd8e5f1a2637b48e18cc406edb1.js +1 -9
  147. package/dist/53e3600928916423671f3388e2d67844.js +1 -9
  148. package/dist/54b3396acd2c700969248de4b20cbf7c.js +1 -109
  149. package/dist/55892adefebc0d53993fb108151ed150.js +1 -207
  150. package/dist/57f4109bd1f06be4dc2bcb8ff7eaf1e5.js +1 -9
  151. package/dist/57f9654d8ecdebfb02c636e1889af2e4.js +1 -2698
  152. package/dist/582e24f5ba929e358fadfc7be4c18025.js +1 -9
  153. package/dist/58598705e7012f4ca1eb1dd21d3c59a5.js +1 -9
  154. package/dist/5861dfe4f2c7823623e82d0619c5bf06.js +1 -9
  155. package/dist/58aab872dbdb5e1607076e1935130e03.js +1 -9
  156. package/dist/595aef8d8b0a2017e2fc27db5703e0d1.js +1 -167
  157. package/dist/59cc05504a1c823b6d4796bf6b430822.js +1 -9
  158. package/dist/5a496ae20cc576bef1d35972548207cf.js +1 -9
  159. package/dist/5a67fdd5293af0a35defd2574c05cd04.js +1 -1803
  160. package/dist/5ada4185d70a1852b578b2063de58e37.js +1 -221
  161. package/dist/5b6a626249d0bc43e412fffa6a9ee177.js +1 -9
  162. package/dist/5bad2df0e3bfd8fdc1a332fb6276cb39.js +1 -360
  163. package/dist/5c53d90bf4029cfd1b6a0945d1cae142.js +1 -3550
  164. package/dist/5c96efcfd419a70a93c96557979bc66d.js +1 -371
  165. package/dist/5d3314103b00c8ea165c6f9f6757f794.js +1 -9
  166. package/dist/5d46734b57c7408a41473abcd515b64c.js +1 -387
  167. package/dist/5da9145440d57c9b84d469253e84898d.js +1 -154
  168. package/dist/5e37c1ef17a219449c8c6aa37a87a941.js +1 -101
  169. package/dist/5e3f006db26e9b277b1bdbc130611a14.js +1 -400
  170. package/dist/5e55b301888460bd06c8e26d1011e01a.js +1 -9
  171. package/dist/5e6c2744429a8fac6e536b179c1f31d0.js +1 -293
  172. package/dist/5ebdef8c548fca6c51280e915d6f4c3f.js +1 -168
  173. package/dist/5ede1aebde9d4e5f5cce2db3044495c7.js +1 -148
  174. package/dist/5f3ce6efab3c679ec1ad25ab0b3f6b2f.js +1 -9
  175. package/dist/5fb6059ab5d7abab7a74eb73028a3aeb.js +1 -361
  176. package/dist/5fc5c77d4df4f5d77f8530f6b23ecd1e.js +1 -135
  177. package/dist/5fedbf948ed123687f77167fac1faf8b.js +1 -9
  178. package/dist/60340be8eea1d704a17f399b3c3f9577.js +1 -200
  179. package/dist/621b99ed1a029c36b4e91ec35f36c344.js +1 -44
  180. package/dist/6292be0125d3720498496eaa7f541618.js +1 -56
  181. package/dist/63b15fb6fc8f897b22a4bf72b7e8452a.js +1 -57668
  182. package/dist/64a5f4d62507d032038dcd76d15188e1.js +1 -9
  183. package/dist/64c45b6610e353ba59a58afc6dd090ca.js +1 -450
  184. package/dist/64d6924350bd7706850cdc0dcc76ccf6.js +1 -9
  185. package/dist/6511453710d760c2682567b40ddb3301.js +1 -593
  186. package/dist/656f53e1b4c6e37a31799737faf6d639.js +1 -209
  187. package/dist/663234c150f2097f3812c6065491497c.js +1 -254
  188. package/dist/6903d8ef977a1424c4e2eb22b96feb77.js +1 -118
  189. package/dist/6a7bf4fb4484f6f48d8e4337f126a61d.js +1 -1246
  190. package/dist/6abb884bd4f1a54529c00b58c14741cc.js +1 -128
  191. package/dist/6bb61adbbc13088ee1c32d88b5c7e754.js +1 -1743
  192. package/dist/6c0a75dc5671c3f237a79f6e45b9891c.js +1 -9
  193. package/dist/6c67587c2093ac3a19da9f2196e040b7.js +1 -9
  194. package/dist/6d38cef4a006e6cfe54a6117aba7b600.js +1 -9
  195. package/dist/6f09754fd684f82e6c06ae526d15ac80.js +1 -740
  196. package/dist/6f64da239140d00b81d8b6c523e86daf.js +1 -116
  197. package/dist/6faa9e5f2a0122d2333fa450337a09b0.js +1 -9
  198. package/dist/6fd6a6ddbcbbebe735c9d21e594203ec.js +1 -145
  199. package/dist/6fe3f0823e345813c2084b243cb6650b.js +1 -6198
  200. package/dist/70074e0c785c9a808dea76c7c7d17af3.js +1 -9
  201. package/dist/70286c33cab463fd576766adecd2d5d9.js +1 -9
  202. package/dist/707fa1de4d2096da1951c4bc9d21cb6d.js +1 -75
  203. package/dist/7080d2a1db1608264a6d9d9fbaf2cce8.js +1 -9
  204. package/dist/716879b6ef8945d579595d88534ae402.js +1 -417
  205. package/dist/725da29f1643c2263a437c08a1454aea.js +1 -9
  206. package/dist/73c78b067c792ea8c737746e4671d3e0.js +1 -120
  207. package/dist/740f4264cd757fcf28331fd30daf295e.js +1 -18
  208. package/dist/7493f0c3c9bf268d6ad785019d993dd7.js +1 -150
  209. package/dist/74fa46809aba9625071aa51bc0a71561.js +1 -122
  210. package/dist/755114145e5b97e5571a160a39e716db.js +1 -9
  211. package/dist/75bffda9455d77087f34708ac4e85371.js +1 -2640
  212. package/dist/75d2dae20d7bac5ecfa9dafc48ec04eb.js +1 -277
  213. package/dist/760eb6458a048f3cba7bc3ae52ef2ba4.js +1 -137
  214. package/dist/7735af777659608bcd8cd6525e3bbe58.js +1 -135
  215. package/dist/77aaca51c1c32acaf32656d45f4dc017.js +1 -9
  216. package/dist/77dd68f6396b8ab4ce2c238d6ddb5354.js +1 -331
  217. package/dist/788819e459cdd8c4c1ef565fd303f519.js +1 -113
  218. package/dist/7a9a1dced0e327dc9cb1728bef25641d.js +1 -114
  219. package/dist/7bd84be066027e61c84c9c2aa9543c2a.js +1 -888
  220. package/dist/7c1cd1223bd45600763f8c152ad167d5.js +1 -873
  221. package/dist/7c27341a2599ffb713c8fb7beced7601.js +1 -306
  222. package/dist/7c317e61789b17749dfe6ea294c89b6b.js +1 -193
  223. package/dist/7c9c55eb1a1e5c1dfd63631511d9a1f0.js +1 -720
  224. package/dist/7dead8e2fcacc316bbfa632cd9f1c9bb.js +1 -163
  225. package/dist/7e4099fc2d04c7c1cf96892b962ba4ec.js +1 -9
  226. package/dist/7ef082035f74b3d7324f95a7498ea656.js +1 -2632
  227. package/dist/7f12d133c88ce53d0837a6c4c0287a37.js +1 -360
  228. package/dist/7f407a1006eb830d6f0aaad96c133d26.js +1 -430
  229. package/dist/805cb6232d7a9fa46025d48a43622ecf.js +1 -9
  230. package/dist/80a171b7595d1161735e23dec8efddd6.js +1 -363
  231. package/dist/82fed7ec74be91e0db61c500d9c6d7ee.js +1 -303
  232. package/dist/83387cb17a7680f59240e7b399e3ac2b.js +1 -9
  233. package/dist/8361542d34c46713c9aff6c4ce65a9a3.js +1 -2693
  234. package/dist/85a977f41a907dba8c672f9bf4943da0.js +1 -3028
  235. package/dist/866bf6ca5057dcb24503761af061d486.js +1 -478
  236. package/dist/870184211838006214be1c23c98672fc.js +1 -17
  237. package/dist/8707a7b49421dbbb842506674ff87fa3.js +1 -59
  238. package/dist/875e553a27bee88a73df34a90b3058e4.js +1 -2564
  239. package/dist/8772719d0f76ecabded160e32dc5eb77.js +1 -503
  240. package/dist/87932c8321c9985ed3b6979e86d2a50e.js +1 -96
  241. package/dist/87d6bf8becf2d5ebe2f71fda95a313ea.js +1 -83
  242. package/dist/88bbfb9fdb8730ffc23f546b42d8d620.js +1 -395
  243. package/dist/88e2feda80ac8cfb28f1dc0ec833b40d.js +1 -9
  244. package/dist/894720f1519e5eb34e1b4f33fca7a9dd.js +1 -185
  245. package/dist/894edcaf39c3c95818e3949d737ed459.js +1 -9
  246. package/dist/89d3c35a5ef97a600927b477a9ba06b4.js +1 -414
  247. package/dist/8ba6618773c9d8d0b4f6ecb785651e2c.js +1 -121
  248. package/dist/8bf75743fb14fea7cf02a5da1bda79d4.js +1 -73
  249. package/dist/8cb83aa3fea85e950c29450b8237fb72.js +1 -14
  250. package/dist/8d9bb1799d9b98db107e84f10132e17f.js +1 -9
  251. package/dist/8ed58ed9c7e1cb1ae1f2830d29011ffb.js +1 -9
  252. package/dist/909adc4a16e0f97d869e3dd16d561430.js +1 -122
  253. package/dist/90bafd962205e96c3285d27cbf95c55c.js +1 -68
  254. package/dist/91bd2b106800bd7812e2ab5a5fea985b.js +1 -110
  255. package/dist/92f4aab5c66f6269c7054c8fbcb3de13.js +1 -9
  256. package/dist/957970f69802c38a9092b9b6264cc1b9.js +1 -112
  257. package/dist/9600fed6a4508afbbcd2c75923d953c3.js +1 -125
  258. package/dist/962969a46fefcace3305abd4d6e14a2e.js +1 -9
  259. package/dist/964646d64dd3196a9c27fe302511414a.js +1 -10922
  260. package/dist/9671c350e11f1569edb5066cbfeb3334.js +1 -98
  261. package/dist/9696a4229fb787eeb25b26f1274b75ee.js +1 -9
  262. package/dist/97e72973d750ecb3bc2e75b75bf63c5b.js +1 -9000
  263. package/dist/9807cf1e443a7440371904b6525f37eb.js +1 -9
  264. package/dist/985d6749688c18f94994794f88492444.js +1 -278
  265. package/dist/99ade8b6895e3a1c3d6eb70583cb924e.js +1 -115
  266. package/dist/9b1fd9cf4206cc32e84150c49707d811.js +1 -9
  267. package/dist/9b8e2282f60f104ff3ace5b905af4d62.js +1 -64
  268. package/dist/9ff6d4a6592c0cb7d0b939113c3a6b31.js +1 -95
  269. package/dist/a164d0e40c4dfa485dcf8e6d5258d767.js +1 -122
  270. package/dist/a1c8660c5bcc6b6a43a7fb3c351174d9.js +1 -9
  271. package/dist/a2a705f6bc3a6827d6c94c5978aec36d.js +1 -243
  272. package/dist/a2c0fcb443c396b30a11fc1682a29c13.js +1 -115
  273. package/dist/a4306aa43824ec1a4ee422b59a851e6f.js +1 -2622
  274. package/dist/a4bedde07e392f8ebf64341b61f75df2.js +1 -9
  275. package/dist/a533e643002830be2da76c9527265860.js +1 -9
  276. package/dist/a5d364d12a8f7691339c497b2e725bcf.js +1 -145
  277. package/dist/a7824ec1ab22aeb22bb35ab8bf1ddc4a.js +1 -715
  278. package/dist/a934b622dd8bdcdcdc1dde985a07ac14.js +1 -36
  279. package/dist/a98ead014d010899b35ee25c7c225542.js +1 -411
  280. package/dist/aa0eee504d52a12d3a30bbd523afcc34.js +1 -9
  281. package/dist/aa5623ec68d23fedb9c9c115c7d99063.js +1 -9
  282. package/dist/aaddd877950d1e3bf1b3ef0fc0ff596e.js +1 -449
  283. package/dist/aaf5c3a4f1a188fd051577cea7b87209.js +1 -457
  284. package/dist/ab4b314445b23359319c14cce9a0e321.js +1 -3687
  285. package/dist/abb40a9a6ef0b2fe14c66dcadc9857a2.js +1 -248
  286. package/dist/ad215d7ba317c941cdcc96ae78e86666.js +1 -67
  287. package/dist/adc5e81257ed3f8d70d03cf79150eec1.js +1 -320
  288. package/dist/aedbf3a3ece39aab8c9f3b3a3779e79b.js +1 -115
  289. package/dist/af959c2a870f08dd8abccae97c9b9bae.js +1 -35
  290. package/dist/b0071564b0854c39e3de8b99d66e4dfd.js +1 -298
  291. package/dist/b02d982ccb1011197a5a24800b178a0a.js +1 -9
  292. package/dist/b0803f33b602bd3b26be70f259e38cee.js +1 -102
  293. package/dist/b1170472ae4b50e3b0070eb991e502fe.js +1 -9
  294. package/dist/b1ac30076824f72cdff7ea29ae0b6801.js +1 -489
  295. package/dist/b1f3f77a9279cdb38846ebe13c3438bc.js +1 -9
  296. package/dist/b20056c149af6b50c851ecfff90e0ccb.js +1 -2792
  297. package/dist/b20cd9acf45420fcacfd923754185663.js +1 -9
  298. package/dist/b25188cf2652d63136d5e54c38abf84e.js +1 -500
  299. package/dist/b2742fab9568b63c2274698af5d381fc.js +1 -135
  300. package/dist/b2ff96fbe6501ff45c37491b94c96c5f.js +1 -315
  301. package/dist/b33ef9b4202539d3690251cb8213a034.js +1 -9
  302. package/dist/b3bb2c8deddd8c2afcf73f6f5d711596.js +1 -61
  303. package/dist/b402b938ca2da72e0984a1360eda5897.js +1 -40
  304. package/dist/b460e24d77f9c0d8b21e65d899840adb.js +1 -363
  305. package/dist/b6a6a4adaab4f09a7835ff64a5096198.js +1 -80
  306. package/dist/b6df2278bd475169749bab512944b7ec.js +1 -207
  307. package/dist/b7b7be8216519adf62d75f123f9c6423.js +1 -1470
  308. package/dist/b808fb222140a85b23ebbe0fffa906d9.js +1 -9
  309. package/dist/b8197742452dd2e77090dde34cb2dc4d.js +1 -4105
  310. package/dist/b881dca9d9a80f61d87374b4bd5a2dd5.js +1 -9
  311. package/dist/b98206b2175363f1150c074608603942.js +1 -592
  312. package/dist/ba6b8b3e06cd9d0aee9c69278ee84647.js +1 -9
  313. package/dist/baa5bf4cfefed057a4657a1b02cfa114.js +1 -32
  314. package/dist/bb4d542cb170b3f7b27a42c69262975b.js +1 -1421
  315. package/dist/bb5bab7a675544fe31ddb7f4a77dffb9.js +1 -9
  316. package/dist/bc0551f89df16ee262a67c0431544a9e.js +1 -128
  317. package/dist/c0736a7477d7aac4c669bb94ccae25d9.js +1 -381
  318. package/dist/c0780e66c6b1ade0fa22283ce1f9c402.js +1 -1582
  319. package/dist/c1bc72d79cc6161590fc01c6b139fccd.js +1 -296
  320. package/dist/c32ec7d45ccd947b98fe458a8ca1405b.js +1 -412
  321. package/dist/c40023acde0f3d5f4806f5fccbb4284b.js +1 -160
  322. package/dist/c45445ab45defa960329c6f8e6224e57.js +1 -317
  323. package/dist/c51840077c684be0e7e13339f85cd4a9.js +1 -9
  324. package/dist/c530988d2b1966fd10a4d99fa3877e1b.js +1 -9
  325. package/dist/c631c95d9019218dfd22d028f215e1d1.js +1 -312
  326. package/dist/c728b4ef87cfd5f561d1601f0867c39d.js +1 -2509
  327. package/dist/c733414555a126e689832ffb55cc203f.js +1 -820
  328. package/dist/c797511423f91a877e7fdffa74d015cb.js +1 -914
  329. package/dist/c7ca9dccbac3af7ebc82b271dd2aa570.js +1 -400
  330. package/dist/c80e89199aef31e48addb2b35ea96365.js +1 -9
  331. package/dist/cb4175466ea600940f2927fa03a217e8.js +1 -472
  332. package/dist/cb652f200fc3dd740b2e7f678a9272ea.js +1 -9
  333. package/dist/cbdbd623038183a8c068dd24ecd90682.js +1 -9
  334. package/dist/cbdc4ca43a8c940a6c3f59a8b6f17df5.js +1 -9
  335. package/dist/ccde58de5468dd353dbee74d631ebdf0.js +1 -34
  336. package/dist/cd358d9acaaa7049d85b15ac766fc314.js +1 -311
  337. package/dist/cd9a17f94a922c7c88000b1b3cdd67df.js +1 -9
  338. package/dist/cda6c5c52fa5d595982da0fac9da25a5.js +1 -984
  339. package/dist/cf188b3f83735389d47bb12fc9f7069a.js +1 -9
  340. package/dist/cf3f6b1c74c72cb5d02870022dbc9f94.js +1 -9
  341. package/dist/cf90a39d245bf7e6c1b41c7a9a28f0a1.js +1 -681
  342. package/dist/chunk-207.cc1646ee6c7a19f6220b.js +2 -0
  343. package/dist/chunk-207.cc1646ee6c7a19f6220b.js.map +1 -0
  344. package/dist/chunk-404.e573ba4c4c7cedc843f3.js +2 -0
  345. package/dist/chunk-404.e573ba4c4c7cedc843f3.js.map +1 -0
  346. package/dist/chunk-actions.c7efc5f5036d72d3b972.js +2 -0
  347. package/dist/chunk-actions.c7efc5f5036d72d3b972.js.map +1 -0
  348. package/dist/chunk-code-editor.4932fdbfef27989069a5.js +2 -0
  349. package/dist/chunk-code-editor.4932fdbfef27989069a5.js.map +1 -0
  350. package/dist/{chunk-docs-actions.8a808416a2d69710472e.js → chunk-docs-actions.fe615fd8e3c8ff68c449.js} +2 -2
  351. package/dist/chunk-docs-actions.fe615fd8e3c8ff68c449.js.map +1 -0
  352. package/dist/chunk-vendor-icons.aae1dc235d12dd74b38e.js +1 -0
  353. package/dist/d04707d65591e86810ebc56d48b10810.js +1 -296
  354. package/dist/d1a58542777d072396d7cee5487304f9.js +1 -141
  355. package/dist/d1efdca26800423a363b769b1834cfcf.js +1 -223
  356. package/dist/d2a00e1726c71ca10fbaf4b9c4374458.js +1 -1003
  357. package/dist/d2fe7592ff2fdda099b2b6355abe8c06.js +1 -5240
  358. package/dist/d30fa4070abd6929228505790744e180.js +1 -279
  359. package/dist/d43ad5f9bad9a042b49b2592c7639c28.js +1 -9
  360. package/dist/d542dda7308361c34af2afb9b70d755a.js +1 -9
  361. package/dist/d5a6140d581e5c4eb200259ce372f40b.js +1 -9
  362. package/dist/d5f79987405c2169278f8de37bcc9d05.js +1 -9
  363. package/dist/d78d3b050ea95b068380d975fd413fd7.js +1 -9
  364. package/dist/d79b3962938d65fb85c6f844e86d92d9.js +1 -172
  365. package/dist/d7b57d5ebdcade0ce5e047509e06861a.js +1 -580
  366. package/dist/d7d616d4aa8fd3f51d681242853dcde9.js +1 -9
  367. package/dist/d83f2acd25388452582e5a4c727255b0.js +1 -174
  368. package/dist/da1c1b1569c4d5872c9a18c29f0b5c90.js +1 -3088
  369. package/dist/da55f4fe3daed3f79fc4565668ecf7dd.js +1 -97
  370. package/dist/db8ca5cfb6fe4aaef215f116f6991784.js +1 -9
  371. package/dist/dbc87324ecf271d088a2ab0823de9c5d.js +1 -75
  372. package/dist/dbd05051a3ecf6b10e2f7b8904153f2d.js +1 -3194
  373. package/dist/dc1eb6c1c92d7067c72b82b2833a7d2c.js +1 -2595
  374. package/dist/dcb197c0214e800da9d9436dfc9437d6.js +1 -162
  375. package/dist/ddbc961769cd2ff4d4a7a136168ebf4c.js +1 -9
  376. package/dist/de0fd4fd7c2d7a4887cbc99eed91f797.js +1 -9
  377. package/dist/df37029cdf8359ecac0aebdf4f257d03.js +1 -386
  378. package/dist/df5710d97a899b672060afaa8c4891c2.js +1 -316
  379. package/dist/dfb7dd1fab06b2403f76c23f80b15738.js +1 -1718
  380. package/dist/e07a0b284934d3a0e8c02c508edc9df1.js +1 -115
  381. package/dist/e0adad8a8579bf99f3e22f7c214a5c64.js +1 -9
  382. package/dist/e0e32c3798e8895695ce5b372a0c989f.js +1 -2166
  383. package/dist/e2b38a8393be2cf23f3894ace3efb1c3.js +1 -9
  384. package/dist/e3ba4b654313ae98884a6c9044197e09.js +1 -103
  385. package/dist/e4565878df49fd4ce3edd3f1022c1695.js +1 -244
  386. package/dist/e4917fa7632b01d28e99304d32d989f7.js +1 -9
  387. package/dist/e4968d8264b40c14f123f28419eb456d.js +1 -23
  388. package/dist/e6070e43daf8a9e5f13f515a5a03e66c.js +1 -498
  389. package/dist/e61779df91186b23e7adf2d1968b2708.js +1 -9
  390. package/dist/e6ad50b520736b595970c9e07029c3f1.js +1 -9
  391. package/dist/e6cf8898b285b71e2abe832717ac7060.js +1 -153
  392. package/dist/e6fae0b04a3000a57f22bb25325c8afe.js +1 -2635
  393. package/dist/e6fb5287a46e030336c006e3f50ade3a.js +1 -529
  394. package/dist/e7e1a807af3160b342e0a3550cf8f7c5.js +1 -9
  395. package/dist/e874d975c9128dc6eb9a513d088bed9f.js +1 -9
  396. package/dist/e8fa659263d5ca9e0d1be69c048133a8.js +1 -297
  397. package/dist/e97cfa120fde26da0359ca29afaf3171.js +1 -43
  398. package/dist/eaa55a522fb2cb2f0287711f42344984.js +1 -9
  399. package/dist/eba5ee3fb1f3e92af88c69e50b2a8fd1.js +1 -102
  400. package/dist/ec2d138afc9cc9e81c4c6ef36ed55228.js +1 -103
  401. package/dist/ec32839f8f3353e66b85450525fa3114.js +1 -2808
  402. package/dist/ecd02712f5a40fcdaa3bfa8190470024.js +1 -2596
  403. package/dist/ecd37b343c4dcc8dac849b1c680dcbef.js +1 -1010
  404. package/dist/ecdb4966f685f3e44b1f28fae46827a3.js +1 -9
  405. package/dist/ee694c1bcbdc9439e50f816c39fd1023.js +1 -2875
  406. package/dist/efc14cdf19554635e477781704353ec2.js +1 -9
  407. package/dist/f0548260c0ac6b0e7cdb8909df1a5333.js +1 -421
  408. package/dist/f0878cc386a608146dbc8fb3b6745c42.js +1 -422
  409. package/dist/f326f2f263b1498fedbe1d07d7254d10.js +1 -9
  410. package/dist/f3c7b9d832aa442df3d140f7697b4f62.js +1 -98
  411. package/dist/f42342b39da2c42adc65ebcf52839f90.js +1 -102
  412. package/dist/f4c53706e1721b08e8b2f650c8bd35c4.js +1 -166
  413. package/dist/f582d9feb91d31036d3dae4cdaea865f.js +1 -3533
  414. package/dist/f5bea0e1099339b99b21ee2d3c0fc489.js +1 -23
  415. package/dist/f7186078e00d958aa2b316483dfc7e1c.js +1 -1715
  416. package/dist/f79630d85284a7f6dadc25c1d256af0a.js +1 -33
  417. package/dist/f80efec9a63094f19edae0480a0f2cd8.js +1 -635
  418. package/dist/f90003058d7087f15baa27b80bf08c1d.js +1 -839
  419. package/dist/f980fd09c34c277299e2d3f83aebdba5.js +1 -102
  420. package/dist/fb59a7c154104a421146ab9e5bd71540.js +1 -462
  421. package/dist/fd40b62490e412d27bc67e660aacae19.js +1 -430
  422. package/dist/fd5bc50b18c9f46380cbe5ec1ac2127b.js +1 -9
  423. package/dist/fd5e2efd3b2d047abe8473f99c650a35.js +1 -677
  424. package/dist/fdf4d851b44839d8fdfa77b3419bce19.js +1 -204
  425. package/dist/ffd3b83e8b5878f4785591ff54b1dfff.js +1 -9
  426. package/dist/index.js +9 -9
  427. package/dist/index.js.map +1 -1
  428. package/package.json +1 -1
  429. package/dist/chunk-207.a88d16e56962fd4d2978.js +0 -2
  430. package/dist/chunk-207.a88d16e56962fd4d2978.js.map +0 -1
  431. package/dist/chunk-404.0ea933a6d9513f2665cf.js +0 -2
  432. package/dist/chunk-404.0ea933a6d9513f2665cf.js.map +0 -1
  433. package/dist/chunk-actions.1ad5d759ef5d8509c532.js +0 -2
  434. package/dist/chunk-actions.1ad5d759ef5d8509c532.js.map +0 -1
  435. package/dist/chunk-code-editor.c86cda6aae761ec82d57.js +0 -2
  436. package/dist/chunk-code-editor.c86cda6aae761ec82d57.js.map +0 -1
  437. package/dist/chunk-docs-actions.8a808416a2d69710472e.js.map +0 -1
  438. package/dist/chunk-vendor-icons.7f0d1996a77d090b3d9c.js +0 -1
@@ -1,1003 +1 @@
1
- ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
- "use strict";
3
-
4
- var oop = require("../lib/oop");
5
- var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
6
- var constantOtherSymbol = exports.constantOtherSymbol = {
7
- token : "constant.other.symbol.ruby", // symbol
8
- regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"
9
- };
10
-
11
- exports.qString = {
12
- token : "string", // single line
13
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
14
- };
15
-
16
- exports.qqString = {
17
- token : "string", // single line
18
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
19
- };
20
-
21
- exports.tString = {
22
- token : "string", // backtick string
23
- regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"
24
- };
25
-
26
- var constantNumericHex = exports.constantNumericHex = {
27
- token : "constant.numeric", // hex
28
- regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"
29
- };
30
-
31
- var constantNumericBinary = exports.constantNumericBinary = {
32
- token: "constant.numeric",
33
- regex: /\b(0[bB][01](?:[01]|_(?=[01]))*)\b/
34
- };
35
-
36
- var constantNumericDecimal = exports.constantNumericDecimal = {
37
- token: "constant.numeric",
38
- regex: /\b(0[dD](?:[1-9](?:[\d]|_(?=[\d]))*|0))\b/
39
- };
40
-
41
- var constantNumericOctal = exports.constantNumericDecimal = {
42
- token: "constant.numeric",
43
- regex: /\b(0[oO]?(?:[1-7](?:[0-7]|_(?=[0-7]))*|0))\b/
44
- };
45
-
46
- var constantNumericRational = exports.constantNumericRational = {
47
- token: "constant.numeric", //rational + complex
48
- regex: /\b([\d]+(?:[./][\d]+)?ri?)\b/
49
- };
50
-
51
- var constantNumericComplex = exports.constantNumericComplex = {
52
- token: "constant.numeric", //simple complex numbers
53
- regex: /\b([\d]i)\b/
54
- };
55
-
56
- var constantNumericFloat = exports.constantNumericFloat = {
57
- token : "constant.numeric", // float + complex
58
- regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?i?\\b"
59
- };
60
-
61
- var instanceVariable = exports.instanceVariable = {
62
- token : "variable.instance", // instance variable
63
- regex : "@{1,2}[a-zA-Z_\\d]+"
64
- };
65
-
66
- var RubyHighlightRules = function() {
67
-
68
- var builtinFunctions = (
69
- "abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" +
70
- "assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|" +
71
- "assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|" +
72
- "assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|" +
73
- "assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|" +
74
- "assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|" +
75
- "attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|" +
76
- "caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|" +
77
- "exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|" +
78
- "gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|" +
79
- "link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|" +
80
- "p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|" +
81
- "raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|" +
82
- "set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|" +
83
- "throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|" +
84
- "render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|" +
85
- "content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|" +
86
- "fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|" +
87
- "time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|" +
88
- "select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|" +
89
- "file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|" +
90
- "protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|" +
91
- "send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|" +
92
- "validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|" +
93
- "validates_inclusion_of|validates_numericality_of|validates_with|validates_each|" +
94
- "authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|" +
95
- "filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" +
96
- "translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" +
97
- "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" +
98
- "has_many|has_one|belongs_to|has_and_belongs_to_many|p|warn|refine|using|module_function|extend|alias_method|" +
99
- "private_class_method|remove_method|undef_method"
100
- );
101
-
102
- var keywords = (
103
- "alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" +
104
- "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" +
105
- "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield|__ENCODING__|prepend"
106
- );
107
-
108
- var buildinConstants = (
109
- "true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" +
110
- "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING|RUBY_PATCHLEVEL|RUBY_REVISION|RUBY_COPYRIGHT|RUBY_ENGINE|RUBY_ENGINE_VERSION|RUBY_DESCRIPTION"
111
- );
112
-
113
- var builtinVariables = (
114
- "$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" +
115
- "$!|root_url|flash|session|cookies|params|request|response|logger|self"
116
- );
117
-
118
- var keywordMapper = this.$keywords = this.createKeywordMapper({
119
- "keyword": keywords,
120
- "constant.language": buildinConstants,
121
- "variable.language": builtinVariables,
122
- "support.function": builtinFunctions,
123
- "invalid.deprecated": "debugger" // TODO is this a remnant from js mode?
124
- }, "identifier");
125
-
126
- var escapedChars = "\\\\(?:n(?:[1-7][0-7]{0,2}|0)|[nsrtvfbae'\"\\\\]|c(?:\\\\M-)?.|M-(?:\\\\C-|\\\\c)?.|C-(?:\\\\M-)?.|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u{[\\da-fA-F]{1,6}(?:\\s[\\da-fA-F]{1,6})*})";
127
-
128
- var closeParen = {
129
- "(": ")",
130
- "[": "]",
131
- "{": "}",
132
- "<": ">",
133
- "^": "^",
134
- "|": "|",
135
- "%": "%"
136
- };
137
-
138
- this.$rules = {
139
- "start": [
140
- {
141
- token: "comment",
142
- regex: "#.*$"
143
- }, {
144
- token: "comment.multiline", // multi line comment
145
- regex: "^=begin(?=$|\\s.*$)",
146
- next: "comment"
147
- }, {
148
- token: "string.regexp",
149
- regex: /[/](?=.*\/)/,
150
- next: "regex"
151
- },
152
-
153
- [{
154
- token: ["constant.other.symbol.ruby", "string.start"],
155
- regex: /(:)?(")/,
156
- push: [{
157
- token: "constant.language.escape",
158
- regex: escapedChars
159
- }, {
160
- token: "paren.start",
161
- regex: /#{/,
162
- push: "start"
163
- }, {
164
- token: "string.end",
165
- regex: /"/,
166
- next: "pop"
167
- }, {
168
- defaultToken: "string"
169
- }]
170
- }, {
171
- token: "string.start",
172
- regex: /`/,
173
- push: [{
174
- token: "constant.language.escape",
175
- regex: escapedChars
176
- }, {
177
- token: "paren.start",
178
- regex: /#{/,
179
- push: "start"
180
- }, {
181
- token: "string.end",
182
- regex: /`/,
183
- next: "pop"
184
- }, {
185
- defaultToken: "string"
186
- }]
187
- }, {
188
- token: ["constant.other.symbol.ruby", "string.start"],
189
- regex: /(:)?(')/,
190
- push: [{
191
- token: "constant.language.escape",
192
- regex: /\\['\\]/
193
- }, {
194
- token: "string.end",
195
- regex: /'/,
196
- next: "pop"
197
- }, {
198
- defaultToken: "string"
199
- }]
200
- }, {
201
- token: "string.start",//doesn't see any differences between strings and array of strings in highlighting
202
- regex: /%[qwx]([(\[<{^|%])/, onMatch: function (val, state, stack) {
203
- if (stack.length)
204
- stack = [];
205
- var paren = val[val.length - 1];
206
- stack.unshift(paren, state);
207
- this.next = "qStateWithoutInterpolation";
208
- return this.token;
209
- }
210
- }, {
211
- token: "string.start", //doesn't see any differences between strings and array of strings in highlighting
212
- regex: /%[QWX]?([(\[<{^|%])/, onMatch: function (val, state, stack) {
213
- if (stack.length)
214
- stack = [];
215
- var paren = val[val.length - 1];
216
- stack.unshift(paren, state);
217
- this.next = "qStateWithInterpolation";
218
- return this.token;
219
- }
220
- }, {
221
- token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
222
- regex: /%[si]([(\[<{^|%])/, onMatch: function (val, state, stack) {
223
- if (stack.length)
224
- stack = [];
225
- var paren = val[val.length - 1];
226
- stack.unshift(paren, state);
227
- this.next = "sStateWithoutInterpolation";
228
- return this.token;
229
- }
230
- }, {
231
- token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
232
- regex: /%[SI]([(\[<{^|%])/, onMatch: function (val, state, stack) {
233
- if (stack.length)
234
- stack = [];
235
- var paren = val[val.length - 1];
236
- stack.unshift(paren, state);
237
- this.next = "sStateWithInterpolation";
238
- return this.token;
239
- }
240
- }, {
241
- token: "string.regexp",
242
- regex: /%[r]([(\[<{^|%])/, onMatch: function (val, state, stack) {
243
- if (stack.length)
244
- stack = [];
245
- var paren = val[val.length - 1];
246
- stack.unshift(paren, state);
247
- this.next = "rState";
248
- return this.token;
249
- }
250
- }],
251
-
252
- {
253
- token: "punctuation", // namespaces aren't symbols
254
- regex: "::"
255
- },
256
- instanceVariable,
257
- {
258
- token: "variable.global", // global variable
259
- regex: "[$][a-zA-Z_\\d]+"
260
- }, {
261
- token: "support.class", // class name
262
- regex: "[A-Z][a-zA-Z_\\d]*"
263
- }, {
264
- token: ["punctuation.operator", "support.function"],
265
- regex: /(\.)([a-zA-Z_\d]+)(?=\()/
266
- }, {
267
- token: ["punctuation.operator", "identifier"],
268
- regex: /(\.)([a-zA-Z_][a-zA-Z_\d]*)/
269
- }, {
270
- token: "string.character",
271
- regex: "\\B\\?(?:" + escapedChars + "|\\S)"
272
- }, {
273
- token: "punctuation.operator",
274
- regex: /\?(?=.+:)/
275
- },
276
-
277
- constantNumericRational,
278
- constantNumericComplex,
279
- constantOtherSymbol,
280
- constantNumericHex,
281
- constantNumericFloat,
282
- constantNumericBinary,
283
- constantNumericDecimal,
284
- constantNumericOctal,
285
- {
286
- token: "constant.language.boolean",
287
- regex: "(?:true|false)\\b"
288
- }, {
289
- token: keywordMapper,
290
- regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
291
- }, {
292
- token: "punctuation.separator.key-value",
293
- regex: "=>"
294
- }, {
295
- stateName: "heredoc",
296
- onMatch: function (value, currentState, stack) {
297
- var next = (value[2] == '-' || value[2] == '~') ? "indentedHeredoc" : "heredoc";
298
- var tokens = value.split(this.splitRegex);
299
- stack.push(next, tokens[3]);
300
- return [
301
- {type: "constant", value: tokens[1]},
302
- {type: "string", value: tokens[2]},
303
- {type: "support.class", value: tokens[3]},
304
- {type: "string", value: tokens[4]}
305
- ];
306
- },
307
- regex: "(<<[-~]?)(['\"`]?)([\\w]+)(['\"`]?)",
308
- rules: {
309
- heredoc: [{
310
- onMatch: function(value, currentState, stack) {
311
- if (value === stack[1]) {
312
- stack.shift();
313
- stack.shift();
314
- this.next = stack[0] || "start";
315
- return "support.class";
316
- }
317
- this.next = "";
318
- return "string";
319
- },
320
- regex: ".*$",
321
- next: "start"
322
- }],
323
- indentedHeredoc: [{
324
- token: "string",
325
- regex: "^ +"
326
- }, {
327
- onMatch: function(value, currentState, stack) {
328
- if (value === stack[1]) {
329
- stack.shift();
330
- stack.shift();
331
- this.next = stack[0] || "start";
332
- return "support.class";
333
- }
334
- this.next = "";
335
- return "string";
336
- },
337
- regex: ".*$",
338
- next: "start"
339
- }]
340
- }
341
- }, {
342
- regex: "$",
343
- token: "empty",
344
- next: function(currentState, stack) {
345
- if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc")
346
- return stack[0];
347
- return currentState;
348
- }
349
- }, {
350
- token: "keyword.operator",
351
- regex: "!|\\$|%|&|\\*|/|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\||\\b(?:in|instanceof|new|delete|typeof|void)"
352
- }, {
353
- token: "paren.lparen",
354
- regex: "[[({]"
355
- }, {
356
- token: "paren.rparen",
357
- regex: "[\\])}]",
358
- onMatch: function(value, currentState, stack) {
359
- this.next = '';
360
- if (value == "}" && stack.length > 1 && stack[1] != "start") {
361
- stack.shift();
362
- this.next = stack.shift();
363
- }
364
- return this.token;
365
- }
366
- }, {
367
- token: "text",
368
- regex: "\\s+"
369
- }, {
370
- token: "punctuation.operator",
371
- regex: /[?:,;.]/
372
- }
373
- ],
374
- "comment": [
375
- {
376
- token: "comment.multiline", // closing comment
377
- regex: "^=end(?=$|\\s.*$)",
378
- next: "start"
379
- }, {
380
- token: "comment", // comment spanning whole line
381
- regex: ".+"
382
- }
383
- ],
384
- "qStateWithInterpolation": [{
385
- token: "string.start",// excluded nested |^% due to difficulty in realization
386
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
387
- if (stack.length && val === stack[0]) {
388
- stack.unshift(val, state);
389
- return this.token;
390
- }
391
- return "string";
392
- }
393
- }, {
394
- token: "constant.language.escape",
395
- regex: escapedChars
396
- }, {
397
- token: "constant.language.escape",
398
- regex: /\\./
399
- }, {
400
- token: "paren.start",
401
- regex: /#{/,
402
- push: "start"
403
- }, {
404
- token: "string.end",
405
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
406
- if (stack.length && val === closeParen[stack[0]]) {
407
- stack.shift();
408
- this.next = stack.shift();
409
- return this.token;
410
- }
411
- this.next = '';
412
- return "string";
413
- }
414
- }, {
415
- defaultToken: "string"
416
- }],
417
- "qStateWithoutInterpolation": [{
418
- token: "string.start",// excluded nested |^% due to difficulty in realization
419
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
420
- if (stack.length && val === stack[0]) {
421
- stack.unshift(val, state);
422
- return this.token;
423
- }
424
- return "string";
425
- }
426
- }, {
427
- token: "constant.language.escape",
428
- regex: /\\['\\]/
429
- }, {
430
- token: "constant.language.escape",
431
- regex: /\\./
432
- }, {
433
- token: "string.end",
434
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
435
- if (stack.length && val === closeParen[stack[0]]) {
436
- stack.shift();
437
- this.next = stack.shift();
438
- return this.token;
439
- }
440
- this.next = '';
441
- return "string";
442
- }
443
- }, {
444
- defaultToken: "string"
445
- }],
446
- "sStateWithoutInterpolation": [{
447
- token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
448
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
449
- if (stack.length && val === stack[0]) {
450
- stack.unshift(val, state);
451
- return this.token;
452
- }
453
- return "constant.other.symbol.ruby";
454
- }
455
- }, {
456
- token: "constant.other.symbol.ruby",
457
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
458
- if (stack.length && val === closeParen[stack[0]]) {
459
- stack.shift();
460
- this.next = stack.shift();
461
- return this.token;
462
- }
463
- this.next = '';
464
- return "constant.other.symbol.ruby";
465
- }
466
- }, {
467
- defaultToken: "constant.other.symbol.ruby"
468
- }],
469
- "sStateWithInterpolation": [{
470
- token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
471
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
472
- if (stack.length && val === stack[0]) {
473
- stack.unshift(val, state);
474
- return this.token;
475
- }
476
- return "constant.other.symbol.ruby";
477
- }
478
- }, {
479
- token: "constant.language.escape",
480
- regex: escapedChars
481
- }, {
482
- token: "constant.language.escape",
483
- regex: /\\./
484
- }, {
485
- token: "paren.start",
486
- regex: /#{/,
487
- push: "start"
488
- }, {
489
- token: "constant.other.symbol.ruby",
490
- regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
491
- if (stack.length && val === closeParen[stack[0]]) {
492
- stack.shift();
493
- this.next = stack.shift();
494
- return this.token;
495
- }
496
- this.next = '';
497
- return "constant.other.symbol.ruby";
498
- }
499
- }, {
500
- defaultToken: "constant.other.symbol.ruby"
501
- }],
502
- "rState": [{
503
- token: "string.regexp",// excluded nested |^% due to difficulty in realization
504
- regex: /[(\[<{]/, onMatch: function (val, state, stack) {
505
- if (stack.length && val === stack[0]) {
506
- stack.unshift(val, state);
507
- return this.token;
508
- }
509
- return "constant.language.escape";
510
- }
511
- }, {
512
- token: "paren.start",
513
- regex: /#{/,
514
- push: "start"
515
- }, {
516
- token: "string.regexp",
517
- regex: /\//
518
- }, {
519
- token: "string.regexp",
520
- regex: /[)\]>}^|%][imxouesn]*/, onMatch: function (val, state, stack) {
521
- if (stack.length && val[0] === closeParen[stack[0]]) {
522
- stack.shift();
523
- this.next = stack.shift();
524
- return this.token;
525
- }
526
- this.next = '';
527
- return "constant.language.escape";
528
- }
529
- },
530
- {include: "regex"},
531
- {
532
- defaultToken: "string.regexp"
533
- }],
534
- "regex": [
535
- {// character classes
536
- token: "regexp.keyword",
537
- regex: /\\[wWdDhHsS]/
538
- }, {
539
- token: "constant.language.escape",
540
- regex: /\\[AGbBzZ]/
541
- }, {
542
- token: "constant.language.escape",
543
- regex: /\\g<[a-zA-Z0-9]*>/
544
- }, {
545
- token: ["constant.language.escape", "regexp.keyword", "constant.language.escape"],
546
- regex: /(\\p{\^?)(Alnum|Alpha|Blank|Cntrl|Digit|Graph|Lower|Print|Punct|Space|Upper|XDigit|Word|ASCII|Any|Assigned|Arabic|Armenian|Balinese|Bengali|Bopomofo|Braille|Buginese|Buhid|Canadian_Aboriginal|Carian|Cham|Cherokee|Common|Coptic|Cuneiform|Cypriot|Cyrillic|Deseret|Devanagari|Ethiopic|Georgian|Glagolitic|Gothic|Greek|Gujarati|Gurmukhi|Han|Hangul|Hanunoo|Hebrew|Hiragana|Inherited|Kannada|Katakana|Kayah_Li|Kharoshthi|Khmer|Lao|Latin|Lepcha|Limbu|Linear_B|Lycian|Lydian|Malayalam|Mongolian|Myanmar|New_Tai_Lue|Nko|Ogham|Ol_Chiki|Old_Italic|Old_Persian|Oriya|Osmanya|Phags_Pa|Phoenician|Rejang|Runic|Saurashtra|Shavian|Sinhala|Sundanese|Syloti_Nagri|Syriac|Tagalog|Tagbanwa|Tai_Le|Tamil|Telugu|Thaana|Thai|Tibetan|Tifinagh|Ugaritic|Vai|Yi|Ll|Lm|Lt|Lu|Lo|Mn|Mc|Me|Nd|Nl|Pc|Pd|Ps|Pe|Pi|Pf|Po|No|Sm|Sc|Sk|So|Zs|Zl|Zp|Cc|Cf|Cn|Co|Cs|N|L|M|P|S|Z|C)(})/
547
- }, {
548
- token: ["constant.language.escape", "invalid", "constant.language.escape"],
549
- regex: /(\\p{\^?)([^/]*)(})/
550
- }, {// escapes
551
- token: "regexp.keyword.operator",
552
- regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
553
- }, {// flag
554
- token: "string.regexp",
555
- regex: /[/][imxouesn]*/,
556
- next: "start"
557
- }, {// invalid operators
558
- token: "invalid",
559
- regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
560
- }, {// operators
561
- token: "constant.language.escape",
562
- regex: /\(\?(?:[:=!>]|<'?[a-zA-Z]*'?>|<[=!])|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
563
- }, {
564
- token: "constant.language.delimiter",
565
- regex: /\|/
566
- }, {
567
- token: "regexp.keyword",
568
- regex: /\[\[:(?:alnum|alpha|blank|cntrl|digit|graph|lower|print|punct|space|upper|xdigit|word|ascii):\]\]/
569
- }, {
570
- token: "constant.language.escape",
571
- regex: /\[\^?/,
572
- push: "regex_character_class"
573
- }, {
574
- defaultToken: "string.regexp"
575
- }
576
- ],
577
- "regex_character_class": [
578
- {
579
- token: "regexp.keyword",
580
- regex: /\\[wWdDhHsS]/
581
- }, {
582
- token: "regexp.charclass.keyword.operator",
583
- regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
584
- }, {
585
- token: "constant.language.escape",
586
- regex: /&?&?\[\^?/,
587
- push: "regex_character_class"
588
- }, {
589
- token: "constant.language.escape",
590
- regex: "]",
591
- next: "pop"
592
- }, {
593
- token: "constant.language.escape",
594
- regex: "-"
595
- }, {
596
- defaultToken: "string.regexp.characterclass"
597
- }
598
- ]
599
- };
600
-
601
- this.normalizeRules();
602
- };
603
-
604
- oop.inherits(RubyHighlightRules, TextHighlightRules);
605
-
606
- exports.RubyHighlightRules = RubyHighlightRules;
607
- });
608
-
609
- ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) {
610
- "use strict";
611
-
612
- var Range = require("../range").Range;
613
-
614
- var MatchingBraceOutdent = function() {};
615
-
616
- (function() {
617
-
618
- this.checkOutdent = function(line, input) {
619
- if (! /^\s+$/.test(line))
620
- return false;
621
-
622
- return /^\s*\}/.test(input);
623
- };
624
-
625
- this.autoOutdent = function(doc, row) {
626
- var line = doc.getLine(row);
627
- var match = line.match(/^(\s*\})/);
628
-
629
- if (!match) return 0;
630
-
631
- var column = match[1].length;
632
- var openBracePos = doc.findMatchingBracket({row: row, column: column});
633
-
634
- if (!openBracePos || openBracePos.row == row) return 0;
635
-
636
- var indent = this.$getIndent(doc.getLine(openBracePos.row));
637
- doc.replace(new Range(row, 0, row, column-1), indent);
638
- };
639
-
640
- this.$getIndent = function(line) {
641
- return line.match(/^\s*/)[0];
642
- };
643
-
644
- }).call(MatchingBraceOutdent.prototype);
645
-
646
- exports.MatchingBraceOutdent = MatchingBraceOutdent;
647
- });
648
-
649
- ace.define("ace/mode/folding/ruby",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"], function (require, exports, module) {
650
- "use strict";
651
-
652
- var oop = require("../../lib/oop");
653
- var BaseFoldMode = require("./fold_mode").FoldMode;
654
- var Range = require("../../range").Range;
655
- var TokenIterator = require("../../token_iterator").TokenIterator;
656
-
657
-
658
- var FoldMode = exports.FoldMode = function () {
659
- };
660
-
661
- oop.inherits(FoldMode, BaseFoldMode);
662
-
663
- (function () {
664
- this.indentKeywords = {
665
- "class": 1,
666
- "def": 1,
667
- "module": 1,
668
- "do": 1,
669
- "unless": 1,
670
- "if": 1,
671
- "while": 1,
672
- "for": 1,
673
- "until": 1,
674
- "begin": 1,
675
- "else": 0,
676
- "elsif": 0,
677
- "rescue": 0,
678
- "ensure": 0,
679
- "when": 0,
680
- "end": -1,
681
- "case": 1,
682
- "=begin": 1,
683
- "=end": -1
684
- };
685
-
686
- this.foldingStartMarker = /(?:\s|^)(def|do|while|class|unless|module|if|for|until|begin|else|elsif|case|rescue|ensure|when)\b|({\s*$)|(=begin)/;
687
- this.foldingStopMarker = /(=end(?=$|\s.*$))|(^\s*})|\b(end)\b/;
688
-
689
- this.getFoldWidget = function (session, foldStyle, row) {
690
- var line = session.getLine(row);
691
- var isStart = this.foldingStartMarker.test(line);
692
- var isEnd = this.foldingStopMarker.test(line);
693
-
694
- if (isStart && !isEnd) {
695
- var match = line.match(this.foldingStartMarker);
696
- if (match[1]) {
697
- if (match[1] == "if" || match[1] == "else" || match[1] == "while" || match[1] == "until" || match[1] == "unless") {
698
- if (match[1] == "else" && /^\s*else\s*$/.test(line) === false) {
699
- return;
700
- }
701
- if (/^\s*(?:if|else|while|until|unless)\s*/.test(line) === false) {
702
- return;
703
- }
704
- }
705
-
706
- if (match[1] == "when") {
707
- if (/\sthen\s/.test(line) === true) {
708
- return;
709
- }
710
- }
711
- if (session.getTokenAt(row, match.index + 2).type === "keyword")
712
- return "start";
713
- } else if (match[3]) {
714
- if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
715
- return "start";
716
- } else {
717
- return "start";
718
- }
719
- }
720
- if (foldStyle != "markbeginend" || !isEnd || isStart && isEnd)
721
- return "";
722
-
723
- var match = line.match(this.foldingStopMarker);
724
- if (match[3] === "end") {
725
- if (session.getTokenAt(row, match.index + 1).type === "keyword")
726
- return "end";
727
- } else if (match[1]) {
728
- if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
729
- return "end";
730
- } else
731
- return "end";
732
- };
733
-
734
- this.getFoldWidgetRange = function (session, foldStyle, row) {
735
- var line = session.doc.getLine(row);
736
- var match = this.foldingStartMarker.exec(line);
737
- if (match) {
738
- if (match[1] || match[3])
739
- return this.rubyBlock(session, row, match.index + 2);
740
-
741
- return this.openingBracketBlock(session, "{", row, match.index);
742
- }
743
-
744
- var match = this.foldingStopMarker.exec(line);
745
- if (match) {
746
- if (match[3] === "end") {
747
- if (session.getTokenAt(row, match.index + 1).type === "keyword")
748
- return this.rubyBlock(session, row, match.index + 1);
749
- }
750
-
751
- if (match[1] === "=end") {
752
- if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
753
- return this.rubyBlock(session, row, match.index + 1);
754
- }
755
-
756
- return this.closingBracketBlock(session, "}", row, match.index + match[0].length);
757
- }
758
- };
759
-
760
- this.rubyBlock = function (session, row, column, tokenRange) {
761
- var stream = new TokenIterator(session, row, column);
762
-
763
- var token = stream.getCurrentToken();
764
- if (!token || (token.type != "keyword" && token.type != "comment.multiline"))
765
- return;
766
-
767
- var val = token.value;
768
- var line = session.getLine(row);
769
- switch (token.value) {
770
- case "if":
771
- case "unless":
772
- case "while":
773
- case "until":
774
- var checkToken = new RegExp("^\\s*" + token.value);
775
- if (!checkToken.test(line)) {
776
- return;
777
- }
778
- var dir = this.indentKeywords[val];
779
- break;
780
- case "when":
781
- if (/\sthen\s/.test(line)) {
782
- return;
783
- }
784
- case "elsif":
785
- case "rescue":
786
- case "ensure":
787
- var dir = 1;
788
- break;
789
- case "else":
790
- var checkToken = new RegExp("^\\s*" + token.value + "\\s*$");
791
- if (!checkToken.test(line)) {
792
- return;
793
- }
794
- var dir = 1;
795
- break;
796
- default:
797
- var dir = this.indentKeywords[val];
798
- break;
799
- }
800
-
801
- var stack = [val];
802
- if (!dir)
803
- return;
804
-
805
- var startColumn = dir === -1 ? session.getLine(row - 1).length : session.getLine(row).length;
806
- var startRow = row;
807
- var ranges = [];
808
- ranges.push(stream.getCurrentTokenRange());
809
-
810
- stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;
811
- if (token.type == "comment.multiline") {
812
- while (token = stream.step()) {
813
- if (token.type !== "comment.multiline")
814
- continue;
815
- if (dir == 1) {
816
- startColumn = 6;
817
- if (token.value == "=end") {
818
- break;
819
- }
820
- } else {
821
- if (token.value == "=begin") {
822
- break;
823
- }
824
- }
825
- }
826
- } else {
827
- while (token = stream.step()) {
828
- var ignore = false;
829
- if (token.type !== "keyword")
830
- continue;
831
- var level = dir * this.indentKeywords[token.value];
832
- line = session.getLine(stream.getCurrentTokenRow());
833
- switch (token.value) {
834
- case "do":
835
- for (var i = stream.$tokenIndex - 1; i >= 0; i--) {
836
- var prevToken = stream.$rowTokens[i];
837
- if (prevToken && (prevToken.value == "while" || prevToken.value == "until" || prevToken.value == "for")) {
838
- level = 0;
839
- break;
840
- }
841
- }
842
- break;
843
- case "else":
844
- var checkToken = new RegExp("^\\s*" + token.value + "\\s*$");
845
- if (!checkToken.test(line) || val == "case") {
846
- level = 0;
847
- ignore = true;
848
- }
849
- break;
850
- case "if":
851
- case "unless":
852
- case "while":
853
- case "until":
854
- var checkToken = new RegExp("^\\s*" + token.value);
855
- if (!checkToken.test(line)) {
856
- level = 0;
857
- ignore = true;
858
- }
859
- break;
860
- case "when":
861
- if (/\sthen\s/.test(line) || val == "case") {
862
- level = 0;
863
- ignore = true;
864
- }
865
- break;
866
- }
867
-
868
- if (level > 0) {
869
- stack.unshift(token.value);
870
- } else if (level <= 0 && ignore === false) {
871
- stack.shift();
872
- if (!stack.length) {
873
- if ((val == "while" || val == "until" || val == "for") && token.value != "do") {
874
- break;
875
- }
876
- if (token.value == "do" && dir == -1 && level != 0)
877
- break;
878
- if (token.value != "do")
879
- break;
880
- }
881
-
882
- if (level === 0) {
883
- stack.unshift(token.value);
884
- }
885
- }
886
- }
887
- }
888
-
889
- if (!token)
890
- return null;
891
-
892
- if (tokenRange) {
893
- ranges.push(stream.getCurrentTokenRange());
894
- return ranges;
895
- }
896
-
897
- var row = stream.getCurrentTokenRow();
898
- if (dir === -1) {
899
- if (token.type === "comment.multiline") {
900
- var endColumn = 6;
901
- } else {
902
- var endColumn = session.getLine(row).length;
903
- }
904
- return new Range(row, endColumn, startRow - 1, startColumn);
905
- } else
906
- return new Range(startRow, startColumn, row - 1, session.getLine(row - 1).length);
907
- };
908
-
909
- }).call(FoldMode.prototype);
910
-
911
- });
912
-
913
- ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/ruby"], function(require, exports, module) {
914
- "use strict";
915
-
916
- var oop = require("../lib/oop");
917
- var TextMode = require("./text").Mode;
918
- var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules;
919
- var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
920
- var Range = require("../range").Range;
921
- var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
922
- var FoldMode = require("./folding/ruby").FoldMode;
923
-
924
- var Mode = function() {
925
- this.HighlightRules = RubyHighlightRules;
926
- this.$outdent = new MatchingBraceOutdent();
927
- this.$behaviour = new CstyleBehaviour();
928
- this.foldingRules = new FoldMode();
929
- this.indentKeywords = this.foldingRules.indentKeywords;
930
- };
931
- oop.inherits(Mode, TextMode);
932
-
933
- (function() {
934
-
935
-
936
- this.lineCommentStart = "#";
937
-
938
- this.getNextLineIndent = function(state, line, tab) {
939
- var indent = this.$getIndent(line);
940
-
941
- var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
942
- var tokens = tokenizedLine.tokens;
943
-
944
- if (tokens.length && tokens[tokens.length - 1].type == "comment") {
945
- return indent;
946
- }
947
-
948
- if (state == "start") {
949
- var match = line.match(/^.*[\{\(\[]\s*$/);
950
- var startingClassOrMethod = line.match(/^\s*(class|def|module)\s.*$/);
951
- var startingDoBlock = line.match(/.*do(\s*|\s+\|.*\|\s*)$/);
952
- var startingConditional = line.match(/^\s*(if|else|when|elsif|unless|while|for|begin|rescue|ensure)\s*/);
953
- if (match || startingClassOrMethod || startingDoBlock || startingConditional) {
954
- indent += tab;
955
- }
956
- }
957
-
958
- return indent;
959
- };
960
-
961
- this.checkOutdent = function(state, line, input) {
962
- return /^\s+(end|else|rescue|ensure)$/.test(line + input) || this.$outdent.checkOutdent(line, input);
963
- };
964
-
965
- this.autoOutdent = function(state, session, row) {
966
- var line = session.getLine(row);
967
- if (/}/.test(line))
968
- return this.$outdent.autoOutdent(session, row);
969
- var indent = this.$getIndent(line);
970
- var prevLine = session.getLine(row - 1);
971
- var prevIndent = this.$getIndent(prevLine);
972
- var tab = session.getTabString();
973
- if (prevIndent.length <= indent.length) {
974
- if (indent.slice(-tab.length) == tab)
975
- session.remove(new Range(row, indent.length - tab.length, row, indent.length));
976
- }
977
- };
978
-
979
- this.getMatching = function(session, row, column) {
980
- if (row == undefined) {
981
- var pos = session.selection.lead;
982
- column = pos.column;
983
- row = pos.row;
984
- }
985
-
986
- var startToken = session.getTokenAt(row, column);
987
- if (startToken && startToken.value in this.indentKeywords)
988
- return this.foldingRules.rubyBlock(session, row, column, true);
989
- };
990
-
991
- this.$id = "ace/mode/ruby";
992
- this.snippetFileId = "ace/snippets/ruby";
993
- }).call(Mode.prototype);
994
-
995
- exports.Mode = Mode;
996
- }); (function() {
997
- ace.require(["ace/mode/ruby"], function(m) {
998
- if (typeof module == "object" && typeof exports == "object" && module) {
999
- module.exports = m;
1000
- }
1001
- });
1002
- })();
1003
-
1
+ ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text_highlight_rules").TextHighlightRules,s=t.constantOtherSymbol={token:"constant.other.symbol.ruby",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"};t.qString={token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},t.qqString={token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},t.tString={token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"};var i=t.constantNumericHex={token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},o=t.constantNumericBinary={token:"constant.numeric",regex:/\b(0[bB][01](?:[01]|_(?=[01]))*)\b/},l=t.constantNumericDecimal={token:"constant.numeric",regex:/\b(0[dD](?:[1-9](?:[\d]|_(?=[\d]))*|0))\b/},c=t.constantNumericDecimal={token:"constant.numeric",regex:/\b(0[oO]?(?:[1-7](?:[0-7]|_(?=[0-7]))*|0))\b/},u=t.constantNumericRational={token:"constant.numeric",regex:/\b([\d]+(?:[./][\d]+)?ri?)\b/},g=t.constantNumericComplex={token:"constant.numeric",regex:/\b([\d]i)\b/},h=t.constantNumericFloat={token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?i?\\b"},d=t.instanceVariable={token:"variable.instance",regex:"@{1,2}[a-zA-Z_\\d]+"},_=function(){var e=this.$keywords=this.createKeywordMapper({keyword:"alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield|__ENCODING__|prepend","constant.language":"true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING|RUBY_PATCHLEVEL|RUBY_REVISION|RUBY_COPYRIGHT|RUBY_ENGINE|RUBY_ENGINE_VERSION|RUBY_DESCRIPTION","variable.language":"$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger|self","support.function":"abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many|p|warn|refine|using|module_function|extend|alias_method|private_class_method|remove_method|undef_method","invalid.deprecated":"debugger"},"identifier"),t="\\\\(?:n(?:[1-7][0-7]{0,2}|0)|[nsrtvfbae'\"\\\\]|c(?:\\\\M-)?.|M-(?:\\\\C-|\\\\c)?.|C-(?:\\\\M-)?.|[0-7]{3}|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u{[\\da-fA-F]{1,6}(?:\\s[\\da-fA-F]{1,6})*})",n={"(":")","[":"]","{":"}","<":">","^":"^","|":"|","%":"%"};this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment.multiline",regex:"^=begin(?=$|\\s.*$)",next:"comment"},{token:"string.regexp",regex:/[/](?=.*\/)/,next:"regex"},[{token:["constant.other.symbol.ruby","string.start"],regex:/(:)?(")/,push:[{token:"constant.language.escape",regex:t},{token:"paren.start",regex:/#{/,push:"start"},{token:"string.end",regex:/"/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/`/,push:[{token:"constant.language.escape",regex:t},{token:"paren.start",regex:/#{/,push:"start"},{token:"string.end",regex:/`/,next:"pop"},{defaultToken:"string"}]},{token:["constant.other.symbol.ruby","string.start"],regex:/(:)?(')/,push:[{token:"constant.language.escape",regex:/\\['\\]/},{token:"string.end",regex:/'/,next:"pop"},{defaultToken:"string"}]},{token:"string.start",regex:/%[qwx]([(\[<{^|%])/,onMatch:function(e,t,n){n.length&&(n=[]);var r=e[e.length-1];return n.unshift(r,t),this.next="qStateWithoutInterpolation",this.token}},{token:"string.start",regex:/%[QWX]?([(\[<{^|%])/,onMatch:function(e,t,n){n.length&&(n=[]);var r=e[e.length-1];return n.unshift(r,t),this.next="qStateWithInterpolation",this.token}},{token:"constant.other.symbol.ruby",regex:/%[si]([(\[<{^|%])/,onMatch:function(e,t,n){n.length&&(n=[]);var r=e[e.length-1];return n.unshift(r,t),this.next="sStateWithoutInterpolation",this.token}},{token:"constant.other.symbol.ruby",regex:/%[SI]([(\[<{^|%])/,onMatch:function(e,t,n){n.length&&(n=[]);var r=e[e.length-1];return n.unshift(r,t),this.next="sStateWithInterpolation",this.token}},{token:"string.regexp",regex:/%[r]([(\[<{^|%])/,onMatch:function(e,t,n){n.length&&(n=[]);var r=e[e.length-1];return n.unshift(r,t),this.next="rState",this.token}}],{token:"punctuation",regex:"::"},d,{token:"variable.global",regex:"[$][a-zA-Z_\\d]+"},{token:"support.class",regex:"[A-Z][a-zA-Z_\\d]*"},{token:["punctuation.operator","support.function"],regex:/(\.)([a-zA-Z_\d]+)(?=\()/},{token:["punctuation.operator","identifier"],regex:/(\.)([a-zA-Z_][a-zA-Z_\d]*)/},{token:"string.character",regex:"\\B\\?(?:"+t+"|\\S)"},{token:"punctuation.operator",regex:/\?(?=.+:)/},u,g,s,i,h,o,l,c,{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"punctuation.separator.key-value",regex:"=>"},{stateName:"heredoc",onMatch:function(e,t,n){var r="-"==e[2]||"~"==e[2]?"indentedHeredoc":"heredoc",a=e.split(this.splitRegex);return n.push(r,a[3]),[{type:"constant",value:a[1]},{type:"string",value:a[2]},{type:"support.class",value:a[3]},{type:"string",value:a[4]}]},regex:"(<<[-~]?)(['\"`]?)([\\w]+)(['\"`]?)",rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^ +"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return"heredoc"===t[0]||"indentedHeredoc"===t[0]?t[0]:e}},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|/|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\||\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]",onMatch:function(e,t,n){return this.next="","}"==e&&n.length>1&&"start"!=n[1]&&(n.shift(),this.next=n.shift()),this.token}},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:/[?:,;.]/}],comment:[{token:"comment.multiline",regex:"^=end(?=$|\\s.*$)",next:"start"},{token:"comment",regex:".+"}],qStateWithInterpolation:[{token:"string.start",regex:/[(\[<{]/,onMatch:function(e,t,n){return n.length&&e===n[0]?(n.unshift(e,t),this.token):"string"}},{token:"constant.language.escape",regex:t},{token:"constant.language.escape",regex:/\\./},{token:"paren.start",regex:/#{/,push:"start"},{token:"string.end",regex:/[)\]>}^|%]/,onMatch:function(e,t,r){return r.length&&e===n[r[0]]?(r.shift(),this.next=r.shift(),this.token):(this.next="","string")}},{defaultToken:"string"}],qStateWithoutInterpolation:[{token:"string.start",regex:/[(\[<{]/,onMatch:function(e,t,n){return n.length&&e===n[0]?(n.unshift(e,t),this.token):"string"}},{token:"constant.language.escape",regex:/\\['\\]/},{token:"constant.language.escape",regex:/\\./},{token:"string.end",regex:/[)\]>}^|%]/,onMatch:function(e,t,r){return r.length&&e===n[r[0]]?(r.shift(),this.next=r.shift(),this.token):(this.next="","string")}},{defaultToken:"string"}],sStateWithoutInterpolation:[{token:"constant.other.symbol.ruby",regex:/[(\[<{]/,onMatch:function(e,t,n){return n.length&&e===n[0]?(n.unshift(e,t),this.token):"constant.other.symbol.ruby"}},{token:"constant.other.symbol.ruby",regex:/[)\]>}^|%]/,onMatch:function(e,t,r){return r.length&&e===n[r[0]]?(r.shift(),this.next=r.shift(),this.token):(this.next="","constant.other.symbol.ruby")}},{defaultToken:"constant.other.symbol.ruby"}],sStateWithInterpolation:[{token:"constant.other.symbol.ruby",regex:/[(\[<{]/,onMatch:function(e,t,n){return n.length&&e===n[0]?(n.unshift(e,t),this.token):"constant.other.symbol.ruby"}},{token:"constant.language.escape",regex:t},{token:"constant.language.escape",regex:/\\./},{token:"paren.start",regex:/#{/,push:"start"},{token:"constant.other.symbol.ruby",regex:/[)\]>}^|%]/,onMatch:function(e,t,r){return r.length&&e===n[r[0]]?(r.shift(),this.next=r.shift(),this.token):(this.next="","constant.other.symbol.ruby")}},{defaultToken:"constant.other.symbol.ruby"}],rState:[{token:"string.regexp",regex:/[(\[<{]/,onMatch:function(e,t,n){return n.length&&e===n[0]?(n.unshift(e,t),this.token):"constant.language.escape"}},{token:"paren.start",regex:/#{/,push:"start"},{token:"string.regexp",regex:/\//},{token:"string.regexp",regex:/[)\]>}^|%][imxouesn]*/,onMatch:function(e,t,r){return r.length&&e[0]===n[r[0]]?(r.shift(),this.next=r.shift(),this.token):(this.next="","constant.language.escape")}},{include:"regex"},{defaultToken:"string.regexp"}],regex:[{token:"regexp.keyword",regex:/\\[wWdDhHsS]/},{token:"constant.language.escape",regex:/\\[AGbBzZ]/},{token:"constant.language.escape",regex:/\\g<[a-zA-Z0-9]*>/},{token:["constant.language.escape","regexp.keyword","constant.language.escape"],regex:/(\\p{\^?)(Alnum|Alpha|Blank|Cntrl|Digit|Graph|Lower|Print|Punct|Space|Upper|XDigit|Word|ASCII|Any|Assigned|Arabic|Armenian|Balinese|Bengali|Bopomofo|Braille|Buginese|Buhid|Canadian_Aboriginal|Carian|Cham|Cherokee|Common|Coptic|Cuneiform|Cypriot|Cyrillic|Deseret|Devanagari|Ethiopic|Georgian|Glagolitic|Gothic|Greek|Gujarati|Gurmukhi|Han|Hangul|Hanunoo|Hebrew|Hiragana|Inherited|Kannada|Katakana|Kayah_Li|Kharoshthi|Khmer|Lao|Latin|Lepcha|Limbu|Linear_B|Lycian|Lydian|Malayalam|Mongolian|Myanmar|New_Tai_Lue|Nko|Ogham|Ol_Chiki|Old_Italic|Old_Persian|Oriya|Osmanya|Phags_Pa|Phoenician|Rejang|Runic|Saurashtra|Shavian|Sinhala|Sundanese|Syloti_Nagri|Syriac|Tagalog|Tagbanwa|Tai_Le|Tamil|Telugu|Thaana|Thai|Tibetan|Tifinagh|Ugaritic|Vai|Yi|Ll|Lm|Lt|Lu|Lo|Mn|Mc|Me|Nd|Nl|Pc|Pd|Ps|Pe|Pi|Pf|Po|No|Sm|Sc|Sk|So|Zs|Zl|Zp|Cc|Cf|Cn|Co|Cs|N|L|M|P|S|Z|C)(})/},{token:["constant.language.escape","invalid","constant.language.escape"],regex:/(\\p{\^?)([^/]*)(})/},{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:/[/][imxouesn]*/,next:"start"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?(?:[:=!>]|<'?[a-zA-Z]*'?>|<[=!])|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"regexp.keyword",regex:/\[\[:(?:alnum|alpha|blank|cntrl|digit|graph|lower|print|punct|space|upper|xdigit|word|ascii):\]\]/},{token:"constant.language.escape",regex:/\[\^?/,push:"regex_character_class"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.keyword",regex:/\\[wWdDhHsS]/},{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:/&?&?\[\^?/,push:"regex_character_class"},{token:"constant.language.escape",regex:"]",next:"pop"},{token:"constant.language.escape",regex:"-"},{defaultToken:"string.regexp.characterclass"}]},this.normalizeRules()};r.inherits(_,a),t.RubyHighlightRules=_})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,n){"use strict";var r=e("../range").Range,a=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t).match(/^(\s*\})/);if(!n)return 0;var a=n[1].length,s=e.findMatchingBracket({row:t,column:a});if(!s||s.row==t)return 0;var i=this.$getIndent(e.getLine(s.row));e.replace(new r(t,0,t,a-1),i)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(a.prototype),t.MatchingBraceOutdent=a})),ace.define("ace/mode/folding/ruby",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"],(function(e,t,n){"use strict";var r=e("../../lib/oop"),a=e("./fold_mode").FoldMode,s=e("../../range").Range,i=e("../../token_iterator").TokenIterator,o=t.FoldMode=function(){};r.inherits(o,a),function(){this.indentKeywords={class:1,def:1,module:1,do:1,unless:1,if:1,while:1,for:1,until:1,begin:1,else:0,elsif:0,rescue:0,ensure:0,when:0,end:-1,case:1,"=begin":1,"=end":-1},this.foldingStartMarker=/(?:\s|^)(def|do|while|class|unless|module|if|for|until|begin|else|elsif|case|rescue|ensure|when)\b|({\s*$)|(=begin)/,this.foldingStopMarker=/(=end(?=$|\s.*$))|(^\s*})|\b(end)\b/,this.getFoldWidget=function(e,t,n){var r,a=e.getLine(n),s=this.foldingStartMarker.test(a),i=this.foldingStopMarker.test(a);if(s&&!i)if((r=a.match(this.foldingStartMarker))[1]){if("if"==r[1]||"else"==r[1]||"while"==r[1]||"until"==r[1]||"unless"==r[1]){if("else"==r[1]&&!1===/^\s*else\s*$/.test(a))return;if(!1===/^\s*(?:if|else|while|until|unless)\s*/.test(a))return}if("when"==r[1]&&!0===/\sthen\s/.test(a))return;if("keyword"===e.getTokenAt(n,r.index+2).type)return"start"}else{if(!r[3])return"start";if("comment.multiline"===e.getTokenAt(n,r.index+1).type)return"start"}if("markbeginend"!=t||!i||s&&i)return"";if("end"===(r=a.match(this.foldingStopMarker))[3]){if("keyword"===e.getTokenAt(n,r.index+1).type)return"end"}else{if(!r[1])return"end";if("comment.multiline"===e.getTokenAt(n,r.index+1).type)return"end"}},this.getFoldWidgetRange=function(e,t,n){var r,a=e.doc.getLine(n);return(r=this.foldingStartMarker.exec(a))?r[1]||r[3]?this.rubyBlock(e,n,r.index+2):this.openingBracketBlock(e,"{",n,r.index):(r=this.foldingStopMarker.exec(a))?"end"===r[3]&&"keyword"===e.getTokenAt(n,r.index+1).type||"=end"===r[1]&&"comment.multiline"===e.getTokenAt(n,r.index+1).type?this.rubyBlock(e,n,r.index+1):this.closingBracketBlock(e,"}",n,r.index+r[0].length):void 0},this.rubyBlock=function(e,t,n,r){var a=new i(e,t,n),o=a.getCurrentToken();if(o&&("keyword"==o.type||"comment.multiline"==o.type)){var l=o.value,c=e.getLine(t);switch(o.value){case"if":case"unless":case"while":case"until":if(!new RegExp("^\\s*"+o.value).test(c))return;var u=this.indentKeywords[l];break;case"when":if(/\sthen\s/.test(c))return;case"elsif":case"rescue":case"ensure":u=1;break;case"else":if(!new RegExp("^\\s*"+o.value+"\\s*$").test(c))return;u=1;break;default:u=this.indentKeywords[l]}var g=[l];if(u){var h=-1===u?e.getLine(t-1).length:e.getLine(t).length,d=t,_=[];if(_.push(a.getCurrentTokenRange()),a.step=-1===u?a.stepBackward:a.stepForward,"comment.multiline"==o.type){for(;o=a.step();)if("comment.multiline"===o.type)if(1==u){if(h=6,"=end"==o.value)break}else if("=begin"==o.value)break}else for(;o=a.step();){var f=!1;if("keyword"===o.type){var p=u*this.indentKeywords[o.value];switch(c=e.getLine(a.getCurrentTokenRow()),o.value){case"do":for(var k=a.$tokenIndex-1;k>=0;k--){var x=a.$rowTokens[k];if(x&&("while"==x.value||"until"==x.value||"for"==x.value)){p=0;break}}break;case"else":new RegExp("^\\s*"+o.value+"\\s*$").test(c)&&"case"!=l||(p=0,f=!0);break;case"if":case"unless":case"while":case"until":new RegExp("^\\s*"+o.value).test(c)||(p=0,f=!0);break;case"when":(/\sthen\s/.test(c)||"case"==l)&&(p=0,f=!0)}if(p>0)g.unshift(o.value);else if(p<=0&&!1===f){if(g.shift(),!g.length){if(("while"==l||"until"==l||"for"==l)&&"do"!=o.value)break;if("do"==o.value&&-1==u&&0!=p)break;if("do"!=o.value)break}0===p&&g.unshift(o.value)}}}if(!o)return null;if(r)return _.push(a.getCurrentTokenRange()),_;t=a.getCurrentTokenRow();if(-1===u){if("comment.multiline"===o.type)var m=6;else m=e.getLine(t).length;return new s(t,m,d-1,h)}return new s(d,h,t-1,e.getLine(t-1).length)}}}}.call(o.prototype)})),ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/ruby"],(function(e,t,n){"use strict";var r=e("../lib/oop"),a=e("./text").Mode,s=e("./ruby_highlight_rules").RubyHighlightRules,i=e("./matching_brace_outdent").MatchingBraceOutdent,o=e("../range").Range,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/ruby").FoldMode,u=function(){this.HighlightRules=s,this.$outdent=new i,this.$behaviour=new l,this.foldingRules=new c,this.indentKeywords=this.foldingRules.indentKeywords};r.inherits(u,a),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),a=this.getTokenizer().getLineTokens(t,e).tokens;if(a.length&&"comment"==a[a.length-1].type)return r;if("start"==e){var s=t.match(/^.*[\{\(\[]\s*$/),i=t.match(/^\s*(class|def|module)\s.*$/),o=t.match(/.*do(\s*|\s+\|.*\|\s*)$/),l=t.match(/^\s*(if|else|when|elsif|unless|while|for|begin|rescue|ensure)\s*/);(s||i||o||l)&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return/^\s+(end|else|rescue|ensure)$/.test(t+n)||this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){var r=t.getLine(n);if(/}/.test(r))return this.$outdent.autoOutdent(t,n);var a=this.$getIndent(r),s=t.getLine(n-1),i=this.$getIndent(s),l=t.getTabString();i.length<=a.length&&a.slice(-l.length)==l&&t.remove(new o(n,a.length-l.length,n,a.length))},this.getMatching=function(e,t,n){if(null==t){var r=e.selection.lead;n=r.column,t=r.row}var a=e.getTokenAt(t,n);if(a&&a.value in this.indentKeywords)return this.foldingRules.rubyBlock(e,t,n,!0)},this.$id="ace/mode/ruby",this.snippetFileId="ace/snippets/ruby"}.call(u.prototype),t.Mode=u})),ace.require(["ace/mode/ruby"],(function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}));