@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,13 +1,89 @@
1
- ace.define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"], function(require, exports, module) {
1
+ ace.define("ace/snippets",[], function(require, exports, module) {
2
2
  "use strict";
3
+ var dom = require("./lib/dom");
3
4
  var oop = require("./lib/oop");
4
5
  var EventEmitter = require("./lib/event_emitter").EventEmitter;
5
6
  var lang = require("./lib/lang");
6
7
  var Range = require("./range").Range;
7
- var Anchor = require("./anchor").Anchor;
8
+ var RangeList = require("./range_list").RangeList;
8
9
  var HashHandler = require("./keyboard/hash_handler").HashHandler;
9
10
  var Tokenizer = require("./tokenizer").Tokenizer;
10
- var comparePoints = Range.comparePoints;
11
+ var clipboard = require("./clipboard");
12
+
13
+ var VARIABLES = {
14
+ CURRENT_WORD: function(editor) {
15
+ return editor.session.getTextRange(editor.session.getWordRange());
16
+ },
17
+ SELECTION: function(editor, name, indentation) {
18
+ var text = editor.session.getTextRange();
19
+ if (indentation)
20
+ return text.replace(/\n\r?([ \t]*\S)/g, "\n" + indentation + "$1");
21
+ return text;
22
+ },
23
+ CURRENT_LINE: function(editor) {
24
+ return editor.session.getLine(editor.getCursorPosition().row);
25
+ },
26
+ PREV_LINE: function(editor) {
27
+ return editor.session.getLine(editor.getCursorPosition().row - 1);
28
+ },
29
+ LINE_INDEX: function(editor) {
30
+ return editor.getCursorPosition().row;
31
+ },
32
+ LINE_NUMBER: function(editor) {
33
+ return editor.getCursorPosition().row + 1;
34
+ },
35
+ SOFT_TABS: function(editor) {
36
+ return editor.session.getUseSoftTabs() ? "YES" : "NO";
37
+ },
38
+ TAB_SIZE: function(editor) {
39
+ return editor.session.getTabSize();
40
+ },
41
+ CLIPBOARD: function(editor) {
42
+ return clipboard.getText && clipboard.getText();
43
+ },
44
+ FILENAME: function(editor) {
45
+ return /[^/\\]*$/.exec(this.FILEPATH(editor))[0];
46
+ },
47
+ FILENAME_BASE: function(editor) {
48
+ return /[^/\\]*$/.exec(this.FILEPATH(editor))[0].replace(/\.[^.]*$/, "");
49
+ },
50
+ DIRECTORY: function(editor) {
51
+ return this.FILEPATH(editor).replace(/[^/\\]*$/, "");
52
+ },
53
+ FILEPATH: function(editor) { return "/not implemented.txt"; },
54
+ WORKSPACE_NAME: function() { return "Unknown"; },
55
+ FULLNAME: function() { return "Unknown"; },
56
+ BLOCK_COMMENT_START: function(editor) {
57
+ var mode = editor.session.$mode || {};
58
+ return mode.blockComment && mode.blockComment.start || "";
59
+ },
60
+ BLOCK_COMMENT_END: function(editor) {
61
+ var mode = editor.session.$mode || {};
62
+ return mode.blockComment && mode.blockComment.end || "";
63
+ },
64
+ LINE_COMMENT: function(editor) {
65
+ var mode = editor.session.$mode || {};
66
+ return mode.lineCommentStart || "";
67
+ },
68
+ CURRENT_YEAR: date.bind(null, {year: "numeric"}),
69
+ CURRENT_YEAR_SHORT: date.bind(null, {year: "2-digit"}),
70
+ CURRENT_MONTH: date.bind(null, {month: "numeric"}),
71
+ CURRENT_MONTH_NAME: date.bind(null, {month: "long"}),
72
+ CURRENT_MONTH_NAME_SHORT: date.bind(null, {month: "short"}),
73
+ CURRENT_DATE: date.bind(null, {day: "2-digit"}),
74
+ CURRENT_DAY_NAME: date.bind(null, {weekday: "long"}),
75
+ CURRENT_DAY_NAME_SHORT: date.bind(null, {weekday: "short"}),
76
+ CURRENT_HOUR: date.bind(null, {hour: "2-digit", hour12: false}),
77
+ CURRENT_MINUTE: date.bind(null, {minute: "2-digit"}),
78
+ CURRENT_SECOND: date.bind(null, {second: "2-digit"})
79
+ };
80
+
81
+ VARIABLES.SELECTED_TEXT = VARIABLES.SELECTION;
82
+
83
+ function date(dateFormat) {
84
+ var str = new Date().toLocaleString("en-us", dateFormat);
85
+ return str.length == 1 ? "0" + str : str;
86
+ }
11
87
 
12
88
  var SnippetManager = function() {
13
89
  this.snippetMap = {};
@@ -18,41 +94,40 @@ var SnippetManager = function() {
18
94
  oop.implement(this, EventEmitter);
19
95
 
20
96
  this.getTokenizer = function() {
21
- function TabstopToken(str, _, stack) {
97
+ return SnippetManager.$tokenizer || this.createTokenizer();
98
+ };
99
+
100
+ this.createTokenizer = function() {
101
+ function TabstopToken(str) {
22
102
  str = str.substr(1);
23
- if (/^\d+$/.test(str) && !stack.inFormatString)
103
+ if (/^\d+$/.test(str))
24
104
  return [{tabstopId: parseInt(str, 10)}];
25
105
  return [{text: str}];
26
106
  }
27
107
  function escape(ch) {
28
108
  return "(?:[^\\\\" + ch + "]|\\\\.)";
29
109
  }
110
+ var formatMatcher = {
111
+ regex: "/(" + escape("/") + "+)/",
112
+ onMatch: function(val, state, stack) {
113
+ var ts = stack[0];
114
+ ts.fmtString = true;
115
+ ts.guard = val.slice(1, -1);
116
+ ts.flag = "";
117
+ return "";
118
+ },
119
+ next: "formatString"
120
+ };
121
+
30
122
  SnippetManager.$tokenizer = new Tokenizer({
31
123
  start: [
32
- {regex: /:/, onMatch: function(val, state, stack) {
33
- if (stack.length && stack[0].expectIf) {
34
- stack[0].expectIf = false;
35
- stack[0].elseBranch = stack[0];
36
- return [stack[0]];
37
- }
38
- return ":";
39
- }},
40
124
  {regex: /\\./, onMatch: function(val, state, stack) {
41
125
  var ch = val[1];
42
126
  if (ch == "}" && stack.length) {
43
127
  val = ch;
44
- }else if ("`$\\".indexOf(ch) != -1) {
128
+ } else if ("`$\\".indexOf(ch) != -1) {
45
129
  val = ch;
46
- } else if (stack.inFormatString) {
47
- if (ch == "n")
48
- val = "\n";
49
- else if (ch == "t")
50
- val = "\n";
51
- else if ("ulULE".indexOf(ch) != -1) {
52
- val = {changeCase: ch, local: ch > "a"};
53
- }
54
130
  }
55
-
56
131
  return [val];
57
132
  }},
58
133
  {regex: /}/, onMatch: function(val, state, stack) {
@@ -60,7 +135,7 @@ var SnippetManager = function() {
60
135
  }},
61
136
  {regex: /\$(?:\d+|\w+)/, onMatch: TabstopToken},
62
137
  {regex: /\$\{[\dA-Z_a-z]+/, onMatch: function(str, state, stack) {
63
- var t = TabstopToken(str.substr(1), state, stack);
138
+ var t = TabstopToken(str.substr(1));
64
139
  stack.unshift(t[0]);
65
140
  return t;
66
141
  }, next: "snippetVar"},
@@ -68,39 +143,78 @@ var SnippetManager = function() {
68
143
  ],
69
144
  snippetVar: [
70
145
  {regex: "\\|" + escape("\\|") + "*\\|", onMatch: function(val, state, stack) {
71
- stack[0].choices = val.slice(1, -1).split(",");
72
- }, next: "start"},
73
- {regex: "/(" + escape("/") + "+)/(?:(" + escape("/") + "*)/)(\\w*):?",
74
- onMatch: function(val, state, stack) {
75
- var ts = stack[0];
76
- ts.fmtString = val;
77
-
78
- val = this.splitRegex.exec(val);
79
- ts.guard = val[1];
80
- ts.fmt = val[2];
81
- ts.flag = val[3];
82
- return "";
83
- }, next: "start"},
84
- {regex: "`" + escape("`") + "*`", onMatch: function(val, state, stack) {
85
- stack[0].code = val.splice(1, -1);
86
- return "";
87
- }, next: "start"},
88
- {regex: "\\?", onMatch: function(val, state, stack) {
89
- if (stack[0])
90
- stack[0].expectIf = true;
146
+ var choices = val.slice(1, -1).replace(/\\[,|\\]|,/g, function(operator) {
147
+ return operator.length == 2 ? operator[1] : "\x00";
148
+ }).split("\x00").map(function(value){
149
+ return {value: value};
150
+ });
151
+ stack[0].choices = choices;
152
+ return [choices[0]];
91
153
  }, next: "start"},
154
+ formatMatcher,
92
155
  {regex: "([^:}\\\\]|\\\\.)*:?", token: "", next: "start"}
93
156
  ],
94
157
  formatString: [
95
- {regex: "/(" + escape("/") + "+)/", token: "regex"},
96
- {regex: "", onMatch: function(val, state, stack) {
97
- stack.inFormatString = true;
158
+ {regex: /:/, onMatch: function(val, state, stack) {
159
+ if (stack.length && stack[0].expectElse) {
160
+ stack[0].expectElse = false;
161
+ stack[0].ifEnd = {elseEnd: stack[0]};
162
+ return [stack[0].ifEnd];
163
+ }
164
+ return ":";
165
+ }},
166
+ {regex: /\\./, onMatch: function(val, state, stack) {
167
+ var ch = val[1];
168
+ if (ch == "}" && stack.length)
169
+ val = ch;
170
+ else if ("`$\\".indexOf(ch) != -1)
171
+ val = ch;
172
+ else if (ch == "n")
173
+ val = "\n";
174
+ else if (ch == "t")
175
+ val = "\t";
176
+ else if ("ulULE".indexOf(ch) != -1)
177
+ val = {changeCase: ch, local: ch > "a"};
178
+ return [val];
179
+ }},
180
+ {regex: "/\\w*}", onMatch: function(val, state, stack) {
181
+ var next = stack.shift();
182
+ if (next)
183
+ next.flag = val.slice(1, -1);
184
+ this.next = next && next.tabstopId ? "start" : "";
185
+ return [next || val];
186
+ }, next: "start"},
187
+ {regex: /\$(?:\d+|\w+)/, onMatch: function(val, state, stack) {
188
+ return [{text: val.slice(1)}];
189
+ }},
190
+ {regex: /\${\w+/, onMatch: function(val, state, stack) {
191
+ var token = {text: val.slice(2)};
192
+ stack.unshift(token);
193
+ return [token];
194
+ }, next: "formatStringVar"},
195
+ {regex: /\n/, token: "newline", merge: false},
196
+ {regex: /}/, onMatch: function(val, state, stack) {
197
+ var next = stack.shift();
198
+ this.next = next && next.tabstopId ? "start" : "";
199
+ return [next || val];
98
200
  }, next: "start"}
201
+ ],
202
+ formatStringVar: [
203
+ {regex: /:\/\w+}/, onMatch: function(val, state, stack) {
204
+ var ts = stack[0];
205
+ ts.formatFunction = val.slice(2, -1);
206
+ return [stack.shift()];
207
+ }, next: "formatString"},
208
+ formatMatcher,
209
+ {regex: /:[\?\-+]?/, onMatch: function(val, state, stack) {
210
+ if (val[1] == "+")
211
+ stack[0].ifEnd = stack[0];
212
+ if (val[1] == "?")
213
+ stack[0].expectElse = true;
214
+ }, next: "formatString"},
215
+ {regex: "([^:}\\\\]|\\\\.)*:?", token: "", next: "formatString"}
99
216
  ]
100
217
  });
101
- SnippetManager.prototype.getTokenizer = function() {
102
- return SnippetManager.$tokenizer;
103
- };
104
218
  return SnippetManager.$tokenizer;
105
219
  };
106
220
 
@@ -109,59 +223,33 @@ var SnippetManager = function() {
109
223
  return x.value || x;
110
224
  });
111
225
  };
112
-
113
- this.$getDefaultValue = function(editor, name) {
114
- if (/^[A-Z]\d+$/.test(name)) {
115
- var i = name.substr(1);
116
- return (this.variables[name[0] + "__"] || {})[i];
117
- }
118
- if (/^\d+$/.test(name)) {
119
- return (this.variables.__ || {})[name];
120
- }
226
+
227
+ this.getVariableValue = function(editor, name, indentation) {
228
+ if (/^\d+$/.test(name))
229
+ return (this.variables.__ || {})[name] || "";
230
+ if (/^[A-Z]\d+$/.test(name))
231
+ return (this.variables[name[0] + "__"] || {})[name.substr(1)] || "";
232
+
121
233
  name = name.replace(/^TM_/, "");
122
-
123
- if (!editor)
124
- return;
125
- var s = editor.session;
126
- switch(name) {
127
- case "CURRENT_WORD":
128
- var r = s.getWordRange();
129
- case "SELECTION":
130
- case "SELECTED_TEXT":
131
- return s.getTextRange(r);
132
- case "CURRENT_LINE":
133
- return s.getLine(editor.getCursorPosition().row);
134
- case "PREV_LINE": // not possible in textmate
135
- return s.getLine(editor.getCursorPosition().row - 1);
136
- case "LINE_INDEX":
137
- return editor.getCursorPosition().column;
138
- case "LINE_NUMBER":
139
- return editor.getCursorPosition().row + 1;
140
- case "SOFT_TABS":
141
- return s.getUseSoftTabs() ? "YES" : "NO";
142
- case "TAB_SIZE":
143
- return s.getTabSize();
144
- case "FILENAME":
145
- case "FILEPATH":
146
- return "";
147
- case "FULLNAME":
148
- return "Ace";
149
- }
150
- };
151
- this.variables = {};
152
- this.getVariableValue = function(editor, varName) {
153
- if (this.variables.hasOwnProperty(varName))
154
- return this.variables[varName](editor, varName) || "";
155
- return this.$getDefaultValue(editor, varName) || "";
234
+ if (!this.variables.hasOwnProperty(name))
235
+ return "";
236
+ var value = this.variables[name];
237
+ if (typeof value == "function")
238
+ value = this.variables[name](editor, name, indentation);
239
+ return value == null ? "" : value;
156
240
  };
241
+
242
+ this.variables = VARIABLES;
157
243
  this.tmStrFormat = function(str, ch, editor) {
244
+ if (!ch.fmt) return str;
158
245
  var flag = ch.flag || "";
159
246
  var re = ch.guard;
160
- re = new RegExp(re, flag.replace(/[^gi]/, ""));
161
- var fmtTokens = this.tokenizeTmSnippet(ch.fmt, "formatString");
247
+ re = new RegExp(re, flag.replace(/[^gim]/g, ""));
248
+ var fmtTokens = typeof ch.fmt == "string" ? this.tokenizeTmSnippet(ch.fmt, "formatString") : ch.fmt;
162
249
  var _self = this;
163
250
  var formatted = str.replace(re, function() {
164
- _self.variables.__ = arguments;
251
+ var oldArgs = _self.variables.__;
252
+ _self.variables.__ = [].slice.call(arguments);
165
253
  var fmtParts = _self.resolveVariables(fmtTokens, editor);
166
254
  var gChangeCase = "E";
167
255
  for (var i = 0; i < fmtParts.length; i++) {
@@ -186,40 +274,63 @@ var SnippetManager = function() {
186
274
  fmtParts[i] = ch.toLowerCase();
187
275
  }
188
276
  }
277
+ _self.variables.__ = oldArgs;
189
278
  return fmtParts.join("");
190
279
  });
191
- this.variables.__ = null;
192
280
  return formatted;
193
281
  };
282
+
283
+ this.tmFormatFunction = function(str, ch, editor) {
284
+ if (ch.formatFunction == "upcase")
285
+ return str.toUpperCase();
286
+ if (ch.formatFunction == "downcase")
287
+ return str.toLowerCase();
288
+ return str;
289
+ };
194
290
 
195
291
  this.resolveVariables = function(snippet, editor) {
196
292
  var result = [];
293
+ var indentation = "";
294
+ var afterNewLine = true;
197
295
  for (var i = 0; i < snippet.length; i++) {
198
296
  var ch = snippet[i];
199
297
  if (typeof ch == "string") {
200
298
  result.push(ch);
201
- } else if (typeof ch != "object") {
202
- continue;
203
- } else if (ch.skip) {
204
- gotoNext(ch);
205
- } else if (ch.processed < i) {
299
+ if (ch == "\n") {
300
+ afterNewLine = true;
301
+ indentation = "";
302
+ }
303
+ else if (afterNewLine) {
304
+ indentation = /^\t*/.exec(ch)[0];
305
+ afterNewLine = /\S/.test(ch);
306
+ }
206
307
  continue;
207
- } else if (ch.text) {
208
- var value = this.getVariableValue(editor, ch.text);
209
- if (value && ch.fmtString)
210
- value = this.tmStrFormat(value, ch);
211
- ch.processed = i;
212
- if (ch.expectIf == null) {
213
- if (value) {
214
- result.push(value);
215
- gotoNext(ch);
216
- }
217
- } else {
218
- if (value) {
219
- ch.skip = ch.elseBranch;
220
- } else
221
- gotoNext(ch);
308
+ }
309
+ if (!ch) continue;
310
+ afterNewLine = false;
311
+
312
+ if (ch.fmtString) {
313
+ var j = snippet.indexOf(ch, i + 1);
314
+ if (j == -1) j = snippet.length;
315
+ ch.fmt = snippet.slice(i + 1, j);
316
+ i = j;
317
+ }
318
+
319
+ if (ch.text) {
320
+ var value = this.getVariableValue(editor, ch.text, indentation) + "";
321
+ if (ch.fmtString)
322
+ value = this.tmStrFormat(value, ch, editor);
323
+ if (ch.formatFunction)
324
+ value = this.tmFormatFunction(value, ch, editor);
325
+
326
+ if (value && !ch.ifEnd) {
327
+ result.push(value);
328
+ gotoNext(ch);
329
+ } else if (!value && ch.ifEnd) {
330
+ gotoNext(ch.ifEnd);
222
331
  }
332
+ } else if (ch.elseEnd) {
333
+ gotoNext(ch.elseEnd);
223
334
  } else if (ch.tabstopId != null) {
224
335
  result.push(ch);
225
336
  } else if (ch.changeCase != null) {
@@ -263,9 +374,12 @@ var SnippetManager = function() {
263
374
  ts = tabstops[id] = [];
264
375
  ts.index = id;
265
376
  ts.value = "";
377
+ ts.parents = {};
266
378
  }
267
379
  if (ts.indexOf(p) !== -1)
268
380
  return;
381
+ if (p.choices && !ts.choices)
382
+ ts.choices = p.choices;
269
383
  ts.push(p);
270
384
  var i1 = tokens.indexOf(p, i + 1);
271
385
  if (i1 === -1)
@@ -300,19 +414,24 @@ var SnippetManager = function() {
300
414
  if (typeof p != "object")
301
415
  continue;
302
416
  var id = p.tabstopId;
417
+ var ts = tabstops[id];
303
418
  var i1 = tokens.indexOf(p, i + 1);
304
419
  if (expanding[id]) {
305
- if (expanding[id] === p)
306
- expanding[id] = null;
420
+ if (expanding[id] === p) {
421
+ delete expanding[id];
422
+ Object.keys(expanding).forEach(function(parentId) {
423
+ ts.parents[parentId] = true;
424
+ });
425
+ }
307
426
  continue;
308
427
  }
309
-
310
- var ts = tabstops[id];
311
- var arg = typeof ts.value == "string" ? [ts.value] : copyValue(ts.value);
312
- arg.unshift(i + 1, Math.max(0, i1 - i));
313
- arg.push(p);
314
428
  expanding[id] = p;
315
- tokens.splice.apply(tokens, arg);
429
+ var value = ts.value;
430
+ if (typeof value !== "string")
431
+ value = copyValue(value);
432
+ else if (p.fmt)
433
+ value = this.tmStrFormat(value, p, editor);
434
+ tokens.splice.apply(tokens, [i + 1, Math.max(0, i1 - i)].concat(value, p));
316
435
 
317
436
  if (ts.indexOf(p) === -1)
318
437
  ts.push(p);
@@ -328,7 +447,7 @@ var SnippetManager = function() {
328
447
  } else
329
448
  column += t.length;
330
449
  text += t;
331
- } else {
450
+ } else if (t) {
332
451
  if (!t.start)
333
452
  t.start = {row: row, column: column};
334
453
  else
@@ -499,6 +618,12 @@ var SnippetManager = function() {
499
618
  }
500
619
  snippetMap[scope].push(s);
501
620
 
621
+ if (s.prefix)
622
+ s.tabTrigger = s.prefix;
623
+
624
+ if (!s.content && s.body)
625
+ s.content = Array.isArray(s.body) ? s.body.join("\n") : s.body;
626
+
502
627
  if (s.tabTrigger && !s.trigger) {
503
628
  if (!s.guard && /^\w/.test(s.tabTrigger))
504
629
  s.guard = "\\b";
@@ -515,10 +640,13 @@ var SnippetManager = function() {
515
640
  s.endTriggerRe = new RegExp(s.endTrigger);
516
641
  }
517
642
 
518
- if (snippets && snippets.content)
519
- addSnippet(snippets);
520
- else if (Array.isArray(snippets))
643
+ if (Array.isArray(snippets)) {
521
644
  snippets.forEach(addSnippet);
645
+ } else {
646
+ Object.keys(snippets).forEach(function(key) {
647
+ addSnippet(snippets[key]);
648
+ });
649
+ }
522
650
 
523
651
  this._signal("registerSnippets", {scope: scope});
524
652
  };
@@ -568,7 +696,7 @@ var SnippetManager = function() {
568
696
  snippet.tabTrigger = val.match(/^\S*/)[0];
569
697
  if (!snippet.name)
570
698
  snippet.name = val;
571
- } else {
699
+ } else if (key) {
572
700
  snippet[key] = val;
573
701
  }
574
702
  }
@@ -630,66 +758,44 @@ var TabstopManager = function(editor) {
630
758
  };
631
759
 
632
760
  this.onChange = function(delta) {
633
- var changeRange = delta;
634
761
  var isRemove = delta.action[0] == "r";
635
- var start = delta.start;
636
- var end = delta.end;
637
- var startRow = start.row;
638
- var endRow = end.row;
639
- var lineDif = endRow - startRow;
640
- var colDiff = end.column - start.column;
641
-
642
- if (isRemove) {
643
- lineDif = -lineDif;
644
- colDiff = -colDiff;
645
- }
646
- if (!this.$inChange && isRemove) {
647
- var ts = this.selectedTabstop;
648
- var changedOutside = ts && !ts.some(function(r) {
649
- return comparePoints(r.start, start) <= 0 && comparePoints(r.end, end) >= 0;
650
- });
651
- if (changedOutside)
652
- return this.detach();
653
- }
654
- var ranges = this.ranges;
655
- for (var i = 0; i < ranges.length; i++) {
656
- var r = ranges[i];
657
- if (r.end.row < start.row)
658
- continue;
659
-
660
- if (isRemove && comparePoints(start, r.start) < 0 && comparePoints(end, r.end) > 0) {
661
- this.removeRange(r);
662
- i--;
663
- continue;
762
+ var selectedTabstop = this.selectedTabstop || {};
763
+ var parents = selectedTabstop.parents || {};
764
+ var tabstops = (this.tabstops || []).slice();
765
+ for (var i = 0; i < tabstops.length; i++) {
766
+ var ts = tabstops[i];
767
+ var active = ts == selectedTabstop || parents[ts.index];
768
+ ts.rangeList.$bias = active ? 0 : 1;
769
+
770
+ if (delta.action == "remove" && ts !== selectedTabstop) {
771
+ var parentActive = ts.parents && ts.parents[selectedTabstop.index];
772
+ var startIndex = ts.rangeList.pointIndex(delta.start, parentActive);
773
+ startIndex = startIndex < 0 ? -startIndex - 1 : startIndex + 1;
774
+ var endIndex = ts.rangeList.pointIndex(delta.end, parentActive);
775
+ endIndex = endIndex < 0 ? -endIndex - 1 : endIndex - 1;
776
+ var toRemove = ts.rangeList.ranges.slice(startIndex, endIndex);
777
+ for (var j = 0; j < toRemove.length; j++)
778
+ this.removeRange(toRemove[j]);
664
779
  }
665
-
666
- if (r.start.row == startRow && r.start.column > start.column)
667
- r.start.column += colDiff;
668
- if (r.end.row == startRow && r.end.column >= start.column)
669
- r.end.column += colDiff;
670
- if (r.start.row >= startRow)
671
- r.start.row += lineDif;
672
- if (r.end.row >= startRow)
673
- r.end.row += lineDif;
674
-
675
- if (comparePoints(r.start, r.end) > 0)
676
- this.removeRange(r);
780
+ ts.rangeList.$onChange(delta);
677
781
  }
678
- if (!ranges.length)
782
+ var session = this.editor.session;
783
+ if (!this.$inChange && isRemove && session.getLength() == 1 && !session.getValue())
679
784
  this.detach();
680
785
  };
681
786
  this.updateLinkedFields = function() {
682
787
  var ts = this.selectedTabstop;
683
- if (!ts || !ts.hasLinkedRanges)
788
+ if (!ts || !ts.hasLinkedRanges || !ts.firstNonLinked)
684
789
  return;
685
790
  this.$inChange = true;
686
791
  var session = this.editor.session;
687
792
  var text = session.getTextRange(ts.firstNonLinked);
688
- for (var i = ts.length; i--;) {
793
+ for (var i = 0; i < ts.length; i++) {
689
794
  var range = ts[i];
690
795
  if (!range.linked)
691
796
  continue;
692
- var fmt = exports.snippetManager.tmStrFormat(text, range.original);
797
+ var original = range.original;
798
+ var fmt = exports.snippetManager.tmStrFormat(text, original, this.editor);
693
799
  session.replace(range, fmt);
694
800
  }
695
801
  this.$inChange = false;
@@ -704,7 +810,7 @@ var TabstopManager = function(editor) {
704
810
  var lead = this.editor.selection.lead;
705
811
  var anchor = this.editor.selection.anchor;
706
812
  var isEmpty = this.editor.selection.isEmpty();
707
- for (var i = this.ranges.length; i--;) {
813
+ for (var i = 0; i < this.ranges.length; i++) {
708
814
  if (this.ranges[i].linked)
709
815
  continue;
710
816
  var containsLead = this.ranges[i].contains(lead.row, lead.column);
@@ -738,23 +844,27 @@ var TabstopManager = function(editor) {
738
844
  return;
739
845
 
740
846
  this.selectedTabstop = ts;
741
- if (!this.editor.inVirtualSelectionMode) {
847
+ var range = ts.firstNonLinked || ts;
848
+ if (ts.choices) range.cursor = range.start;
849
+ if (!this.editor.inVirtualSelectionMode) {
742
850
  var sel = this.editor.multiSelect;
743
- sel.toSingleRange(ts.firstNonLinked.clone());
744
- for (var i = ts.length; i--;) {
851
+ sel.toSingleRange(range);
852
+ for (var i = 0; i < ts.length; i++) {
745
853
  if (ts.hasLinkedRanges && ts[i].linked)
746
854
  continue;
747
855
  sel.addRange(ts[i].clone(), true);
748
856
  }
749
- if (sel.ranges[0])
750
- sel.addRange(sel.ranges[0].clone());
751
857
  } else {
752
- this.editor.selection.setRange(ts.firstNonLinked);
858
+ this.editor.selection.fromOrientedRange(range);
753
859
  }
754
860
 
755
861
  this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);
862
+ if (this.selectedTabstop && this.selectedTabstop.choices)
863
+ this.editor.execCommand("startAutocomplete", {matches: this.selectedTabstop.choices});
756
864
  };
757
865
  this.addTabstops = function(tabstops, start, end) {
866
+ var useLink = this.useLink || !this.editor.getOption("enableMultiselect");
867
+
758
868
  if (!this.$openTabstops)
759
869
  this.$openTabstops = [];
760
870
  if (!tabstops[0]) {
@@ -770,8 +880,8 @@ var TabstopManager = function(editor) {
770
880
  var ranges = this.ranges;
771
881
  tabstops.forEach(function(ts, index) {
772
882
  var dest = this.$openTabstops[index] || ts;
773
-
774
- for (var i = ts.length; i--;) {
883
+
884
+ for (var i = 0; i < ts.length; i++) {
775
885
  var p = ts[i];
776
886
  var range = Range.fromPoints(p.start, p.end || p.start);
777
887
  movePoint(range.start, start);
@@ -783,7 +893,7 @@ var TabstopManager = function(editor) {
783
893
  dest.unshift(range);
784
894
  else
785
895
  dest[i] = range;
786
- if (p.fmtString) {
896
+ if (p.fmtString || (dest.firstNonLinked && useLink)) {
787
897
  range.linked = true;
788
898
  dest.hasLinkedRanges = true;
789
899
  } else if (!dest.firstNonLinked)
@@ -796,6 +906,9 @@ var TabstopManager = function(editor) {
796
906
  this.$openTabstops[index] = dest;
797
907
  }
798
908
  this.addTabstopMarkers(dest);
909
+ dest.rangeList = dest.rangeList || new RangeList();
910
+ dest.rangeList.$bias = 0;
911
+ dest.rangeList.addList(dest);
799
912
  }, this);
800
913
 
801
914
  if (arg.length > 2) {
@@ -821,9 +934,11 @@ var TabstopManager = function(editor) {
821
934
  };
822
935
  this.removeRange = function(range) {
823
936
  var i = range.tabstop.indexOf(range);
824
- range.tabstop.splice(i, 1);
937
+ if (i != -1) range.tabstop.splice(i, 1);
825
938
  i = this.ranges.indexOf(range);
826
- this.ranges.splice(i, 1);
939
+ if (i != -1) this.ranges.splice(i, 1);
940
+ i = range.tabstop.rangeList.ranges.indexOf(range);
941
+ if (i != -1) range.tabstop.splice(i, 1);
827
942
  this.editor.session.removeMarker(range.markerId);
828
943
  if (!range.tabstop.length) {
829
944
  i = this.tabstops.indexOf(range.tabstop);
@@ -836,39 +951,24 @@ var TabstopManager = function(editor) {
836
951
 
837
952
  this.keyboardHandler = new HashHandler();
838
953
  this.keyboardHandler.bindKeys({
839
- "Tab": function(ed) {
840
- if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) {
954
+ "Tab": function(editor) {
955
+ if (exports.snippetManager && exports.snippetManager.expandWithTab(editor))
841
956
  return;
842
- }
843
-
844
- ed.tabstopManager.tabNext(1);
845
- },
846
- "Shift-Tab": function(ed) {
847
- ed.tabstopManager.tabNext(-1);
957
+ editor.tabstopManager.tabNext(1);
958
+ editor.renderer.scrollCursorIntoView();
848
959
  },
849
- "Esc": function(ed) {
850
- ed.tabstopManager.detach();
960
+ "Shift-Tab": function(editor) {
961
+ editor.tabstopManager.tabNext(-1);
962
+ editor.renderer.scrollCursorIntoView();
851
963
  },
852
- "Return": function(ed) {
853
- return false;
964
+ "Esc": function(editor) {
965
+ editor.tabstopManager.detach();
854
966
  }
855
967
  });
856
968
  }).call(TabstopManager.prototype);
857
969
 
858
970
 
859
971
 
860
- var changeTracker = {};
861
- changeTracker.onChange = Anchor.prototype.onChange;
862
- changeTracker.setPosition = function(row, column) {
863
- this.pos.row = row;
864
- this.pos.column = column;
865
- };
866
- changeTracker.update = function(pos, delta, $insertRight) {
867
- this.$insertRight = $insertRight;
868
- this.pos = pos;
869
- this.onChange(delta);
870
- };
871
-
872
972
  var movePoint = function(point, diff) {
873
973
  if (point.row == 0)
874
974
  point.column += diff.column;
@@ -882,14 +982,14 @@ var moveRelative = function(point, start) {
882
982
  };
883
983
 
884
984
 
885
- require("./lib/dom").importCssString("\
985
+ dom.importCssString("\
886
986
  .ace_snippet-marker {\
887
987
  -moz-box-sizing: border-box;\
888
988
  box-sizing: border-box;\
889
989
  background: rgba(194, 193, 208, 0.09);\
890
990
  border: 1px dotted rgba(211, 208, 235, 0.62);\
891
991
  position: absolute;\
892
- }");
992
+ }", "snippets.css", false);
893
993
 
894
994
  exports.snippetManager = new SnippetManager();
895
995
 
@@ -906,7 +1006,7 @@ var Editor = require("./editor").Editor;
906
1006
 
907
1007
  });
908
1008
 
909
- ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"], function(require, exports, module) {
1009
+ ace.define("ace/autocomplete/popup",[], function(require, exports, module) {
910
1010
  "use strict";
911
1011
 
912
1012
  var Renderer = require("../virtual_renderer").VirtualRenderer;
@@ -1173,7 +1273,7 @@ var AcePopup = function(parentNode) {
1173
1273
  var max = this.session.getLength() - 1;
1174
1274
 
1175
1275
  switch(where) {
1176
- case "up": row = row < 0 ? max : row - 1; break;
1276
+ case "up": row = row <= 0 ? max : row - 1; break;
1177
1277
  case "down": row = row >= max ? -1 : row + 1; break;
1178
1278
  case "start": row = 0; break;
1179
1279
  case "end": row = max; break;
@@ -1241,13 +1341,13 @@ dom.importCssString("\
1241
1341
  line-height: 1.4;\
1242
1342
  background: #25282c;\
1243
1343
  color: #c1c1c1;\
1244
- }", "autocompletion.css");
1344
+ }", "autocompletion.css", false);
1245
1345
 
1246
1346
  exports.AcePopup = AcePopup;
1247
1347
  exports.$singleLineEditor = $singleLineEditor;
1248
1348
  });
1249
1349
 
1250
- ace.define("ace/autocomplete/util",["require","exports","module"], function(require, exports, module) {
1350
+ ace.define("ace/autocomplete/util",[], function(require, exports, module) {
1251
1351
  "use strict";
1252
1352
 
1253
1353
  exports.parForEach = function(array, fn, callback) {
@@ -1264,7 +1364,7 @@ exports.parForEach = function(array, fn, callback) {
1264
1364
  }
1265
1365
  };
1266
1366
 
1267
- var ID_REGEX = /[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/;
1367
+ var ID_REGEX = /[a-zA-Z_0-9\$\-\u00A2-\u2000\u2070-\uFFFF]/;
1268
1368
 
1269
1369
  exports.retrievePrecedingIdentifier = function(text, pos, regex) {
1270
1370
  regex = regex || ID_REGEX;
@@ -1307,16 +1407,16 @@ exports.getCompletionPrefix = function (editor) {
1307
1407
 
1308
1408
  });
1309
1409
 
1310
- ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"], function(require, exports, module) {
1410
+ ace.define("ace/autocomplete",[], function(require, exports, module) {
1311
1411
  "use strict";
1312
1412
 
1313
1413
  var HashHandler = require("./keyboard/hash_handler").HashHandler;
1314
1414
  var AcePopup = require("./autocomplete/popup").AcePopup;
1315
1415
  var util = require("./autocomplete/util");
1316
- var event = require("./lib/event");
1317
1416
  var lang = require("./lib/lang");
1318
1417
  var dom = require("./lib/dom");
1319
1418
  var snippetManager = require("./snippets").snippetManager;
1419
+ var config = require("./config");
1320
1420
 
1321
1421
  var Autocomplete = function() {
1322
1422
  this.autoInsert = false;
@@ -1387,6 +1487,7 @@ var Autocomplete = function() {
1387
1487
  } else if (keepPopupPosition && !prefix) {
1388
1488
  this.detach();
1389
1489
  }
1490
+ this.changeTimer.cancel();
1390
1491
  };
1391
1492
 
1392
1493
  this.detach = function() {
@@ -1449,13 +1550,15 @@ var Autocomplete = function() {
1449
1550
  if (!data)
1450
1551
  return false;
1451
1552
 
1553
+ var completions = this.completions;
1554
+ this.editor.startOperation({command: {name: "insertMatch"}});
1452
1555
  if (data.completer && data.completer.insertMatch) {
1453
1556
  data.completer.insertMatch(this.editor, data);
1454
1557
  } else {
1455
- if (this.completions.filterText) {
1558
+ if (completions.filterText) {
1456
1559
  var ranges = this.editor.selection.getAllRanges();
1457
1560
  for (var i = 0, range; range = ranges[i]; i++) {
1458
- range.start.column -= this.completions.filterText.length;
1561
+ range.start.column -= completions.filterText.length;
1459
1562
  this.editor.session.remove(range);
1460
1563
  }
1461
1564
  }
@@ -1464,7 +1567,9 @@ var Autocomplete = function() {
1464
1567
  else
1465
1568
  this.editor.execCommand("insertstring", data.value || data);
1466
1569
  }
1467
- this.detach();
1570
+ if (this.completions == completions)
1571
+ this.detach();
1572
+ this.editor.endOperation();
1468
1573
  };
1469
1574
 
1470
1575
 
@@ -1514,7 +1619,7 @@ var Autocomplete = function() {
1514
1619
  return true;
1515
1620
  };
1516
1621
 
1517
- this.showPopup = function(editor) {
1622
+ this.showPopup = function(editor, options) {
1518
1623
  if (this.editor)
1519
1624
  this.detach();
1520
1625
 
@@ -1532,10 +1637,10 @@ var Autocomplete = function() {
1532
1637
  editor.on("mousedown", this.mousedownListener);
1533
1638
  editor.on("mousewheel", this.mousewheelListener);
1534
1639
 
1535
- this.updateCompletions();
1640
+ this.updateCompletions(false, options);
1536
1641
  };
1537
1642
 
1538
- this.updateCompletions = function(keepPopupPosition) {
1643
+ this.updateCompletions = function(keepPopupPosition, options) {
1539
1644
  if (keepPopupPosition && this.base && this.completions) {
1540
1645
  var pos = this.editor.getCursorPosition();
1541
1646
  var prefix = this.editor.session.getTextRange({start: this.base, end: pos});
@@ -1551,20 +1656,23 @@ var Autocomplete = function() {
1551
1656
  this.openPopup(this.editor, prefix, keepPopupPosition);
1552
1657
  return;
1553
1658
  }
1659
+
1660
+ if (options && options.matches) {
1661
+ var pos = this.editor.getSelectionRange().start;
1662
+ this.base = this.editor.session.doc.createAnchor(pos.row, pos.column);
1663
+ this.base.$insertRight = true;
1664
+ this.completions = new FilteredList(options.matches);
1665
+ return this.openPopup(this.editor, "", keepPopupPosition);
1666
+ }
1554
1667
  var _id = this.gatherCompletionsId;
1555
- this.gatherCompletions(this.editor, function(err, results) {
1556
- var detachIfFinished = function() {
1557
- if (!results.finished) return;
1558
- return this.detach();
1559
- }.bind(this);
1668
+ var detachIfFinished = function(results) {
1669
+ if (!results.finished) return;
1670
+ return this.detach();
1671
+ }.bind(this);
1560
1672
 
1673
+ var processResults = function(results) {
1561
1674
  var prefix = results.prefix;
1562
- var matches = results && results.matches;
1563
-
1564
- if (!matches || !matches.length)
1565
- return detachIfFinished();
1566
- if (prefix.indexOf(results.prefix) !== 0 || _id != this.gatherCompletionsId)
1567
- return;
1675
+ var matches = results.matches;
1568
1676
 
1569
1677
  this.completions = new FilteredList(matches);
1570
1678
 
@@ -1574,14 +1682,39 @@ var Autocomplete = function() {
1574
1682
  this.completions.setFilter(prefix);
1575
1683
  var filtered = this.completions.filtered;
1576
1684
  if (!filtered.length)
1577
- return detachIfFinished();
1685
+ return detachIfFinished(results);
1578
1686
  if (filtered.length == 1 && filtered[0].value == prefix && !filtered[0].snippet)
1579
- return detachIfFinished();
1687
+ return detachIfFinished(results);
1580
1688
  if (this.autoInsert && filtered.length == 1 && results.finished)
1581
1689
  return this.insertMatch(filtered[0]);
1582
1690
 
1583
1691
  this.openPopup(this.editor, prefix, keepPopupPosition);
1692
+ }.bind(this);
1693
+
1694
+ var isImmediate = true;
1695
+ var immediateResults = null;
1696
+ this.gatherCompletions(this.editor, function(err, results) {
1697
+ var prefix = results.prefix;
1698
+ var matches = results && results.matches;
1699
+
1700
+ if (!matches || !matches.length)
1701
+ return detachIfFinished(results);
1702
+ if (prefix.indexOf(results.prefix) !== 0 || _id != this.gatherCompletionsId)
1703
+ return;
1704
+ if (isImmediate) {
1705
+ immediateResults = results;
1706
+ return;
1707
+ }
1708
+
1709
+ processResults(results);
1584
1710
  }.bind(this));
1711
+
1712
+ isImmediate = false;
1713
+ if (immediateResults) {
1714
+ var results = immediateResults;
1715
+ immediateResults = null;
1716
+ processResults(results);
1717
+ }
1585
1718
  };
1586
1719
 
1587
1720
  this.cancelContextMenu = function() {
@@ -1600,7 +1733,7 @@ var Autocomplete = function() {
1600
1733
  doc = completer.getDocTooltip(selected);
1601
1734
  return doc;
1602
1735
  });
1603
- if (!doc)
1736
+ if (!doc && typeof selected != "string")
1604
1737
  doc = selected;
1605
1738
 
1606
1739
  if (typeof doc == "string")
@@ -1682,17 +1815,47 @@ var Autocomplete = function() {
1682
1815
  }
1683
1816
  };
1684
1817
 
1818
+ this.destroy = function() {
1819
+ this.detach();
1820
+ if (this.popup) {
1821
+ this.popup.destroy();
1822
+ var el = this.popup.container;
1823
+ if (el && el.parentNode)
1824
+ el.parentNode.removeChild(el);
1825
+ }
1826
+ if (this.editor && this.editor.completer == this)
1827
+ this.editor.completer == null;
1828
+ this.popup = null;
1829
+ };
1830
+
1685
1831
  }).call(Autocomplete.prototype);
1686
1832
 
1833
+
1834
+ Autocomplete.for = function(editor) {
1835
+ if (editor.completer) {
1836
+ return editor.completer;
1837
+ }
1838
+ if (config.get("sharedPopups")) {
1839
+ if (!Autocomplete.$shared)
1840
+ Autocomplete.$sharedInstance = new Autocomplete();
1841
+ editor.completer = Autocomplete.$sharedInstance;
1842
+ } else {
1843
+ editor.completer = new Autocomplete();
1844
+ editor.once("destroy", function(e, editor) {
1845
+ editor.completer.destroy();
1846
+ });
1847
+ }
1848
+ return editor.completer;
1849
+ };
1850
+
1687
1851
  Autocomplete.startCommand = {
1688
1852
  name: "startAutocomplete",
1689
- exec: function(editor) {
1690
- if (!editor.completer)
1691
- editor.completer = new Autocomplete();
1692
- editor.completer.autoInsert = false;
1693
- editor.completer.autoSelect = true;
1694
- editor.completer.showPopup(editor);
1695
- editor.completer.cancelContextMenu();
1853
+ exec: function(editor, options) {
1854
+ var completer = Autocomplete.for(editor);
1855
+ completer.autoInsert = false;
1856
+ completer.autoSelect = true;
1857
+ completer.showPopup(editor, options);
1858
+ completer.cancelContextMenu();
1696
1859
  },
1697
1860
  bindKey: "Ctrl-Space|Ctrl-Shift-Space|Alt-Space"
1698
1861
  };
@@ -1714,7 +1877,7 @@ var FilteredList = function(array, filterText) {
1714
1877
  matches = this.filterCompletions(matches, this.filterText);
1715
1878
  matches = matches.sort(function(a, b) {
1716
1879
  return b.exactMatch - a.exactMatch || b.$score - a.$score
1717
- || (a.caption || a.value) < (b.caption || b.value);
1880
+ || (a.caption || a.value).localeCompare(b.caption || b.value);
1718
1881
  });
1719
1882
  var prev = null;
1720
1883
  matches = matches.filter(function(item){
@@ -1777,7 +1940,7 @@ exports.FilteredList = FilteredList;
1777
1940
 
1778
1941
  });
1779
1942
 
1780
- ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"], function(require, exports, module) {
1943
+ ace.define("ace/autocomplete/text_completer",[], function(require, exports, module) {
1781
1944
  var Range = require("../range").Range;
1782
1945
 
1783
1946
  var splitRegex = /[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;
@@ -1821,7 +1984,7 @@ ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/
1821
1984
  };
1822
1985
  });
1823
1986
 
1824
- ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"], function(require, exports, module) {
1987
+ ace.define("ace/ext/language_tools",[], function(require, exports, module) {
1825
1988
  "use strict";
1826
1989
 
1827
1990
  var snippetManager = require("../snippets").snippetManager;
@@ -1905,31 +2068,33 @@ var onChangeMode = function(e, editor) {
1905
2068
  };
1906
2069
 
1907
2070
  var loadSnippetsForMode = function(mode) {
1908
- var id = mode.$id;
2071
+ if (typeof mode == "string")
2072
+ mode = config.$modes[mode];
2073
+ if (!mode)
2074
+ return;
1909
2075
  if (!snippetManager.files)
1910
2076
  snippetManager.files = {};
1911
- loadSnippetFile(id);
2077
+
2078
+ loadSnippetFile(mode.$id, mode.snippetFileId);
1912
2079
  if (mode.modes)
1913
2080
  mode.modes.forEach(loadSnippetsForMode);
1914
2081
  };
1915
2082
 
1916
- var loadSnippetFile = function(id) {
1917
- if (!id || snippetManager.files[id])
2083
+ var loadSnippetFile = function(id, snippetFilePath) {
2084
+ if (!snippetFilePath || !id || snippetManager.files[id])
1918
2085
  return;
1919
- var snippetFilePath = id.replace("mode", "snippets");
1920
2086
  snippetManager.files[id] = {};
1921
2087
  config.loadModule(snippetFilePath, function(m) {
1922
- if (m) {
1923
- snippetManager.files[id] = m;
1924
- if (!m.snippets && m.snippetText)
1925
- m.snippets = snippetManager.parseSnippetFile(m.snippetText);
1926
- snippetManager.register(m.snippets || [], m.scope);
1927
- if (m.includeScopes) {
1928
- snippetManager.snippetMap[m.scope].includeScopes = m.includeScopes;
1929
- m.includeScopes.forEach(function(x) {
1930
- loadSnippetFile("ace/mode/" + x);
1931
- });
1932
- }
2088
+ if (!m) return;
2089
+ snippetManager.files[id] = m;
2090
+ if (!m.snippets && m.snippetText)
2091
+ m.snippets = snippetManager.parseSnippetFile(m.snippetText);
2092
+ snippetManager.register(m.snippets || [], m.scope);
2093
+ if (m.includeScopes) {
2094
+ snippetManager.snippetMap[m.scope].includeScopes = m.includeScopes;
2095
+ m.includeScopes.forEach(function(x) {
2096
+ loadSnippetsForMode("ace/mode/" + x);
2097
+ });
1933
2098
  }
1934
2099
  });
1935
2100
  };
@@ -1944,11 +2109,9 @@ var doLiveAutocomplete = function(e) {
1944
2109
  else if (e.command.name === "insertstring") {
1945
2110
  var prefix = util.getCompletionPrefix(editor);
1946
2111
  if (prefix && !hasCompleter) {
1947
- if (!editor.completer) {
1948
- editor.completer = new Autocomplete();
1949
- }
1950
- editor.completer.autoInsert = false;
1951
- editor.completer.showPopup(editor);
2112
+ var completer = Autocomplete.for(editor);
2113
+ completer.autoInsert = false;
2114
+ completer.showPopup(editor);
1952
2115
  }
1953
2116
  }
1954
2117
  };