@openui5/sap.ui.codeeditor 1.94.0 → 1.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/.reuse/dep5 +12 -12
  2. package/THIRDPARTY.txt +21 -17
  3. package/package.json +2 -2
  4. package/src/sap/ui/codeeditor/.library +6 -6
  5. package/src/sap/ui/codeeditor/CodeEditor.js +41 -15
  6. package/src/sap/ui/codeeditor/js/ace/ace.js +1705 -1669
  7. package/src/sap/ui/codeeditor/js/ace/css/ace.css +1025 -0
  8. package/src/sap/ui/codeeditor/js/ace/css/ambiance-1.png +0 -0
  9. package/src/sap/ui/codeeditor/js/ace/css/ambiance-2.png +0 -0
  10. package/src/sap/ui/codeeditor/js/ace/css/chrome-1.png +0 -0
  11. package/src/sap/ui/codeeditor/js/ace/css/clouds-1.png +0 -0
  12. package/src/sap/ui/codeeditor/js/ace/css/clouds_midnight-1.png +0 -0
  13. package/src/sap/ui/codeeditor/js/ace/css/cobalt-1.png +0 -0
  14. package/src/sap/ui/codeeditor/js/ace/css/crimson_editor-1.png +0 -0
  15. package/src/sap/ui/codeeditor/js/ace/css/dawn-1.png +0 -0
  16. package/src/sap/ui/codeeditor/js/ace/css/dracula-1.png +0 -0
  17. package/src/sap/ui/codeeditor/js/ace/css/dreamweaver-1.png +0 -0
  18. package/src/sap/ui/codeeditor/js/ace/css/eclipse-1.png +0 -0
  19. package/src/sap/ui/codeeditor/js/ace/css/github-1.png +0 -0
  20. package/src/sap/ui/codeeditor/js/ace/css/gob-1.png +0 -0
  21. package/src/sap/ui/codeeditor/js/ace/css/gruvbox-1.png +0 -0
  22. package/src/sap/ui/codeeditor/js/ace/css/idle_fingers-1.png +0 -0
  23. package/src/sap/ui/codeeditor/js/ace/css/iplastic-1.png +0 -0
  24. package/src/sap/ui/codeeditor/js/ace/css/iplastic-2.png +0 -0
  25. package/src/sap/ui/codeeditor/js/ace/css/kr_theme-1.png +0 -0
  26. package/src/sap/ui/codeeditor/js/ace/css/main-1.png +0 -0
  27. package/src/sap/ui/codeeditor/js/ace/css/main-10.png +0 -0
  28. package/src/sap/ui/codeeditor/js/ace/css/main-11.png +0 -0
  29. package/src/sap/ui/codeeditor/js/ace/css/main-12.png +0 -0
  30. package/src/sap/ui/codeeditor/js/ace/css/main-13.png +0 -0
  31. package/src/sap/ui/codeeditor/js/ace/css/main-14.png +0 -0
  32. package/src/sap/ui/codeeditor/js/ace/css/main-15.png +0 -0
  33. package/src/sap/ui/codeeditor/js/ace/css/main-16.png +0 -0
  34. package/src/sap/ui/codeeditor/js/ace/css/main-2.png +0 -0
  35. package/src/sap/ui/codeeditor/js/ace/css/main-3.png +0 -0
  36. package/src/sap/ui/codeeditor/js/ace/css/main-4.png +0 -0
  37. package/src/sap/ui/codeeditor/js/ace/css/main-5.png +0 -0
  38. package/src/sap/ui/codeeditor/js/ace/css/main-6.png +0 -0
  39. package/src/sap/ui/codeeditor/js/ace/css/main-7.png +0 -0
  40. package/src/sap/ui/codeeditor/js/ace/css/main-8.png +0 -0
  41. package/src/sap/ui/codeeditor/js/ace/css/main-9.png +0 -0
  42. package/src/sap/ui/codeeditor/js/ace/css/merbivore-1.png +0 -0
  43. package/src/sap/ui/codeeditor/js/ace/css/merbivore_soft-1.png +0 -0
  44. package/src/sap/ui/codeeditor/js/ace/css/mono_industrial-1.png +0 -0
  45. package/src/sap/ui/codeeditor/js/ace/css/monokai-1.png +0 -0
  46. package/src/sap/ui/codeeditor/js/ace/css/one_dark-1.png +0 -0
  47. package/src/sap/ui/codeeditor/js/ace/css/pastel_on_dark-1.png +0 -0
  48. package/src/sap/ui/codeeditor/js/ace/css/solarized_dark-1.png +0 -0
  49. package/src/sap/ui/codeeditor/js/ace/css/solarized_light-1.png +0 -0
  50. package/src/sap/ui/codeeditor/js/ace/css/sqlserver-1.png +0 -0
  51. package/src/sap/ui/codeeditor/js/ace/css/terminal-1.png +0 -0
  52. package/src/sap/ui/codeeditor/js/ace/css/textmate-1.png +0 -0
  53. package/src/sap/ui/codeeditor/js/ace/css/theme/ambiance.css +168 -0
  54. package/src/sap/ui/codeeditor/js/ace/css/theme/chaos.css +146 -0
  55. package/src/sap/ui/codeeditor/js/ace/css/theme/chrome.css +119 -0
  56. package/src/sap/ui/codeeditor/js/ace/css/theme/clouds.css +87 -0
  57. package/src/sap/ui/codeeditor/js/ace/css/theme/clouds_midnight.css +88 -0
  58. package/src/sap/ui/codeeditor/js/ace/css/theme/cobalt.css +104 -0
  59. package/src/sap/ui/codeeditor/js/ace/css/theme/crimson_editor.css +110 -0
  60. package/src/sap/ui/codeeditor/js/ace/css/theme/dawn.css +100 -0
  61. package/src/sap/ui/codeeditor/js/ace/css/theme/dracula.css +119 -0
  62. package/src/sap/ui/codeeditor/js/ace/css/theme/dreamweaver.css +134 -0
  63. package/src/sap/ui/codeeditor/js/ace/css/theme/eclipse.css +88 -0
  64. package/src/sap/ui/codeeditor/js/ace/css/theme/github.css +95 -0
  65. package/src/sap/ui/codeeditor/js/ace/css/theme/gob.css +103 -0
  66. package/src/sap/ui/codeeditor/js/ace/css/theme/gruvbox.css +73 -0
  67. package/src/sap/ui/codeeditor/js/ace/css/theme/idle_fingers.css +88 -0
  68. package/src/sap/ui/codeeditor/js/ace/css/theme/iplastic.css +113 -0
  69. package/src/sap/ui/codeeditor/js/ace/css/theme/katzenmilch.css +113 -0
  70. package/src/sap/ui/codeeditor/js/ace/css/theme/kr_theme.css +96 -0
  71. package/src/sap/ui/codeeditor/js/ace/css/theme/kuroir.css +52 -0
  72. package/src/sap/ui/codeeditor/js/ace/css/theme/merbivore.css +87 -0
  73. package/src/sap/ui/codeeditor/js/ace/css/theme/merbivore_soft.css +88 -0
  74. package/src/sap/ui/codeeditor/js/ace/css/theme/mono_industrial.css +99 -0
  75. package/src/sap/ui/codeeditor/js/ace/css/theme/monokai.css +97 -0
  76. package/src/sap/ui/codeeditor/js/ace/css/theme/nord_dark.css +85 -0
  77. package/src/sap/ui/codeeditor/js/ace/css/theme/one_dark.css +123 -0
  78. package/src/sap/ui/codeeditor/js/ace/css/theme/pastel_on_dark.css +100 -0
  79. package/src/sap/ui/codeeditor/js/ace/css/theme/solarized_dark.css +80 -0
  80. package/src/sap/ui/codeeditor/js/ace/css/theme/solarized_light.css +83 -0
  81. package/src/sap/ui/codeeditor/js/ace/css/theme/sqlserver.css +129 -0
  82. package/src/sap/ui/codeeditor/js/ace/css/theme/terminal.css +105 -0
  83. package/src/sap/ui/codeeditor/js/ace/css/theme/textmate.css +119 -0
  84. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow.css +100 -0
  85. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night.css +100 -0
  86. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night_blue.css +98 -0
  87. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night_bright.css +113 -0
  88. package/src/sap/ui/codeeditor/js/ace/css/theme/tomorrow_night_eighties.css +100 -0
  89. package/src/sap/ui/codeeditor/js/ace/css/theme/twilight.css +100 -0
  90. package/src/sap/ui/codeeditor/js/ace/css/theme/vibrant_ink.css +86 -0
  91. package/src/sap/ui/codeeditor/js/ace/css/theme/xcode.css +80 -0
  92. package/src/sap/ui/codeeditor/js/ace/css/tomorrow-1.png +0 -0
  93. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night-1.png +0 -0
  94. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night_blue-1.png +0 -0
  95. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night_bright-1.png +0 -0
  96. package/src/sap/ui/codeeditor/js/ace/css/tomorrow_night_eighties-1.png +0 -0
  97. package/src/sap/ui/codeeditor/js/ace/css/twilight-1.png +0 -0
  98. package/src/sap/ui/codeeditor/js/ace/css/vibrant_ink-1.png +0 -0
  99. package/src/sap/ui/codeeditor/js/ace/css/xcode-1.png +0 -0
  100. package/src/sap/ui/codeeditor/js/ace/ext-beautify.js +17 -10
  101. package/src/sap/ui/codeeditor/js/ace/ext-code_lens.js +238 -0
  102. package/src/sap/ui/codeeditor/js/ace/ext-elastic_tabstops_lite.js +1 -1
  103. package/src/sap/ui/codeeditor/js/ace/ext-emmet.js +343 -238
  104. package/src/sap/ui/codeeditor/js/ace/ext-hardwrap.js +85 -0
  105. package/src/sap/ui/codeeditor/js/ace/ext-keybinding_menu.js +26 -11
  106. package/src/sap/ui/codeeditor/js/ace/ext-language_tools.js +435 -272
  107. package/src/sap/ui/codeeditor/js/ace/ext-linking.js +2 -2
  108. package/src/sap/ui/codeeditor/js/ace/ext-modelist.js +22 -11
  109. package/src/sap/ui/codeeditor/js/ace/ext-options.js +85 -35
  110. package/src/sap/ui/codeeditor/js/ace/ext-prompt.js +510 -299
  111. package/src/sap/ui/codeeditor/js/ace/ext-rtl.js +1 -3
  112. package/src/sap/ui/codeeditor/js/ace/ext-searchbox.js +2 -2
  113. package/src/sap/ui/codeeditor/js/ace/ext-settings_menu.js +89 -39
  114. package/src/sap/ui/codeeditor/js/ace/ext-spellcheck.js +1 -2
  115. package/src/sap/ui/codeeditor/js/ace/ext-split.js +2 -2
  116. package/src/sap/ui/codeeditor/js/ace/ext-static_highlight.js +3 -229
  117. package/src/sap/ui/codeeditor/js/ace/ext-statusbar.js +3 -3
  118. package/src/sap/ui/codeeditor/js/ace/ext-textarea.js +3 -563
  119. package/src/sap/ui/codeeditor/js/ace/ext-themelist.js +4 -2
  120. package/src/sap/ui/codeeditor/js/ace/ext-whitespace.js +1 -1
  121. package/src/sap/ui/codeeditor/js/ace/keybinding-emacs.js +29 -30
  122. package/src/sap/ui/codeeditor/js/ace/keybinding-sublime.js +2 -5
  123. package/src/sap/ui/codeeditor/js/ace/keybinding-vim.js +718 -184
  124. package/src/sap/ui/codeeditor/js/ace/keybinding-vscode.js +262 -0
  125. package/src/sap/ui/codeeditor/js/ace/mode-abap.js +3 -3
  126. package/src/sap/ui/codeeditor/js/ace/mode-abc.js +6 -3
  127. package/src/sap/ui/codeeditor/js/ace/mode-actionscript.js +4 -3
  128. package/src/sap/ui/codeeditor/js/ace/mode-ada.js +2 -2
  129. package/src/sap/ui/codeeditor/js/ace/mode-alda.js +311 -0
  130. package/src/sap/ui/codeeditor/js/ace/mode-apache_conf.js +3 -3
  131. package/src/sap/ui/codeeditor/js/ace/mode-apex.js +4 -4
  132. package/src/sap/ui/codeeditor/js/ace/mode-applescript.js +3 -3
  133. package/src/sap/ui/codeeditor/js/ace/mode-aql.js +2 -2
  134. package/src/sap/ui/codeeditor/js/ace/mode-asciidoc.js +3 -3
  135. package/src/sap/ui/codeeditor/js/ace/mode-asl.js +21 -20
  136. package/src/sap/ui/codeeditor/js/ace/mode-assembly_x86.js +3 -3
  137. package/src/sap/ui/codeeditor/js/ace/mode-autohotkey.js +6 -4
  138. package/src/sap/ui/codeeditor/js/ace/mode-batchfile.js +3 -3
  139. package/src/sap/ui/codeeditor/js/ace/mode-c9search.js +4 -4
  140. package/src/sap/ui/codeeditor/js/ace/mode-c_cpp.js +7 -6
  141. package/src/sap/ui/codeeditor/js/ace/mode-cirru.js +5 -5
  142. package/src/sap/ui/codeeditor/js/ace/mode-clojure.js +4 -3
  143. package/src/sap/ui/codeeditor/js/ace/mode-cobol.js +2 -2
  144. package/src/sap/ui/codeeditor/js/ace/mode-coffee.js +5 -4
  145. package/src/sap/ui/codeeditor/js/ace/mode-coldfusion.js +22 -19
  146. package/src/sap/ui/codeeditor/js/ace/mode-crystal.js +4 -4
  147. package/src/sap/ui/codeeditor/js/ace/mode-csharp.js +6 -6
  148. package/src/sap/ui/codeeditor/js/ace/mode-csound_document.js +178 -61
  149. package/src/sap/ui/codeeditor/js/ace/mode-csound_orchestra.js +162 -51
  150. package/src/sap/ui/codeeditor/js/ace/mode-csound_score.js +34 -25
  151. package/src/sap/ui/codeeditor/js/ace/mode-csp.js +2 -2
  152. package/src/sap/ui/codeeditor/js/ace/mode-css.js +7 -6
  153. package/src/sap/ui/codeeditor/js/ace/mode-curly.js +22 -19
  154. package/src/sap/ui/codeeditor/js/ace/mode-d.js +5 -5
  155. package/src/sap/ui/codeeditor/js/ace/mode-dart.js +10 -8
  156. package/src/sap/ui/codeeditor/js/ace/mode-diff.js +4 -3
  157. package/src/sap/ui/codeeditor/js/ace/mode-django.js +22 -18
  158. package/src/sap/ui/codeeditor/js/ace/mode-dockerfile.js +6 -5
  159. package/src/sap/ui/codeeditor/js/ace/mode-dot.js +5 -5
  160. package/src/sap/ui/codeeditor/js/ace/mode-drools.js +7 -6
  161. package/src/sap/ui/codeeditor/js/ace/mode-edifact.js +4 -3
  162. package/src/sap/ui/codeeditor/js/ace/mode-eiffel.js +2 -2
  163. package/src/sap/ui/codeeditor/js/ace/mode-ejs.js +692 -184
  164. package/src/sap/ui/codeeditor/js/ace/mode-elixir.js +3 -3
  165. package/src/sap/ui/codeeditor/js/ace/mode-elm.js +3 -3
  166. package/src/sap/ui/codeeditor/js/ace/mode-erlang.js +4 -3
  167. package/src/sap/ui/codeeditor/js/ace/mode-forth.js +3 -3
  168. package/src/sap/ui/codeeditor/js/ace/mode-fortran.js +3 -3
  169. package/src/sap/ui/codeeditor/js/ace/mode-fsharp.js +5 -5
  170. package/src/sap/ui/codeeditor/js/ace/mode-fsl.js +4 -3
  171. package/src/sap/ui/codeeditor/js/ace/mode-ftl.js +7 -7
  172. package/src/sap/ui/codeeditor/js/ace/mode-gcode.js +2 -2
  173. package/src/sap/ui/codeeditor/js/ace/mode-gherkin.js +2 -4
  174. package/src/sap/ui/codeeditor/js/ace/mode-gitignore.js +2 -2
  175. package/src/sap/ui/codeeditor/js/ace/mode-glsl.js +9 -8
  176. package/src/sap/ui/codeeditor/js/ace/mode-gobstones.js +259 -99
  177. package/src/sap/ui/codeeditor/js/ace/mode-golang.js +5 -5
  178. package/src/sap/ui/codeeditor/js/ace/mode-graphqlschema.js +4 -3
  179. package/src/sap/ui/codeeditor/js/ace/mode-groovy.js +8 -7
  180. package/src/sap/ui/codeeditor/js/ace/mode-haml.js +428 -113
  181. package/src/sap/ui/codeeditor/js/ace/mode-handlebars.js +23 -20
  182. package/src/sap/ui/codeeditor/js/ace/mode-haskell.js +4 -3
  183. package/src/sap/ui/codeeditor/js/ace/mode-haskell_cabal.js +3 -3
  184. package/src/sap/ui/codeeditor/js/ace/mode-haxe.js +5 -5
  185. package/src/sap/ui/codeeditor/js/ace/mode-hjson.js +3 -3
  186. package/src/sap/ui/codeeditor/js/ace/mode-html.js +20 -17
  187. package/src/sap/ui/codeeditor/js/ace/mode-html_elixir.js +25 -22
  188. package/src/sap/ui/codeeditor/js/ace/mode-html_ruby.js +693 -185
  189. package/src/sap/ui/codeeditor/js/ace/mode-ini.js +3 -3
  190. package/src/sap/ui/codeeditor/js/ace/mode-io.js +5 -10
  191. package/src/sap/ui/codeeditor/js/ace/mode-jack.js +4 -4
  192. package/src/sap/ui/codeeditor/js/ace/mode-jade.js +13 -13
  193. package/src/sap/ui/codeeditor/js/ace/mode-java.js +11 -9
  194. package/src/sap/ui/codeeditor/js/ace/mode-javascript.js +6 -5
  195. package/src/sap/ui/codeeditor/js/ace/mode-json.js +7 -4
  196. package/src/sap/ui/codeeditor/js/ace/mode-json5.js +360 -0
  197. package/src/sap/ui/codeeditor/js/ace/mode-jsoniq.js +6 -5
  198. package/src/sap/ui/codeeditor/js/ace/mode-jsp.js +12 -11
  199. package/src/sap/ui/codeeditor/js/ace/mode-jssm.js +3 -3
  200. package/src/sap/ui/codeeditor/js/ace/mode-jsx.js +5 -5
  201. package/src/sap/ui/codeeditor/js/ace/mode-julia.js +3 -3
  202. package/src/sap/ui/codeeditor/js/ace/mode-kotlin.js +5 -3
  203. package/src/sap/ui/codeeditor/js/ace/mode-latex.js +3 -3
  204. package/src/sap/ui/codeeditor/js/ace/mode-latte.js +2708 -0
  205. package/src/sap/ui/codeeditor/js/ace/mode-less.js +7 -7
  206. package/src/sap/ui/codeeditor/js/ace/mode-liquid.js +24 -20
  207. package/src/sap/ui/codeeditor/js/ace/mode-lisp.js +2 -2
  208. package/src/sap/ui/codeeditor/js/ace/mode-livescript.js +2 -2
  209. package/src/sap/ui/codeeditor/js/ace/mode-logiql.js +4 -4
  210. package/src/sap/ui/codeeditor/js/ace/mode-logtalk.js +3 -3
  211. package/src/sap/ui/codeeditor/js/ace/mode-lsl.js +5 -4
  212. package/src/sap/ui/codeeditor/js/ace/mode-lua.js +4 -3
  213. package/src/sap/ui/codeeditor/js/ace/mode-luapage.js +26 -22
  214. package/src/sap/ui/codeeditor/js/ace/mode-lucene.js +78 -10
  215. package/src/sap/ui/codeeditor/js/ace/mode-makefile.js +5 -4
  216. package/src/sap/ui/codeeditor/js/ace/mode-markdown.js +30 -24
  217. package/src/sap/ui/codeeditor/js/ace/mode-mask.js +12 -12
  218. package/src/sap/ui/codeeditor/js/ace/mode-matlab.js +2 -2
  219. package/src/sap/ui/codeeditor/js/ace/mode-maze.js +4 -3
  220. package/src/sap/ui/codeeditor/js/ace/mode-mediawiki.js +592 -0
  221. package/src/sap/ui/codeeditor/js/ace/mode-mel.js +3 -3
  222. package/src/sap/ui/codeeditor/js/ace/{mode-mipsassembler.js → mode-mips.js} +99 -31
  223. package/src/sap/ui/codeeditor/js/ace/mode-mixal.js +2 -2
  224. package/src/sap/ui/codeeditor/js/ace/mode-mushcode.js +3 -3
  225. package/src/sap/ui/codeeditor/js/ace/mode-mysql.js +3 -3
  226. package/src/sap/ui/codeeditor/js/ace/mode-nginx.js +13 -12
  227. package/src/sap/ui/codeeditor/js/ace/mode-nim.js +10 -9
  228. package/src/sap/ui/codeeditor/js/ace/mode-nix.js +9 -8
  229. package/src/sap/ui/codeeditor/js/ace/mode-nsis.js +4 -4
  230. package/src/sap/ui/codeeditor/js/ace/mode-nunjucks.js +2698 -0
  231. package/src/sap/ui/codeeditor/js/ace/mode-objectivec.js +6 -6
  232. package/src/sap/ui/codeeditor/js/ace/mode-ocaml.js +3 -3
  233. package/src/sap/ui/codeeditor/js/ace/mode-pascal.js +3 -3
  234. package/src/sap/ui/codeeditor/js/ace/mode-perl.js +5 -4
  235. package/src/sap/ui/codeeditor/js/ace/mode-pgsql.js +9 -9
  236. package/src/sap/ui/codeeditor/js/ace/mode-php.js +513 -302
  237. package/src/sap/ui/codeeditor/js/ace/mode-php_laravel_blade.js +515 -304
  238. package/src/sap/ui/codeeditor/js/ace/mode-pig.js +3 -3
  239. package/src/sap/ui/codeeditor/js/ace/mode-plain_text.js +1 -1
  240. package/src/sap/ui/codeeditor/js/ace/mode-powershell.js +4 -4
  241. package/src/sap/ui/codeeditor/js/ace/mode-praat.js +4 -4
  242. package/src/sap/ui/codeeditor/js/ace/mode-prisma.js +489 -0
  243. package/src/sap/ui/codeeditor/js/ace/mode-prolog.js +3 -3
  244. package/src/sap/ui/codeeditor/js/ace/mode-properties.js +2 -2
  245. package/src/sap/ui/codeeditor/js/ace/mode-protobuf.js +9 -8
  246. package/src/sap/ui/codeeditor/js/ace/mode-puppet.js +12 -13
  247. package/src/sap/ui/codeeditor/js/ace/mode-python.js +6 -5
  248. package/src/sap/ui/codeeditor/js/ace/mode-qml.js +381 -0
  249. package/src/sap/ui/codeeditor/js/ace/mode-r.js +5 -4
  250. package/src/sap/ui/codeeditor/js/ace/{mode-perl6.js → mode-raku.js} +13 -13
  251. package/src/sap/ui/codeeditor/js/ace/mode-razor.js +25 -21
  252. package/src/sap/ui/codeeditor/js/ace/mode-rdoc.js +4 -4
  253. package/src/sap/ui/codeeditor/js/ace/mode-red.js +4 -4
  254. package/src/sap/ui/codeeditor/js/ace/mode-redshift.js +4 -4
  255. package/src/sap/ui/codeeditor/js/ace/mode-rhtml.js +24 -21
  256. package/src/sap/ui/codeeditor/js/ace/mode-rst.js +3 -2
  257. package/src/sap/ui/codeeditor/js/ace/mode-ruby.js +672 -167
  258. package/src/sap/ui/codeeditor/js/ace/mode-rust.js +9 -8
  259. package/src/sap/ui/codeeditor/js/ace/mode-sass.js +5 -5
  260. package/src/sap/ui/codeeditor/js/ace/mode-scad.js +5 -5
  261. package/src/sap/ui/codeeditor/js/ace/mode-scala.js +8 -7
  262. package/src/sap/ui/codeeditor/js/ace/mode-scheme.js +3 -3
  263. package/src/sap/ui/codeeditor/js/ace/mode-scrypt.js +364 -0
  264. package/src/sap/ui/codeeditor/js/ace/mode-scss.js +7 -7
  265. package/src/sap/ui/codeeditor/js/ace/mode-sh.js +4 -3
  266. package/src/sap/ui/codeeditor/js/ace/mode-sjs.js +8 -7
  267. package/src/sap/ui/codeeditor/js/ace/mode-slim.js +745 -146
  268. package/src/sap/ui/codeeditor/js/ace/mode-smarty.js +22 -19
  269. package/src/sap/ui/codeeditor/js/ace/mode-smithy.js +507 -0
  270. package/src/sap/ui/codeeditor/js/ace/mode-snippets.js +3 -2
  271. package/src/sap/ui/codeeditor/js/ace/mode-soy_template.js +22 -19
  272. package/src/sap/ui/codeeditor/js/ace/mode-space.js +3 -3
  273. package/src/sap/ui/codeeditor/js/ace/mode-sparql.js +3 -3
  274. package/src/sap/ui/codeeditor/js/ace/mode-sql.js +163 -2
  275. package/src/sap/ui/codeeditor/js/ace/mode-sqlserver.js +7 -6
  276. package/src/sap/ui/codeeditor/js/ace/mode-stylus.js +4 -4
  277. package/src/sap/ui/codeeditor/js/ace/mode-svg.js +13 -12
  278. package/src/sap/ui/codeeditor/js/ace/mode-swift.js +10 -4
  279. package/src/sap/ui/codeeditor/js/ace/mode-tcl.js +8 -4
  280. package/src/sap/ui/codeeditor/js/ace/mode-terraform.js +18 -15
  281. package/src/sap/ui/codeeditor/js/ace/mode-tex.js +4 -3
  282. package/src/sap/ui/codeeditor/js/ace/mode-textile.js +4 -3
  283. package/src/sap/ui/codeeditor/js/ace/mode-toml.js +3 -3
  284. package/src/sap/ui/codeeditor/js/ace/mode-tsx.js +9 -8
  285. package/src/sap/ui/codeeditor/js/ace/mode-turtle.js +3 -3
  286. package/src/sap/ui/codeeditor/js/ace/mode-twig.js +22 -19
  287. package/src/sap/ui/codeeditor/js/ace/mode-typescript.js +8 -7
  288. package/src/sap/ui/codeeditor/js/ace/mode-vala.js +5 -4
  289. package/src/sap/ui/codeeditor/js/ace/mode-vbscript.js +445 -16
  290. package/src/sap/ui/codeeditor/js/ace/mode-velocity.js +24 -20
  291. package/src/sap/ui/codeeditor/js/ace/mode-verilog.js +2 -2
  292. package/src/sap/ui/codeeditor/js/ace/mode-vhdl.js +7 -8
  293. package/src/sap/ui/codeeditor/js/ace/mode-visualforce.js +22 -19
  294. package/src/sap/ui/codeeditor/js/ace/mode-wollok.js +9 -7
  295. package/src/sap/ui/codeeditor/js/ace/mode-xml.js +4 -4
  296. package/src/sap/ui/codeeditor/js/ace/mode-xquery.js +6 -5
  297. package/src/sap/ui/codeeditor/js/ace/mode-yaml.js +4 -4
  298. package/src/sap/ui/codeeditor/js/ace/mode-zeek.js +539 -0
  299. package/src/sap/ui/codeeditor/js/ace/snippets/abap.js +1 -7
  300. package/src/sap/ui/codeeditor/js/ace/snippets/abc.js +2 -3
  301. package/src/sap/ui/codeeditor/js/ace/snippets/actionscript.js +2 -3
  302. package/src/sap/ui/codeeditor/js/ace/snippets/ada.js +1 -7
  303. package/src/sap/ui/codeeditor/js/ace/snippets/alda.js +9 -0
  304. package/src/sap/ui/codeeditor/js/ace/snippets/apache_conf.js +1 -7
  305. package/src/sap/ui/codeeditor/js/ace/snippets/apex.js +2 -7
  306. package/src/sap/ui/codeeditor/js/ace/snippets/applescript.js +1 -7
  307. package/src/sap/ui/codeeditor/js/ace/snippets/aql.js +2 -7
  308. package/src/sap/ui/codeeditor/js/ace/snippets/asciidoc.js +1 -7
  309. package/src/sap/ui/codeeditor/js/ace/snippets/asl.js +1 -6
  310. package/src/sap/ui/codeeditor/js/ace/snippets/assembly_x86.js +1 -7
  311. package/src/sap/ui/codeeditor/js/ace/snippets/autohotkey.js +1 -7
  312. package/src/sap/ui/codeeditor/js/ace/snippets/batchfile.js +1 -7
  313. package/src/sap/ui/codeeditor/js/ace/snippets/c9search.js +1 -7
  314. package/src/sap/ui/codeeditor/js/ace/snippets/c_cpp.js +2 -3
  315. package/src/sap/ui/codeeditor/js/ace/snippets/cirru.js +1 -7
  316. package/src/sap/ui/codeeditor/js/ace/snippets/clojure.js +2 -3
  317. package/src/sap/ui/codeeditor/js/ace/snippets/cobol.js +1 -7
  318. package/src/sap/ui/codeeditor/js/ace/snippets/coffee.js +2 -3
  319. package/src/sap/ui/codeeditor/js/ace/snippets/coldfusion.js +1 -7
  320. package/src/sap/ui/codeeditor/js/ace/snippets/crystal.js +2 -7
  321. package/src/sap/ui/codeeditor/js/ace/snippets/csharp.js +1 -7
  322. package/src/sap/ui/codeeditor/js/ace/snippets/csound_document.js +2 -3
  323. package/src/sap/ui/codeeditor/js/ace/snippets/csound_orchestra.js +2 -3
  324. package/src/sap/ui/codeeditor/js/ace/snippets/csound_score.js +1 -7
  325. package/src/sap/ui/codeeditor/js/ace/snippets/csp.js +1 -7
  326. package/src/sap/ui/codeeditor/js/ace/snippets/css.js +2 -3
  327. package/src/sap/ui/codeeditor/js/ace/snippets/curly.js +1 -7
  328. package/src/sap/ui/codeeditor/js/ace/snippets/d.js +1 -7
  329. package/src/sap/ui/codeeditor/js/ace/snippets/dart.js +2 -3
  330. package/src/sap/ui/codeeditor/js/ace/snippets/diff.js +2 -3
  331. package/src/sap/ui/codeeditor/js/ace/snippets/django.js +2 -3
  332. package/src/sap/ui/codeeditor/js/ace/snippets/dockerfile.js +1 -7
  333. package/src/sap/ui/codeeditor/js/ace/snippets/dot.js +1 -7
  334. package/src/sap/ui/codeeditor/js/ace/snippets/drools.js +2 -3
  335. package/src/sap/ui/codeeditor/js/ace/snippets/edifact.js +2 -3
  336. package/src/sap/ui/codeeditor/js/ace/snippets/eiffel.js +1 -7
  337. package/src/sap/ui/codeeditor/js/ace/snippets/ejs.js +1 -7
  338. package/src/sap/ui/codeeditor/js/ace/snippets/elixir.js +1 -7
  339. package/src/sap/ui/codeeditor/js/ace/snippets/elm.js +1 -7
  340. package/src/sap/ui/codeeditor/js/ace/snippets/erlang.js +2 -3
  341. package/src/sap/ui/codeeditor/js/ace/snippets/forth.js +1 -7
  342. package/src/sap/ui/codeeditor/js/ace/snippets/fortran.js +1 -7
  343. package/src/sap/ui/codeeditor/js/ace/snippets/fsharp.js +1 -7
  344. package/src/sap/ui/codeeditor/js/ace/snippets/fsl.js +2 -2
  345. package/src/sap/ui/codeeditor/js/ace/snippets/ftl.js +1 -7
  346. package/src/sap/ui/codeeditor/js/ace/snippets/gcode.js +1 -7
  347. package/src/sap/ui/codeeditor/js/ace/snippets/gherkin.js +1 -7
  348. package/src/sap/ui/codeeditor/js/ace/snippets/gitignore.js +1 -7
  349. package/src/sap/ui/codeeditor/js/ace/snippets/glsl.js +1 -7
  350. package/src/sap/ui/codeeditor/js/ace/snippets/gobstones.js +1695 -26
  351. package/src/sap/ui/codeeditor/js/ace/snippets/golang.js +1 -7
  352. package/src/sap/ui/codeeditor/js/ace/snippets/graphqlschema.js +2 -3
  353. package/src/sap/ui/codeeditor/js/ace/snippets/groovy.js +1 -7
  354. package/src/sap/ui/codeeditor/js/ace/snippets/haml.js +2 -3
  355. package/src/sap/ui/codeeditor/js/ace/snippets/handlebars.js +1 -7
  356. package/src/sap/ui/codeeditor/js/ace/snippets/haskell.js +2 -3
  357. package/src/sap/ui/codeeditor/js/ace/snippets/haskell_cabal.js +1 -7
  358. package/src/sap/ui/codeeditor/js/ace/snippets/haxe.js +1 -7
  359. package/src/sap/ui/codeeditor/js/ace/snippets/hjson.js +1 -7
  360. package/src/sap/ui/codeeditor/js/ace/snippets/html.js +4 -7
  361. package/src/sap/ui/codeeditor/js/ace/snippets/html_elixir.js +1 -7
  362. package/src/sap/ui/codeeditor/js/ace/snippets/html_ruby.js +1 -7
  363. package/src/sap/ui/codeeditor/js/ace/snippets/ini.js +1 -7
  364. package/src/sap/ui/codeeditor/js/ace/snippets/io.js +2 -3
  365. package/src/sap/ui/codeeditor/js/ace/snippets/jack.js +1 -7
  366. package/src/sap/ui/codeeditor/js/ace/snippets/jade.js +1 -7
  367. package/src/sap/ui/codeeditor/js/ace/snippets/java.js +2 -3
  368. package/src/sap/ui/codeeditor/js/ace/snippets/javascript.js +2 -3
  369. package/src/sap/ui/codeeditor/js/ace/snippets/json.js +1 -7
  370. package/src/sap/ui/codeeditor/js/ace/snippets/json5.js +9 -0
  371. package/src/sap/ui/codeeditor/js/ace/snippets/jsoniq.js +2 -3
  372. package/src/sap/ui/codeeditor/js/ace/snippets/jsp.js +2 -3
  373. package/src/sap/ui/codeeditor/js/ace/snippets/jssm.js +1 -7
  374. package/src/sap/ui/codeeditor/js/ace/snippets/jsx.js +1 -7
  375. package/src/sap/ui/codeeditor/js/ace/snippets/julia.js +1 -7
  376. package/src/sap/ui/codeeditor/js/ace/snippets/kotlin.js +1 -7
  377. package/src/sap/ui/codeeditor/js/ace/snippets/latex.js +1 -7
  378. package/src/sap/ui/codeeditor/js/ace/snippets/latte.js +9 -0
  379. package/src/sap/ui/codeeditor/js/ace/snippets/less.js +1 -7
  380. package/src/sap/ui/codeeditor/js/ace/snippets/liquid.js +884 -4
  381. package/src/sap/ui/codeeditor/js/ace/snippets/lisp.js +1 -7
  382. package/src/sap/ui/codeeditor/js/ace/snippets/livescript.js +1 -7
  383. package/src/sap/ui/codeeditor/js/ace/snippets/logiql.js +1 -7
  384. package/src/sap/ui/codeeditor/js/ace/snippets/logtalk.js +2 -7
  385. package/src/sap/ui/codeeditor/js/ace/snippets/lsl.js +2 -3
  386. package/src/sap/ui/codeeditor/js/ace/snippets/lua.js +2 -3
  387. package/src/sap/ui/codeeditor/js/ace/snippets/luapage.js +1 -7
  388. package/src/sap/ui/codeeditor/js/ace/snippets/lucene.js +1 -7
  389. package/src/sap/ui/codeeditor/js/ace/snippets/makefile.js +2 -3
  390. package/src/sap/ui/codeeditor/js/ace/snippets/markdown.js +2 -3
  391. package/src/sap/ui/codeeditor/js/ace/snippets/mask.js +1 -7
  392. package/src/sap/ui/codeeditor/js/ace/snippets/matlab.js +1 -7
  393. package/src/sap/ui/codeeditor/js/ace/snippets/maze.js +2 -3
  394. package/src/sap/ui/codeeditor/js/ace/snippets/mediawiki.js +9 -0
  395. package/src/sap/ui/codeeditor/js/ace/snippets/mel.js +1 -7
  396. package/src/sap/ui/codeeditor/js/ace/snippets/mips.js +9 -0
  397. package/src/sap/ui/codeeditor/js/ace/snippets/mixal.js +1 -7
  398. package/src/sap/ui/codeeditor/js/ace/snippets/mushcode.js +1 -7
  399. package/src/sap/ui/codeeditor/js/ace/snippets/mysql.js +1 -7
  400. package/src/sap/ui/codeeditor/js/ace/snippets/nginx.js +2 -7
  401. package/src/sap/ui/codeeditor/js/ace/snippets/nim.js +2 -7
  402. package/src/sap/ui/codeeditor/js/ace/snippets/nix.js +1 -7
  403. package/src/sap/ui/codeeditor/js/ace/snippets/nsis.js +1 -7
  404. package/src/sap/ui/codeeditor/js/ace/snippets/nunjucks.js +9 -0
  405. package/src/sap/ui/codeeditor/js/ace/snippets/objectivec.js +1 -7
  406. package/src/sap/ui/codeeditor/js/ace/snippets/ocaml.js +1 -7
  407. package/src/sap/ui/codeeditor/js/ace/snippets/pascal.js +1 -7
  408. package/src/sap/ui/codeeditor/js/ace/snippets/perl.js +2 -3
  409. package/src/sap/ui/codeeditor/js/ace/snippets/pgsql.js +1 -7
  410. package/src/sap/ui/codeeditor/js/ace/snippets/php.js +2 -3
  411. package/src/sap/ui/codeeditor/js/ace/snippets/php_laravel_blade.js +1 -7
  412. package/src/sap/ui/codeeditor/js/ace/snippets/pig.js +1 -7
  413. package/src/sap/ui/codeeditor/js/ace/snippets/plain_text.js +1 -7
  414. package/src/sap/ui/codeeditor/js/ace/snippets/powershell.js +1 -7
  415. package/src/sap/ui/codeeditor/js/ace/snippets/praat.js +1 -7
  416. package/src/sap/ui/codeeditor/js/ace/snippets/prisma.js +9 -0
  417. package/src/sap/ui/codeeditor/js/ace/snippets/prolog.js +1 -7
  418. package/src/sap/ui/codeeditor/js/ace/snippets/properties.js +1 -7
  419. package/src/sap/ui/codeeditor/js/ace/snippets/protobuf.js +1 -7
  420. package/src/sap/ui/codeeditor/js/ace/snippets/puppet.js +1 -7
  421. package/src/sap/ui/codeeditor/js/ace/snippets/python.js +2 -3
  422. package/src/sap/ui/codeeditor/js/ace/snippets/qml.js +9 -0
  423. package/src/sap/ui/codeeditor/js/ace/snippets/r.js +2 -3
  424. package/src/sap/ui/codeeditor/js/ace/snippets/raku.js +9 -0
  425. package/src/sap/ui/codeeditor/js/ace/snippets/razor.js +2 -3
  426. package/src/sap/ui/codeeditor/js/ace/snippets/rdoc.js +1 -7
  427. package/src/sap/ui/codeeditor/js/ace/snippets/red.js +1 -7
  428. package/src/sap/ui/codeeditor/js/ace/snippets/redshift.js +1 -7
  429. package/src/sap/ui/codeeditor/js/ace/snippets/rhtml.js +1 -7
  430. package/src/sap/ui/codeeditor/js/ace/snippets/rst.js +2 -3
  431. package/src/sap/ui/codeeditor/js/ace/snippets/ruby.js +2 -3
  432. package/src/sap/ui/codeeditor/js/ace/snippets/rust.js +1 -7
  433. package/src/sap/ui/codeeditor/js/ace/snippets/sass.js +1 -7
  434. package/src/sap/ui/codeeditor/js/ace/snippets/scad.js +1 -7
  435. package/src/sap/ui/codeeditor/js/ace/snippets/scala.js +1 -7
  436. package/src/sap/ui/codeeditor/js/ace/snippets/scheme.js +1 -7
  437. package/src/sap/ui/codeeditor/js/ace/snippets/scrypt.js +9 -0
  438. package/src/sap/ui/codeeditor/js/ace/snippets/scss.js +1 -7
  439. package/src/sap/ui/codeeditor/js/ace/snippets/sh.js +2 -3
  440. package/src/sap/ui/codeeditor/js/ace/snippets/sjs.js +1 -7
  441. package/src/sap/ui/codeeditor/js/ace/snippets/slim.js +1 -7
  442. package/src/sap/ui/codeeditor/js/ace/snippets/smarty.js +1 -7
  443. package/src/sap/ui/codeeditor/js/ace/snippets/smithy.js +9 -0
  444. package/src/sap/ui/codeeditor/js/ace/snippets/snippets.js +2 -3
  445. package/src/sap/ui/codeeditor/js/ace/snippets/soy_template.js +1 -7
  446. package/src/sap/ui/codeeditor/js/ace/snippets/space.js +1 -7
  447. package/src/sap/ui/codeeditor/js/ace/snippets/sparql.js +1 -7
  448. package/src/sap/ui/codeeditor/js/ace/snippets/sql.js +2 -3
  449. package/src/sap/ui/codeeditor/js/ace/snippets/sqlserver.js +2 -3
  450. package/src/sap/ui/codeeditor/js/ace/snippets/stylus.js +1 -7
  451. package/src/sap/ui/codeeditor/js/ace/snippets/svg.js +1 -7
  452. package/src/sap/ui/codeeditor/js/ace/snippets/swift.js +1 -7
  453. package/src/sap/ui/codeeditor/js/ace/snippets/tcl.js +2 -3
  454. package/src/sap/ui/codeeditor/js/ace/snippets/terraform.js +1 -7
  455. package/src/sap/ui/codeeditor/js/ace/snippets/tex.js +2 -3
  456. package/src/sap/ui/codeeditor/js/ace/snippets/text.js +1 -7
  457. package/src/sap/ui/codeeditor/js/ace/snippets/textile.js +2 -3
  458. package/src/sap/ui/codeeditor/js/ace/snippets/toml.js +1 -7
  459. package/src/sap/ui/codeeditor/js/ace/snippets/tsx.js +1 -7
  460. package/src/sap/ui/codeeditor/js/ace/snippets/turtle.js +1 -7
  461. package/src/sap/ui/codeeditor/js/ace/snippets/twig.js +1 -7
  462. package/src/sap/ui/codeeditor/js/ace/snippets/typescript.js +1 -7
  463. package/src/sap/ui/codeeditor/js/ace/snippets/vala.js +2 -3
  464. package/src/sap/ui/codeeditor/js/ace/snippets/vbscript.js +1 -7
  465. package/src/sap/ui/codeeditor/js/ace/snippets/velocity.js +2 -3
  466. package/src/sap/ui/codeeditor/js/ace/snippets/verilog.js +1 -7
  467. package/src/sap/ui/codeeditor/js/ace/snippets/vhdl.js +1 -7
  468. package/src/sap/ui/codeeditor/js/ace/snippets/visualforce.js +2 -7
  469. package/src/sap/ui/codeeditor/js/ace/snippets/wollok.js +2 -3
  470. package/src/sap/ui/codeeditor/js/ace/snippets/xml.js +1 -7
  471. package/src/sap/ui/codeeditor/js/ace/snippets/xquery.js +2 -3
  472. package/src/sap/ui/codeeditor/js/ace/snippets/yaml.js +1 -7
  473. package/src/sap/ui/codeeditor/js/ace/snippets/zeek.js +9 -0
  474. package/src/sap/ui/codeeditor/js/ace/theme-ambiance.js +5 -4
  475. package/src/sap/ui/codeeditor/js/ace/theme-chaos.js +3 -3
  476. package/src/sap/ui/codeeditor/js/ace/theme-chrome.js +2 -2
  477. package/src/sap/ui/codeeditor/js/ace/theme-clouds.js +2 -2
  478. package/src/sap/ui/codeeditor/js/ace/theme-clouds_midnight.js +2 -2
  479. package/src/sap/ui/codeeditor/js/ace/theme-cobalt.js +2 -2
  480. package/src/sap/ui/codeeditor/js/ace/theme-crimson_editor.js +2 -2
  481. package/src/sap/ui/codeeditor/js/ace/theme-dawn.js +2 -2
  482. package/src/sap/ui/codeeditor/js/ace/theme-dracula.js +2 -2
  483. package/src/sap/ui/codeeditor/js/ace/theme-dreamweaver.js +2 -2
  484. package/src/sap/ui/codeeditor/js/ace/theme-eclipse.js +2 -2
  485. package/src/sap/ui/codeeditor/js/ace/theme-github.js +2 -2
  486. package/src/sap/ui/codeeditor/js/ace/theme-gob.js +2 -2
  487. package/src/sap/ui/codeeditor/js/ace/theme-gruvbox.js +2 -2
  488. package/src/sap/ui/codeeditor/js/ace/theme-idle_fingers.js +2 -2
  489. package/src/sap/ui/codeeditor/js/ace/theme-iplastic.js +2 -2
  490. package/src/sap/ui/codeeditor/js/ace/theme-katzenmilch.js +2 -2
  491. package/src/sap/ui/codeeditor/js/ace/theme-kr_theme.js +2 -2
  492. package/src/sap/ui/codeeditor/js/ace/theme-kuroir.js +2 -2
  493. package/src/sap/ui/codeeditor/js/ace/theme-merbivore.js +2 -2
  494. package/src/sap/ui/codeeditor/js/ace/theme-merbivore_soft.js +2 -2
  495. package/src/sap/ui/codeeditor/js/ace/theme-mono_industrial.js +2 -2
  496. package/src/sap/ui/codeeditor/js/ace/theme-monokai.js +2 -2
  497. package/src/sap/ui/codeeditor/js/ace/theme-nord_dark.js +102 -0
  498. package/src/sap/ui/codeeditor/js/ace/theme-one_dark.js +139 -0
  499. package/src/sap/ui/codeeditor/js/ace/theme-pastel_on_dark.js +2 -2
  500. package/src/sap/ui/codeeditor/js/ace/theme-solarized_dark.js +2 -2
  501. package/src/sap/ui/codeeditor/js/ace/theme-solarized_light.js +2 -2
  502. package/src/sap/ui/codeeditor/js/ace/theme-sqlserver.js +2 -2
  503. package/src/sap/ui/codeeditor/js/ace/theme-terminal.js +2 -2
  504. package/src/sap/ui/codeeditor/js/ace/theme-textmate.js +2 -2
  505. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow.js +2 -2
  506. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night.js +2 -2
  507. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_blue.js +2 -2
  508. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_bright.js +2 -2
  509. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_eighties.js +2 -2
  510. package/src/sap/ui/codeeditor/js/ace/theme-twilight.js +5 -5
  511. package/src/sap/ui/codeeditor/js/ace/theme-vibrant_ink.js +2 -2
  512. package/src/sap/ui/codeeditor/js/ace/theme-xcode.js +2 -2
  513. package/src/sap/ui/codeeditor/js/ace/worker-base.js +1421 -0
  514. package/src/sap/ui/codeeditor/js/ace/worker-coffee.js +17 -703
  515. package/src/sap/ui/codeeditor/js/ace/worker-css.js +3629 -3396
  516. package/src/sap/ui/codeeditor/js/ace/worker-html.js +17 -703
  517. package/src/sap/ui/codeeditor/js/ace/worker-javascript.js +7831 -5361
  518. package/src/sap/ui/codeeditor/js/ace/worker-json.js +17 -703
  519. package/src/sap/ui/codeeditor/js/ace/worker-lua.js +973 -1001
  520. package/src/sap/ui/codeeditor/js/ace/worker-php.js +859 -1477
  521. package/src/sap/ui/codeeditor/js/ace/worker-xml.js +26 -707
  522. package/src/sap/ui/codeeditor/js/ace/worker-xquery.js +17 -703
  523. package/src/sap/ui/codeeditor/library.js +2 -2
  524. package/ui5.yaml +4 -1
  525. package/src/sap/ui/codeeditor/js/ace/LICENSE.txt +0 -24
  526. package/src/sap/ui/codeeditor/js/ace/ext-chromevox.js +0 -540
  527. package/src/sap/ui/codeeditor/js/ace/ext-old_ie.js +0 -502
  528. package/src/sap/ui/codeeditor/js/ace/mode-bro.js +0 -334
  529. package/src/sap/ui/codeeditor/js/ace/mode-lean.js +0 -281
  530. package/src/sap/ui/codeeditor/js/ace/mode-live_script.js +0 -481
  531. package/src/sap/ui/codeeditor/js/ace/mode-mavens_mate_log.js +0 -160
  532. package/src/sap/ui/codeeditor/js/ace/mode-mips_assembler.js +0 -235
  533. package/src/sap/ui/codeeditor/js/ace/mode-swig.js +0 -1099
  534. package/src/sap/ui/codeeditor/js/ace/snippets/bro.js +0 -15
  535. package/src/sap/ui/codeeditor/js/ace/snippets/lean.js +0 -7
  536. package/src/sap/ui/codeeditor/js/ace/snippets/live_script.js +0 -7
  537. package/src/sap/ui/codeeditor/js/ace/snippets/mips_assembler.js +0 -7
  538. package/src/sap/ui/codeeditor/js/ace/snippets/mipsassembler.js +0 -7
  539. package/src/sap/ui/codeeditor/js/ace/snippets/perl6.js +0 -14
  540. package/src/sap/ui/codeeditor/js/ace/snippets/swig.js +0 -7
@@ -1,4 +1,4 @@
1
- ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) {
1
+ ace.define("ace/mode/css_highlight_rules",[], function(require, exports, module) {
2
2
  "use strict";
3
3
 
4
4
  var oop = require("../lib/oop");
@@ -193,7 +193,7 @@ exports.CssHighlightRules = CssHighlightRules;
193
193
 
194
194
  });
195
195
 
196
- ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
196
+ ace.define("ace/mode/doc_comment_highlight_rules",[], function(require, exports, module) {
197
197
  "use strict";
198
198
 
199
199
  var oop = require("../lib/oop");
@@ -243,7 +243,7 @@ exports.DocCommentHighlightRules = DocCommentHighlightRules;
243
243
 
244
244
  });
245
245
 
246
- ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) {
246
+ ace.define("ace/mode/javascript_highlight_rules",[], function(require, exports, module) {
247
247
  "use strict";
248
248
 
249
249
  var oop = require("../lib/oop");
@@ -717,7 +717,7 @@ function comments(next) {
717
717
  exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
718
718
  });
719
719
 
720
- ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
720
+ ace.define("ace/mode/xml_highlight_rules",[], function(require, exports, module) {
721
721
  "use strict";
722
722
 
723
723
  var oop = require("../lib/oop");
@@ -920,7 +920,7 @@ oop.inherits(XmlHighlightRules, TextHighlightRules);
920
920
  exports.XmlHighlightRules = XmlHighlightRules;
921
921
  });
922
922
 
923
- ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) {
923
+ ace.define("ace/mode/html_highlight_rules",[], function(require, exports, module) {
924
924
  "use strict";
925
925
 
926
926
  var oop = require("../lib/oop");
@@ -1002,7 +1002,7 @@ oop.inherits(HtmlHighlightRules, XmlHighlightRules);
1002
1002
  exports.HtmlHighlightRules = HtmlHighlightRules;
1003
1003
  });
1004
1004
 
1005
- ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) {
1005
+ ace.define("ace/mode/matching_brace_outdent",[], function(require, exports, module) {
1006
1006
  "use strict";
1007
1007
 
1008
1008
  var Range = require("../range").Range;
@@ -1042,7 +1042,7 @@ var MatchingBraceOutdent = function() {};
1042
1042
  exports.MatchingBraceOutdent = MatchingBraceOutdent;
1043
1043
  });
1044
1044
 
1045
- ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
1045
+ ace.define("ace/mode/folding/cstyle",[], function(require, exports, module) {
1046
1046
  "use strict";
1047
1047
 
1048
1048
  var oop = require("../../lib/oop");
@@ -1182,7 +1182,7 @@ oop.inherits(FoldMode, BaseFoldMode);
1182
1182
 
1183
1183
  });
1184
1184
 
1185
- ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
1185
+ ace.define("ace/mode/javascript",[], function(require, exports, module) {
1186
1186
  "use strict";
1187
1187
 
1188
1188
  var oop = require("../lib/oop");
@@ -1264,12 +1264,13 @@ oop.inherits(Mode, TextMode);
1264
1264
  };
1265
1265
 
1266
1266
  this.$id = "ace/mode/javascript";
1267
+ this.snippetFileId = "ace/snippets/javascript";
1267
1268
  }).call(Mode.prototype);
1268
1269
 
1269
1270
  exports.Mode = Mode;
1270
1271
  });
1271
1272
 
1272
- ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) {
1273
+ ace.define("ace/mode/css_completions",[], function(require, exports, module) {
1273
1274
  "use strict";
1274
1275
 
1275
1276
  var propertyMap = {
@@ -1439,7 +1440,7 @@ var CssCompletions = function() {
1439
1440
  exports.CssCompletions = CssCompletions;
1440
1441
  });
1441
1442
 
1442
- ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) {
1443
+ ace.define("ace/mode/behaviour/css",[], function(require, exports, module) {
1443
1444
  "use strict";
1444
1445
 
1445
1446
  var oop = require("../../lib/oop");
@@ -1532,7 +1533,7 @@ oop.inherits(CssBehaviour, CstyleBehaviour);
1532
1533
  exports.CssBehaviour = CssBehaviour;
1533
1534
  });
1534
1535
 
1535
- ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) {
1536
+ ace.define("ace/mode/css",[], function(require, exports, module) {
1536
1537
  "use strict";
1537
1538
 
1538
1539
  var oop = require("../lib/oop");
@@ -1601,13 +1602,14 @@ oop.inherits(Mode, TextMode);
1601
1602
  };
1602
1603
 
1603
1604
  this.$id = "ace/mode/css";
1605
+ this.snippetFileId = "ace/snippets/css";
1604
1606
  }).call(Mode.prototype);
1605
1607
 
1606
1608
  exports.Mode = Mode;
1607
1609
 
1608
1610
  });
1609
1611
 
1610
- ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
1612
+ ace.define("ace/mode/behaviour/xml",[], function(require, exports, module) {
1611
1613
  "use strict";
1612
1614
 
1613
1615
  var oop = require("../../lib/oop");
@@ -1779,7 +1781,7 @@ oop.inherits(XmlBehaviour, Behaviour);
1779
1781
  exports.XmlBehaviour = XmlBehaviour;
1780
1782
  });
1781
1783
 
1782
- ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module) {
1784
+ ace.define("ace/mode/folding/mixed",[], function(require, exports, module) {
1783
1785
  "use strict";
1784
1786
 
1785
1787
  var oop = require("../../lib/oop");
@@ -1833,7 +1835,7 @@ oop.inherits(FoldMode, BaseFoldMode);
1833
1835
 
1834
1836
  });
1835
1837
 
1836
- ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"], function(require, exports, module) {
1838
+ ace.define("ace/mode/folding/xml",[], function(require, exports, module) {
1837
1839
  "use strict";
1838
1840
 
1839
1841
  var oop = require("../../lib/oop");
@@ -2082,7 +2084,7 @@ function is(token, type) {
2082
2084
 
2083
2085
  });
2084
2086
 
2085
- ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) {
2087
+ ace.define("ace/mode/folding/html",[], function(require, exports, module) {
2086
2088
  "use strict";
2087
2089
 
2088
2090
  var oop = require("../../lib/oop");
@@ -2101,7 +2103,7 @@ oop.inherits(FoldMode, MixedFoldMode);
2101
2103
 
2102
2104
  });
2103
2105
 
2104
- ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) {
2106
+ ace.define("ace/mode/html_completions",[], function(require, exports, module) {
2105
2107
  "use strict";
2106
2108
 
2107
2109
  var TokenIterator = require("../token_iterator").TokenIterator;
@@ -2423,7 +2425,7 @@ var HtmlCompletions = function() {
2423
2425
  exports.HtmlCompletions = HtmlCompletions;
2424
2426
  });
2425
2427
 
2426
- ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) {
2428
+ ace.define("ace/mode/html",[], function(require, exports, module) {
2427
2429
  "use strict";
2428
2430
 
2429
2431
  var oop = require("../lib/oop");
@@ -2493,12 +2495,13 @@ oop.inherits(Mode, TextMode);
2493
2495
  };
2494
2496
 
2495
2497
  this.$id = "ace/mode/html";
2498
+ this.snippetFileId = "ace/snippets/html";
2496
2499
  }).call(Mode.prototype);
2497
2500
 
2498
2501
  exports.Mode = Mode;
2499
2502
  });
2500
2503
 
2501
- ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2504
+ ace.define("ace/mode/ruby_highlight_rules",[], function(require, exports, module) {
2502
2505
  "use strict";
2503
2506
 
2504
2507
  var oop = require("../lib/oop");
@@ -2508,17 +2511,17 @@ var constantOtherSymbol = exports.constantOtherSymbol = {
2508
2511
  regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"
2509
2512
  };
2510
2513
 
2511
- var qString = exports.qString = {
2514
+ exports.qString = {
2512
2515
  token : "string", // single line
2513
2516
  regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
2514
2517
  };
2515
2518
 
2516
- var qqString = exports.qqString = {
2519
+ exports.qqString = {
2517
2520
  token : "string", // single line
2518
2521
  regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
2519
2522
  };
2520
2523
 
2521
- var tString = exports.tString = {
2524
+ exports.tString = {
2522
2525
  token : "string", // backtick string
2523
2526
  regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"
2524
2527
  };
@@ -2528,9 +2531,34 @@ var constantNumericHex = exports.constantNumericHex = {
2528
2531
  regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"
2529
2532
  };
2530
2533
 
2534
+ var constantNumericBinary = exports.constantNumericBinary = {
2535
+ token: "constant.numeric",
2536
+ regex: /\b(0[bB][01](?:[01]|_(?=[01]))*)\b/
2537
+ };
2538
+
2539
+ var constantNumericDecimal = exports.constantNumericDecimal = {
2540
+ token: "constant.numeric",
2541
+ regex: /\b(0[dD](?:[1-9](?:[\d]|_(?=[\d]))*|0))\b/
2542
+ };
2543
+
2544
+ var constantNumericOctal = exports.constantNumericDecimal = {
2545
+ token: "constant.numeric",
2546
+ regex: /\b(0[oO]?(?:[1-7](?:[0-7]|_(?=[0-7]))*|0))\b/
2547
+ };
2548
+
2549
+ var constantNumericRational = exports.constantNumericRational = {
2550
+ token: "constant.numeric", //rational + complex
2551
+ regex: /\b([\d]+(?:[./][\d]+)?ri?)\b/
2552
+ };
2553
+
2554
+ var constantNumericComplex = exports.constantNumericComplex = {
2555
+ token: "constant.numeric", //simple complex numbers
2556
+ regex: /\b([\d]i)\b/
2557
+ };
2558
+
2531
2559
  var constantNumericFloat = exports.constantNumericFloat = {
2532
- token : "constant.numeric", // float
2533
- regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"
2560
+ token : "constant.numeric", // float + complex
2561
+ regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?i?\\b"
2534
2562
  };
2535
2563
 
2536
2564
  var instanceVariable = exports.instanceVariable = {
@@ -2570,18 +2598,19 @@ var RubyHighlightRules = function() {
2570
2598
  "filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" +
2571
2599
  "translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" +
2572
2600
  "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" +
2573
- "has_many|has_one|belongs_to|has_and_belongs_to_many"
2601
+ "has_many|has_one|belongs_to|has_and_belongs_to_many|p|warn|refine|using|module_function|extend|alias_method|" +
2602
+ "private_class_method|remove_method|undef_method"
2574
2603
  );
2575
2604
 
2576
2605
  var keywords = (
2577
2606
  "alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" +
2578
2607
  "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" +
2579
- "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield"
2608
+ "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield|__ENCODING__|prepend"
2580
2609
  );
2581
2610
 
2582
2611
  var buildinConstants = (
2583
2612
  "true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" +
2584
- "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING"
2613
+ "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING|RUBY_PATCHLEVEL|RUBY_REVISION|RUBY_COPYRIGHT|RUBY_ENGINE|RUBY_ENGINE_VERSION|RUBY_DESCRIPTION"
2585
2614
  );
2586
2615
 
2587
2616
  var builtinVariables = (
@@ -2597,126 +2626,191 @@ var RubyHighlightRules = function() {
2597
2626
  "invalid.deprecated": "debugger" // TODO is this a remnant from js mode?
2598
2627
  }, "identifier");
2599
2628
 
2629
+ 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})*})";
2630
+
2631
+ var closeParen = {
2632
+ "(": ")",
2633
+ "[": "]",
2634
+ "{": "}",
2635
+ "<": ">",
2636
+ "^": "^",
2637
+ "|": "|",
2638
+ "%": "%"
2639
+ };
2640
+
2600
2641
  this.$rules = {
2601
- "start" : [
2642
+ "start": [
2602
2643
  {
2603
- token : "comment",
2604
- regex : "#.*$"
2644
+ token: "comment",
2645
+ regex: "#.*$"
2605
2646
  }, {
2606
- token : "comment", // multi line comment
2607
- regex : "^=begin(?:$|\\s.*$)",
2608
- next : "comment"
2647
+ token: "comment.multiline", // multi line comment
2648
+ regex: "^=begin(?=$|\\s.*$)",
2649
+ next: "comment"
2609
2650
  }, {
2610
- token : "string.regexp",
2611
- regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"
2651
+ token: "string.regexp",
2652
+ regex: /[/](?=.*\/)/,
2653
+ next: "regex"
2612
2654
  },
2613
2655
 
2614
2656
  [{
2615
- regex: "[{}]", onMatch: function(val, state, stack) {
2616
- this.next = val == "{" ? this.nextState : "";
2617
- if (val == "{" && stack.length) {
2618
- stack.unshift("start", state);
2619
- return "paren.lparen";
2620
- }
2621
- if (val == "}" && stack.length) {
2622
- stack.shift();
2623
- this.next = stack.shift();
2624
- if (this.next.indexOf("string") != -1)
2625
- return "paren.end";
2626
- }
2627
- return val == "{" ? "paren.lparen" : "paren.rparen";
2628
- },
2629
- nextState: "start"
2630
- }, {
2631
- token : "string.start",
2632
- regex : /"/,
2633
- push : [{
2634
- token : "constant.language.escape",
2635
- regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/
2657
+ token: ["constant.other.symbol.ruby", "string.start"],
2658
+ regex: /(:)?(")/,
2659
+ push: [{
2660
+ token: "constant.language.escape",
2661
+ regex: escapedChars
2636
2662
  }, {
2637
- token : "paren.start",
2638
- regex : /#{/,
2639
- push : "start"
2663
+ token: "paren.start",
2664
+ regex: /#{/,
2665
+ push: "start"
2640
2666
  }, {
2641
- token : "string.end",
2642
- regex : /"/,
2643
- next : "pop"
2667
+ token: "string.end",
2668
+ regex: /"/,
2669
+ next: "pop"
2644
2670
  }, {
2645
2671
  defaultToken: "string"
2646
2672
  }]
2647
2673
  }, {
2648
- token : "string.start",
2649
- regex : /`/,
2650
- push : [{
2651
- token : "constant.language.escape",
2652
- regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/
2674
+ token: "string.start",
2675
+ regex: /`/,
2676
+ push: [{
2677
+ token: "constant.language.escape",
2678
+ regex: escapedChars
2653
2679
  }, {
2654
- token : "paren.start",
2655
- regex : /#{/,
2656
- push : "start"
2680
+ token: "paren.start",
2681
+ regex: /#{/,
2682
+ push: "start"
2657
2683
  }, {
2658
- token : "string.end",
2659
- regex : /`/,
2660
- next : "pop"
2684
+ token: "string.end",
2685
+ regex: /`/,
2686
+ next: "pop"
2661
2687
  }, {
2662
2688
  defaultToken: "string"
2663
2689
  }]
2664
2690
  }, {
2665
- token : "string.start",
2666
- regex : /'/,
2667
- push : [{
2668
- token : "constant.language.escape",
2669
- regex : /\\['\\]/
2670
- }, {
2671
- token : "string.end",
2672
- regex : /'/,
2673
- next : "pop"
2691
+ token: ["constant.other.symbol.ruby", "string.start"],
2692
+ regex: /(:)?(')/,
2693
+ push: [{
2694
+ token: "constant.language.escape",
2695
+ regex: /\\['\\]/
2696
+ }, {
2697
+ token: "string.end",
2698
+ regex: /'/,
2699
+ next: "pop"
2674
2700
  }, {
2675
2701
  defaultToken: "string"
2676
2702
  }]
2703
+ }, {
2704
+ token: "string.start",//doesn't see any differences between strings and array of strings in highlighting
2705
+ regex: /%[qwx]([(\[<{^|%])/, onMatch: function (val, state, stack) {
2706
+ if (stack.length)
2707
+ stack = [];
2708
+ var paren = val[val.length - 1];
2709
+ stack.unshift(paren, state);
2710
+ this.next = "qStateWithoutInterpolation";
2711
+ return this.token;
2712
+ }
2713
+ }, {
2714
+ token: "string.start", //doesn't see any differences between strings and array of strings in highlighting
2715
+ regex: /%[QWX]?([(\[<{^|%])/, onMatch: function (val, state, stack) {
2716
+ if (stack.length)
2717
+ stack = [];
2718
+ var paren = val[val.length - 1];
2719
+ stack.unshift(paren, state);
2720
+ this.next = "qStateWithInterpolation";
2721
+ return this.token;
2722
+ }
2723
+ }, {
2724
+ token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
2725
+ regex: /%[si]([(\[<{^|%])/, onMatch: function (val, state, stack) {
2726
+ if (stack.length)
2727
+ stack = [];
2728
+ var paren = val[val.length - 1];
2729
+ stack.unshift(paren, state);
2730
+ this.next = "sStateWithoutInterpolation";
2731
+ return this.token;
2732
+ }
2733
+ }, {
2734
+ token: "constant.other.symbol.ruby", //doesn't see any differences between symbols and array of symbols in highlighting
2735
+ regex: /%[SI]([(\[<{^|%])/, onMatch: function (val, state, stack) {
2736
+ if (stack.length)
2737
+ stack = [];
2738
+ var paren = val[val.length - 1];
2739
+ stack.unshift(paren, state);
2740
+ this.next = "sStateWithInterpolation";
2741
+ return this.token;
2742
+ }
2743
+ }, {
2744
+ token: "string.regexp",
2745
+ regex: /%[r]([(\[<{^|%])/, onMatch: function (val, state, stack) {
2746
+ if (stack.length)
2747
+ stack = [];
2748
+ var paren = val[val.length - 1];
2749
+ stack.unshift(paren, state);
2750
+ this.next = "rState";
2751
+ return this.token;
2752
+ }
2677
2753
  }],
2678
2754
 
2679
2755
  {
2680
- token : "text", // namespaces aren't symbols
2681
- regex : "::"
2756
+ token: "punctuation", // namespaces aren't symbols
2757
+ regex: "::"
2758
+ },
2759
+ instanceVariable,
2760
+ {
2761
+ token: "variable.global", // global variable
2762
+ regex: "[$][a-zA-Z_\\d]+"
2763
+ }, {
2764
+ token: "support.class", // class name
2765
+ regex: "[A-Z][a-zA-Z_\\d]*"
2766
+ }, {
2767
+ token: ["punctuation.operator", "support.function"],
2768
+ regex: /(\.)([a-zA-Z_\d]+)(?=\()/
2769
+ }, {
2770
+ token: ["punctuation.operator", "identifier"],
2771
+ regex: /(\.)([a-zA-Z_][a-zA-Z_\d]*)/
2682
2772
  }, {
2683
- token : "variable.instance", // instance variable
2684
- regex : "@{1,2}[a-zA-Z_\\d]+"
2773
+ token: "string.character",
2774
+ regex: "\\B\\?(?:" + escapedChars + "|\\S)"
2685
2775
  }, {
2686
- token : "support.class", // class name
2687
- regex : "[A-Z][a-zA-Z_\\d]+"
2776
+ token: "punctuation.operator",
2777
+ regex: /\?(?=.+:)/
2688
2778
  },
2689
2779
 
2780
+ constantNumericRational,
2781
+ constantNumericComplex,
2690
2782
  constantOtherSymbol,
2691
2783
  constantNumericHex,
2692
2784
  constantNumericFloat,
2693
-
2785
+ constantNumericBinary,
2786
+ constantNumericDecimal,
2787
+ constantNumericOctal,
2694
2788
  {
2695
- token : "constant.language.boolean",
2696
- regex : "(?:true|false)\\b"
2789
+ token: "constant.language.boolean",
2790
+ regex: "(?:true|false)\\b"
2697
2791
  }, {
2698
- token : keywordMapper,
2699
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
2792
+ token: keywordMapper,
2793
+ regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
2700
2794
  }, {
2701
- token : "punctuation.separator.key-value",
2702
- regex : "=>"
2795
+ token: "punctuation.separator.key-value",
2796
+ regex: "=>"
2703
2797
  }, {
2704
2798
  stateName: "heredoc",
2705
- onMatch : function(value, currentState, stack) {
2706
- var next = value[2] == '-' ? "indentedHeredoc" : "heredoc";
2799
+ onMatch: function (value, currentState, stack) {
2800
+ var next = (value[2] == '-' || value[2] == '~') ? "indentedHeredoc" : "heredoc";
2707
2801
  var tokens = value.split(this.splitRegex);
2708
2802
  stack.push(next, tokens[3]);
2709
2803
  return [
2710
- {type:"constant", value: tokens[1]},
2711
- {type:"string", value: tokens[2]},
2712
- {type:"support.class", value: tokens[3]},
2713
- {type:"string", value: tokens[4]}
2804
+ {type: "constant", value: tokens[1]},
2805
+ {type: "string", value: tokens[2]},
2806
+ {type: "support.class", value: tokens[3]},
2807
+ {type: "string", value: tokens[4]}
2714
2808
  ];
2715
2809
  },
2716
- regex : "(<<-?)(['\"`]?)([\\w]+)(['\"`]?)",
2810
+ regex: "(<<[-~]?)(['\"`]?)([\\w]+)(['\"`]?)",
2717
2811
  rules: {
2718
2812
  heredoc: [{
2719
- onMatch: function(value, currentState, stack) {
2813
+ onMatch: function(value, currentState, stack) {
2720
2814
  if (value === stack[1]) {
2721
2815
  stack.shift();
2722
2816
  stack.shift();
@@ -2733,7 +2827,7 @@ var RubyHighlightRules = function() {
2733
2827
  token: "string",
2734
2828
  regex: "^ +"
2735
2829
  }, {
2736
- onMatch: function(value, currentState, stack) {
2830
+ onMatch: function(value, currentState, stack) {
2737
2831
  if (value === stack[1]) {
2738
2832
  stack.shift();
2739
2833
  stack.shift();
@@ -2748,38 +2842,261 @@ var RubyHighlightRules = function() {
2748
2842
  }]
2749
2843
  }
2750
2844
  }, {
2751
- regex : "$",
2752
- token : "empty",
2753
- next : function(currentState, stack) {
2845
+ regex: "$",
2846
+ token: "empty",
2847
+ next: function(currentState, stack) {
2754
2848
  if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc")
2755
2849
  return stack[0];
2756
2850
  return currentState;
2757
2851
  }
2852
+ }, {
2853
+ token: "keyword.operator",
2854
+ regex: "!|\\$|%|&|\\*|/|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\||\\b(?:in|instanceof|new|delete|typeof|void)"
2855
+ }, {
2856
+ token: "paren.lparen",
2857
+ regex: "[[({]"
2858
+ }, {
2859
+ token: "paren.rparen",
2860
+ regex: "[\\])}]",
2861
+ onMatch: function(value, currentState, stack) {
2862
+ this.next = '';
2863
+ if (value == "}" && stack.length > 1 && stack[1] != "start") {
2864
+ stack.shift();
2865
+ this.next = stack.shift();
2866
+ }
2867
+ return this.token;
2868
+ }
2758
2869
  }, {
2759
- token : "string.character",
2760
- regex : "\\B\\?."
2870
+ token: "text",
2871
+ regex: "\\s+"
2761
2872
  }, {
2762
- token : "keyword.operator",
2763
- regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"
2873
+ token: "punctuation.operator",
2874
+ regex: /[?:,;.]/
2875
+ }
2876
+ ],
2877
+ "comment": [
2878
+ {
2879
+ token: "comment.multiline", // closing comment
2880
+ regex: "^=end(?=$|\\s.*$)",
2881
+ next: "start"
2764
2882
  }, {
2765
- token : "paren.lparen",
2766
- regex : "[[({]"
2883
+ token: "comment", // comment spanning whole line
2884
+ regex: ".+"
2885
+ }
2886
+ ],
2887
+ "qStateWithInterpolation": [{
2888
+ token: "string.start",// excluded nested |^% due to difficulty in realization
2889
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
2890
+ if (stack.length && val === stack[0]) {
2891
+ stack.unshift(val, state);
2892
+ return this.token;
2893
+ }
2894
+ return "string";
2895
+ }
2896
+ }, {
2897
+ token: "constant.language.escape",
2898
+ regex: escapedChars
2899
+ }, {
2900
+ token: "constant.language.escape",
2901
+ regex: /\\./
2902
+ }, {
2903
+ token: "paren.start",
2904
+ regex: /#{/,
2905
+ push: "start"
2906
+ }, {
2907
+ token: "string.end",
2908
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
2909
+ if (stack.length && val === closeParen[stack[0]]) {
2910
+ stack.shift();
2911
+ this.next = stack.shift();
2912
+ return this.token;
2913
+ }
2914
+ this.next = '';
2915
+ return "string";
2916
+ }
2917
+ }, {
2918
+ defaultToken: "string"
2919
+ }],
2920
+ "qStateWithoutInterpolation": [{
2921
+ token: "string.start",// excluded nested |^% due to difficulty in realization
2922
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
2923
+ if (stack.length && val === stack[0]) {
2924
+ stack.unshift(val, state);
2925
+ return this.token;
2926
+ }
2927
+ return "string";
2928
+ }
2929
+ }, {
2930
+ token: "constant.language.escape",
2931
+ regex: /\\['\\]/
2932
+ }, {
2933
+ token: "constant.language.escape",
2934
+ regex: /\\./
2935
+ }, {
2936
+ token: "string.end",
2937
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
2938
+ if (stack.length && val === closeParen[stack[0]]) {
2939
+ stack.shift();
2940
+ this.next = stack.shift();
2941
+ return this.token;
2942
+ }
2943
+ this.next = '';
2944
+ return "string";
2945
+ }
2946
+ }, {
2947
+ defaultToken: "string"
2948
+ }],
2949
+ "sStateWithoutInterpolation": [{
2950
+ token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
2951
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
2952
+ if (stack.length && val === stack[0]) {
2953
+ stack.unshift(val, state);
2954
+ return this.token;
2955
+ }
2956
+ return "constant.other.symbol.ruby";
2957
+ }
2958
+ }, {
2959
+ token: "constant.other.symbol.ruby",
2960
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
2961
+ if (stack.length && val === closeParen[stack[0]]) {
2962
+ stack.shift();
2963
+ this.next = stack.shift();
2964
+ return this.token;
2965
+ }
2966
+ this.next = '';
2967
+ return "constant.other.symbol.ruby";
2968
+ }
2969
+ }, {
2970
+ defaultToken: "constant.other.symbol.ruby"
2971
+ }],
2972
+ "sStateWithInterpolation": [{
2973
+ token: "constant.other.symbol.ruby",// excluded nested |^% due to difficulty in realization
2974
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
2975
+ if (stack.length && val === stack[0]) {
2976
+ stack.unshift(val, state);
2977
+ return this.token;
2978
+ }
2979
+ return "constant.other.symbol.ruby";
2980
+ }
2981
+ }, {
2982
+ token: "constant.language.escape",
2983
+ regex: escapedChars
2984
+ }, {
2985
+ token: "constant.language.escape",
2986
+ regex: /\\./
2987
+ }, {
2988
+ token: "paren.start",
2989
+ regex: /#{/,
2990
+ push: "start"
2991
+ }, {
2992
+ token: "constant.other.symbol.ruby",
2993
+ regex: /[)\]>}^|%]/, onMatch: function (val, state, stack) {
2994
+ if (stack.length && val === closeParen[stack[0]]) {
2995
+ stack.shift();
2996
+ this.next = stack.shift();
2997
+ return this.token;
2998
+ }
2999
+ this.next = '';
3000
+ return "constant.other.symbol.ruby";
3001
+ }
3002
+ }, {
3003
+ defaultToken: "constant.other.symbol.ruby"
3004
+ }],
3005
+ "rState": [{
3006
+ token: "string.regexp",// excluded nested |^% due to difficulty in realization
3007
+ regex: /[(\[<{]/, onMatch: function (val, state, stack) {
3008
+ if (stack.length && val === stack[0]) {
3009
+ stack.unshift(val, state);
3010
+ return this.token;
3011
+ }
3012
+ return "constant.language.escape";
3013
+ }
3014
+ }, {
3015
+ token: "paren.start",
3016
+ regex: /#{/,
3017
+ push: "start"
3018
+ }, {
3019
+ token: "string.regexp",
3020
+ regex: /\//
3021
+ }, {
3022
+ token: "string.regexp",
3023
+ regex: /[)\]>}^|%][imxouesn]*/, onMatch: function (val, state, stack) {
3024
+ if (stack.length && val[0] === closeParen[stack[0]]) {
3025
+ stack.shift();
3026
+ this.next = stack.shift();
3027
+ return this.token;
3028
+ }
3029
+ this.next = '';
3030
+ return "constant.language.escape";
3031
+ }
3032
+ },
3033
+ {include: "regex"},
3034
+ {
3035
+ defaultToken: "string.regexp"
3036
+ }],
3037
+ "regex": [
3038
+ {// character classes
3039
+ token: "regexp.keyword",
3040
+ regex: /\\[wWdDhHsS]/
2767
3041
  }, {
2768
- token : "paren.rparen",
2769
- regex : "[\\])}]"
3042
+ token: "constant.language.escape",
3043
+ regex: /\\[AGbBzZ]/
2770
3044
  }, {
2771
- token : "text",
2772
- regex : "\\s+"
3045
+ token: "constant.language.escape",
3046
+ regex: /\\g<[a-zA-Z0-9]*>/
3047
+ }, {
3048
+ token: ["constant.language.escape", "regexp.keyword", "constant.language.escape"],
3049
+ 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)(})/
3050
+ }, {
3051
+ token: ["constant.language.escape", "invalid", "constant.language.escape"],
3052
+ regex: /(\\p{\^?)([^/]*)(})/
3053
+ }, {// escapes
3054
+ token: "regexp.keyword.operator",
3055
+ regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
3056
+ }, {// flag
3057
+ token: "string.regexp",
3058
+ regex: /[/][imxouesn]*/,
3059
+ next: "start"
3060
+ }, {// invalid operators
3061
+ token: "invalid",
3062
+ regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
3063
+ }, {// operators
3064
+ token: "constant.language.escape",
3065
+ regex: /\(\?(?:[:=!>]|<'?[a-zA-Z]*'?>|<[=!])|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
3066
+ }, {
3067
+ token: "constant.language.delimiter",
3068
+ regex: /\|/
3069
+ }, {
3070
+ token: "regexp.keyword",
3071
+ regex: /\[\[:(?:alnum|alpha|blank|cntrl|digit|graph|lower|print|punct|space|upper|xdigit|word|ascii):\]\]/
3072
+ }, {
3073
+ token: "constant.language.escape",
3074
+ regex: /\[\^?/,
3075
+ push: "regex_character_class"
3076
+ }, {
3077
+ defaultToken: "string.regexp"
2773
3078
  }
2774
3079
  ],
2775
- "comment" : [
3080
+ "regex_character_class": [
2776
3081
  {
2777
- token : "comment", // closing comment
2778
- regex : "^=end(?:$|\\s.*$)",
2779
- next : "start"
3082
+ token: "regexp.keyword",
3083
+ regex: /\\[wWdDhHsS]/
3084
+ }, {
3085
+ token: "regexp.charclass.keyword.operator",
3086
+ regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
3087
+ }, {
3088
+ token: "constant.language.escape",
3089
+ regex: /&?&?\[\^?/,
3090
+ push: "regex_character_class"
2780
3091
  }, {
2781
- token : "comment", // comment spanning whole line
2782
- regex : ".+"
3092
+ token: "constant.language.escape",
3093
+ regex: "]",
3094
+ next: "pop"
3095
+ }, {
3096
+ token: "constant.language.escape",
3097
+ regex: "-"
3098
+ }, {
3099
+ defaultToken: "string.regexp.characterclass"
2783
3100
  }
2784
3101
  ]
2785
3102
  };
@@ -2792,94 +3109,271 @@ oop.inherits(RubyHighlightRules, TextHighlightRules);
2792
3109
  exports.RubyHighlightRules = RubyHighlightRules;
2793
3110
  });
2794
3111
 
2795
- ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) {
3112
+ ace.define("ace/mode/folding/ruby",[], function (require, exports, module) {
2796
3113
  "use strict";
2797
3114
 
2798
3115
  var oop = require("../../lib/oop");
2799
3116
  var BaseFoldMode = require("./fold_mode").FoldMode;
2800
3117
  var Range = require("../../range").Range;
3118
+ var TokenIterator = require("../../token_iterator").TokenIterator;
3119
+
3120
+
3121
+ var FoldMode = exports.FoldMode = function () {
3122
+ };
2801
3123
 
2802
- var FoldMode = exports.FoldMode = function() {};
2803
3124
  oop.inherits(FoldMode, BaseFoldMode);
2804
3125
 
2805
- (function() {
3126
+ (function () {
3127
+ this.indentKeywords = {
3128
+ "class": 1,
3129
+ "def": 1,
3130
+ "module": 1,
3131
+ "do": 1,
3132
+ "unless": 1,
3133
+ "if": 1,
3134
+ "while": 1,
3135
+ "for": 1,
3136
+ "until": 1,
3137
+ "begin": 1,
3138
+ "else": 0,
3139
+ "elsif": 0,
3140
+ "rescue": 0,
3141
+ "ensure": 0,
3142
+ "when": 0,
3143
+ "end": -1,
3144
+ "case": 1,
3145
+ "=begin": 1,
3146
+ "=end": -1
3147
+ };
2806
3148
 
2807
- this.getFoldWidgetRange = function(session, foldStyle, row) {
2808
- var range = this.indentationBlock(session, row);
2809
- if (range)
2810
- return range;
3149
+ this.foldingStartMarker = /(?:\s|^)(def|do|while|class|unless|module|if|for|until|begin|else|elsif|case|rescue|ensure|when)\b|({\s*$)|(=begin)/;
3150
+ this.foldingStopMarker = /(=end(?=$|\s.*$))|(^\s*})|\b(end)\b/;
2811
3151
 
2812
- var re = /\S/;
3152
+ this.getFoldWidget = function (session, foldStyle, row) {
2813
3153
  var line = session.getLine(row);
2814
- var startLevel = line.search(re);
2815
- if (startLevel == -1 || line[startLevel] != "#")
2816
- return;
2817
-
2818
- var startColumn = line.length;
2819
- var maxRow = session.getLength();
2820
- var startRow = row;
2821
- var endRow = row;
3154
+ var isStart = this.foldingStartMarker.test(line);
3155
+ var isEnd = this.foldingStopMarker.test(line);
3156
+
3157
+ if (isStart && !isEnd) {
3158
+ var match = line.match(this.foldingStartMarker);
3159
+ if (match[1]) {
3160
+ if (match[1] == "if" || match[1] == "else" || match[1] == "while" || match[1] == "until" || match[1] == "unless") {
3161
+ if (match[1] == "else" && /^\s*else\s*$/.test(line) === false) {
3162
+ return;
3163
+ }
3164
+ if (/^\s*(?:if|else|while|until|unless)\s*/.test(line) === false) {
3165
+ return;
3166
+ }
3167
+ }
2822
3168
 
2823
- while (++row < maxRow) {
2824
- line = session.getLine(row);
2825
- var level = line.search(re);
3169
+ if (match[1] == "when") {
3170
+ if (/\sthen\s/.test(line) === true) {
3171
+ return;
3172
+ }
3173
+ }
3174
+ if (session.getTokenAt(row, match.index + 2).type === "keyword")
3175
+ return "start";
3176
+ } else if (match[3]) {
3177
+ if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
3178
+ return "start";
3179
+ } else {
3180
+ return "start";
3181
+ }
3182
+ }
3183
+ if (foldStyle != "markbeginend" || !isEnd || isStart && isEnd)
3184
+ return "";
2826
3185
 
2827
- if (level == -1)
2828
- continue;
3186
+ var match = line.match(this.foldingStopMarker);
3187
+ if (match[3] === "end") {
3188
+ if (session.getTokenAt(row, match.index + 1).type === "keyword")
3189
+ return "end";
3190
+ } else if (match[1]) {
3191
+ if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
3192
+ return "end";
3193
+ } else
3194
+ return "end";
3195
+ };
2829
3196
 
2830
- if (line[level] != "#")
2831
- break;
3197
+ this.getFoldWidgetRange = function (session, foldStyle, row) {
3198
+ var line = session.doc.getLine(row);
3199
+ var match = this.foldingStartMarker.exec(line);
3200
+ if (match) {
3201
+ if (match[1] || match[3])
3202
+ return this.rubyBlock(session, row, match.index + 2);
2832
3203
 
2833
- endRow = row;
3204
+ return this.openingBracketBlock(session, "{", row, match.index);
2834
3205
  }
2835
3206
 
2836
- if (endRow > startRow) {
2837
- var endColumn = session.getLine(endRow).length;
2838
- return new Range(startRow, startColumn, endRow, endColumn);
3207
+ var match = this.foldingStopMarker.exec(line);
3208
+ if (match) {
3209
+ if (match[3] === "end") {
3210
+ if (session.getTokenAt(row, match.index + 1).type === "keyword")
3211
+ return this.rubyBlock(session, row, match.index + 1);
3212
+ }
3213
+
3214
+ if (match[1] === "=end") {
3215
+ if (session.getTokenAt(row, match.index + 1).type === "comment.multiline")
3216
+ return this.rubyBlock(session, row, match.index + 1);
3217
+ }
3218
+
3219
+ return this.closingBracketBlock(session, "}", row, match.index + match[0].length);
2839
3220
  }
2840
3221
  };
2841
- this.getFoldWidget = function(session, foldStyle, row) {
3222
+
3223
+ this.rubyBlock = function (session, row, column, tokenRange) {
3224
+ var stream = new TokenIterator(session, row, column);
3225
+
3226
+ var token = stream.getCurrentToken();
3227
+ if (!token || (token.type != "keyword" && token.type != "comment.multiline"))
3228
+ return;
3229
+
3230
+ var val = token.value;
2842
3231
  var line = session.getLine(row);
2843
- var indent = line.search(/\S/);
2844
- var next = session.getLine(row + 1);
2845
- var prev = session.getLine(row - 1);
2846
- var prevIndent = prev.search(/\S/);
2847
- var nextIndent = next.search(/\S/);
2848
-
2849
- if (indent == -1) {
2850
- session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : "";
2851
- return "";
3232
+ switch (token.value) {
3233
+ case "if":
3234
+ case "unless":
3235
+ case "while":
3236
+ case "until":
3237
+ var checkToken = new RegExp("^\\s*" + token.value);
3238
+ if (!checkToken.test(line)) {
3239
+ return;
3240
+ }
3241
+ var dir = this.indentKeywords[val];
3242
+ break;
3243
+ case "when":
3244
+ if (/\sthen\s/.test(line)) {
3245
+ return;
3246
+ }
3247
+ case "elsif":
3248
+ case "rescue":
3249
+ case "ensure":
3250
+ var dir = 1;
3251
+ break;
3252
+ case "else":
3253
+ var checkToken = new RegExp("^\\s*" + token.value + "\\s*$");
3254
+ if (!checkToken.test(line)) {
3255
+ return;
3256
+ }
3257
+ var dir = 1;
3258
+ break;
3259
+ default:
3260
+ var dir = this.indentKeywords[val];
3261
+ break;
2852
3262
  }
2853
- if (prevIndent == -1) {
2854
- if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") {
2855
- session.foldWidgets[row - 1] = "";
2856
- session.foldWidgets[row + 1] = "";
2857
- return "start";
3263
+
3264
+ var stack = [val];
3265
+ if (!dir)
3266
+ return;
3267
+
3268
+ var startColumn = dir === -1 ? session.getLine(row - 1).length : session.getLine(row).length;
3269
+ var startRow = row;
3270
+ var ranges = [];
3271
+ ranges.push(stream.getCurrentTokenRange());
3272
+
3273
+ stream.step = dir === -1 ? stream.stepBackward : stream.stepForward;
3274
+ if (token.type == "comment.multiline") {
3275
+ while (token = stream.step()) {
3276
+ if (token.type !== "comment.multiline")
3277
+ continue;
3278
+ if (dir == 1) {
3279
+ startColumn = 6;
3280
+ if (token.value == "=end") {
3281
+ break;
3282
+ }
3283
+ } else {
3284
+ if (token.value == "=begin") {
3285
+ break;
3286
+ }
3287
+ }
2858
3288
  }
2859
- } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
2860
- if (session.getLine(row - 2).search(/\S/) == -1) {
2861
- session.foldWidgets[row - 1] = "start";
2862
- session.foldWidgets[row + 1] = "";
2863
- return "";
3289
+ } else {
3290
+ while (token = stream.step()) {
3291
+ var ignore = false;
3292
+ if (token.type !== "keyword")
3293
+ continue;
3294
+ var level = dir * this.indentKeywords[token.value];
3295
+ line = session.getLine(stream.getCurrentTokenRow());
3296
+ switch (token.value) {
3297
+ case "do":
3298
+ for (var i = stream.$tokenIndex - 1; i >= 0; i--) {
3299
+ var prevToken = stream.$rowTokens[i];
3300
+ if (prevToken && (prevToken.value == "while" || prevToken.value == "until" || prevToken.value == "for")) {
3301
+ level = 0;
3302
+ break;
3303
+ }
3304
+ }
3305
+ break;
3306
+ case "else":
3307
+ var checkToken = new RegExp("^\\s*" + token.value + "\\s*$");
3308
+ if (!checkToken.test(line) || val == "case") {
3309
+ level = 0;
3310
+ ignore = true;
3311
+ }
3312
+ break;
3313
+ case "if":
3314
+ case "unless":
3315
+ case "while":
3316
+ case "until":
3317
+ var checkToken = new RegExp("^\\s*" + token.value);
3318
+ if (!checkToken.test(line)) {
3319
+ level = 0;
3320
+ ignore = true;
3321
+ }
3322
+ break;
3323
+ case "when":
3324
+ if (/\sthen\s/.test(line) || val == "case") {
3325
+ level = 0;
3326
+ ignore = true;
3327
+ }
3328
+ break;
3329
+ }
3330
+
3331
+ if (level > 0) {
3332
+ stack.unshift(token.value);
3333
+ } else if (level <= 0 && ignore === false) {
3334
+ stack.shift();
3335
+ if (!stack.length) {
3336
+ if ((val == "while" || val == "until" || val == "for") && token.value != "do") {
3337
+ break;
3338
+ }
3339
+ if (token.value == "do" && dir == -1 && level != 0)
3340
+ break;
3341
+ if (token.value != "do")
3342
+ break;
3343
+ }
3344
+
3345
+ if (level === 0) {
3346
+ stack.unshift(token.value);
3347
+ }
3348
+ }
2864
3349
  }
2865
3350
  }
2866
3351
 
2867
- if (prevIndent!= -1 && prevIndent < indent)
2868
- session.foldWidgets[row - 1] = "start";
2869
- else
2870
- session.foldWidgets[row - 1] = "";
3352
+ if (!token)
3353
+ return null;
2871
3354
 
2872
- if (indent < nextIndent)
2873
- return "start";
2874
- else
2875
- return "";
3355
+ if (tokenRange) {
3356
+ ranges.push(stream.getCurrentTokenRange());
3357
+ return ranges;
3358
+ }
3359
+
3360
+ var row = stream.getCurrentTokenRow();
3361
+ if (dir === -1) {
3362
+ if (token.type === "comment.multiline") {
3363
+ var endColumn = 6;
3364
+ } else {
3365
+ var endColumn = session.getLine(row).length;
3366
+ }
3367
+ return new Range(row, endColumn, startRow - 1, startColumn);
3368
+ } else
3369
+ return new Range(startRow, startColumn, row - 1, session.getLine(row - 1).length);
2876
3370
  };
2877
3371
 
2878
3372
  }).call(FoldMode.prototype);
2879
3373
 
2880
3374
  });
2881
3375
 
2882
- 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/coffee"], function(require, exports, module) {
3376
+ ace.define("ace/mode/ruby",[], function(require, exports, module) {
2883
3377
  "use strict";
2884
3378
 
2885
3379
  var oop = require("../lib/oop");
@@ -2888,13 +3382,14 @@ var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules;
2888
3382
  var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
2889
3383
  var Range = require("../range").Range;
2890
3384
  var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
2891
- var FoldMode = require("./folding/coffee").FoldMode;
3385
+ var FoldMode = require("./folding/ruby").FoldMode;
2892
3386
 
2893
3387
  var Mode = function() {
2894
3388
  this.HighlightRules = RubyHighlightRules;
2895
3389
  this.$outdent = new MatchingBraceOutdent();
2896
3390
  this.$behaviour = new CstyleBehaviour();
2897
3391
  this.foldingRules = new FoldMode();
3392
+ this.indentKeywords = this.foldingRules.indentKeywords;
2898
3393
  };
2899
3394
  oop.inherits(Mode, TextMode);
2900
3395
 
@@ -2909,7 +3404,7 @@ oop.inherits(Mode, TextMode);
2909
3404
  var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
2910
3405
  var tokens = tokenizedLine.tokens;
2911
3406
 
2912
- if (tokens.length && tokens[tokens.length-1].type == "comment") {
3407
+ if (tokens.length && tokens[tokens.length - 1].type == "comment") {
2913
3408
  return indent;
2914
3409
  }
2915
3410
 
@@ -2917,7 +3412,7 @@ oop.inherits(Mode, TextMode);
2917
3412
  var match = line.match(/^.*[\{\(\[]\s*$/);
2918
3413
  var startingClassOrMethod = line.match(/^\s*(class|def|module)\s.*$/);
2919
3414
  var startingDoBlock = line.match(/.*do(\s*|\s+\|.*\|\s*)$/);
2920
- var startingConditional = line.match(/^\s*(if|else|when)\s*/);
3415
+ var startingConditional = line.match(/^\s*(if|else|when|elsif|unless|while|for|begin|rescue|ensure)\s*/);
2921
3416
  if (match || startingClassOrMethod || startingDoBlock || startingConditional) {
2922
3417
  indent += tab;
2923
3418
  }
@@ -2927,7 +3422,7 @@ oop.inherits(Mode, TextMode);
2927
3422
  };
2928
3423
 
2929
3424
  this.checkOutdent = function(state, line, input) {
2930
- return /^\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input);
3425
+ return /^\s+(end|else|rescue|ensure)$/.test(line + input) || this.$outdent.checkOutdent(line, input);
2931
3426
  };
2932
3427
 
2933
3428
  this.autoOutdent = function(state, session, row) {
@@ -2940,17 +3435,30 @@ oop.inherits(Mode, TextMode);
2940
3435
  var tab = session.getTabString();
2941
3436
  if (prevIndent.length <= indent.length) {
2942
3437
  if (indent.slice(-tab.length) == tab)
2943
- session.remove(new Range(row, indent.length-tab.length, row, indent.length));
3438
+ session.remove(new Range(row, indent.length - tab.length, row, indent.length));
2944
3439
  }
2945
3440
  };
2946
3441
 
3442
+ this.getMatching = function(session, row, column) {
3443
+ if (row == undefined) {
3444
+ var pos = session.selection.lead;
3445
+ column = pos.column;
3446
+ row = pos.row;
3447
+ }
3448
+
3449
+ var startToken = session.getTokenAt(row, column);
3450
+ if (startToken && startToken.value in this.indentKeywords)
3451
+ return this.foldingRules.rubyBlock(session, row, column, true);
3452
+ };
3453
+
2947
3454
  this.$id = "ace/mode/ruby";
3455
+ this.snippetFileId = "ace/snippets/ruby";
2948
3456
  }).call(Mode.prototype);
2949
3457
 
2950
3458
  exports.Mode = Mode;
2951
3459
  });
2952
3460
 
2953
- ace.define("ace/mode/ejs",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/javascript_highlight_rules","ace/lib/oop","ace/mode/html","ace/mode/javascript","ace/mode/css","ace/mode/ruby"], function(require, exports, module) {
3461
+ ace.define("ace/mode/ejs",[], function(require, exports, module) {
2954
3462
  "use strict";
2955
3463
 
2956
3464
  var oop = require("../lib/oop");