@openui5/sap.ui.codeeditor 1.132.1 → 1.134.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 (452) hide show
  1. package/.reuse/dep5 +2 -9
  2. package/LICENSES/LicenseRef-Unicode-3.0.txt +39 -0
  3. package/THIRDPARTY.txt +45 -78
  4. package/package.json +2 -2
  5. package/src/sap/ui/codeeditor/.library +2 -2
  6. package/src/sap/ui/codeeditor/CodeEditor.js +4 -4
  7. package/src/sap/ui/codeeditor/js/ace/ace.js +6564 -6162
  8. package/src/sap/ui/codeeditor/js/ace/css/ace.css +55 -23
  9. package/src/sap/ui/codeeditor/js/ace/css/github_light_default-1.png +0 -0
  10. package/src/sap/ui/codeeditor/js/ace/css/github_light_default-2.png +0 -0
  11. package/src/sap/ui/codeeditor/js/ace/css/main-10.svg +4 -0
  12. package/src/sap/ui/codeeditor/js/ace/css/main-11.svg +5 -0
  13. package/src/sap/ui/codeeditor/js/ace/css/main-12.svg +4 -0
  14. package/src/sap/ui/codeeditor/js/ace/css/main-13.png +0 -0
  15. package/src/sap/ui/codeeditor/js/ace/css/main-14.png +0 -0
  16. package/src/sap/ui/codeeditor/js/ace/css/main-15.png +0 -0
  17. package/src/sap/ui/codeeditor/js/ace/css/main-16.png +0 -0
  18. package/src/sap/ui/codeeditor/js/ace/css/main-17.png +0 -0
  19. package/src/sap/ui/codeeditor/js/ace/css/main-18.png +0 -0
  20. package/src/sap/ui/codeeditor/js/ace/css/main-19.png +0 -0
  21. package/src/sap/ui/codeeditor/js/ace/css/main-20.png +0 -0
  22. package/src/sap/ui/codeeditor/js/ace/css/main-21.png +0 -0
  23. package/src/sap/ui/codeeditor/js/ace/css/main-22.png +0 -0
  24. package/src/sap/ui/codeeditor/js/ace/css/main-23.png +0 -0
  25. package/src/sap/ui/codeeditor/js/ace/css/main-24.png +0 -0
  26. package/src/sap/ui/codeeditor/js/ace/css/main-25.svg +1 -0
  27. package/src/sap/ui/codeeditor/js/ace/css/main-26.png +0 -0
  28. package/src/sap/ui/codeeditor/js/ace/css/main-6.svg +8 -6
  29. package/src/sap/ui/codeeditor/js/ace/css/main-7.svg +4 -6
  30. package/src/sap/ui/codeeditor/js/ace/css/main-8.svg +8 -3
  31. package/src/sap/ui/codeeditor/js/ace/css/main-9.svg +5 -3
  32. package/src/sap/ui/codeeditor/js/ace/css/theme/cloud_editor.css +221 -0
  33. package/src/sap/ui/codeeditor/js/ace/css/theme/cloud_editor_dark.css +224 -0
  34. package/src/sap/ui/codeeditor/js/ace/css/theme/github_light_default.css +164 -0
  35. package/src/sap/ui/codeeditor/js/ace/css/theme/solarized_dark.css +2 -2
  36. package/src/sap/ui/codeeditor/js/ace/ext-beautify.js +0 -0
  37. package/src/sap/ui/codeeditor/js/ace/ext-code_lens.js +1 -6
  38. package/src/sap/ui/codeeditor/js/ace/ext-command_bar.js +4 -2
  39. package/src/sap/ui/codeeditor/js/ace/ext-elastic_tabstops_lite.js +0 -0
  40. package/src/sap/ui/codeeditor/js/ace/ext-emmet.js +24 -6
  41. package/src/sap/ui/codeeditor/js/ace/ext-error_marker.js +0 -0
  42. package/src/sap/ui/codeeditor/js/ace/ext-inline_autocomplete.js +198 -87
  43. package/src/sap/ui/codeeditor/js/ace/ext-keybinding_menu.js +8 -5
  44. package/src/sap/ui/codeeditor/js/ace/ext-language_tools.js +180 -79
  45. package/src/sap/ui/codeeditor/js/ace/ext-linking.js +0 -0
  46. package/src/sap/ui/codeeditor/js/ace/ext-modelist.js +7 -3
  47. package/src/sap/ui/codeeditor/js/ace/ext-options.js +12 -5
  48. package/src/sap/ui/codeeditor/js/ace/ext-prompt.js +202 -116
  49. package/src/sap/ui/codeeditor/js/ace/ext-rtl.js +0 -0
  50. package/src/sap/ui/codeeditor/js/ace/ext-searchbox.js +14 -12
  51. package/src/sap/ui/codeeditor/js/ace/ext-settings_menu.js +12 -5
  52. package/src/sap/ui/codeeditor/js/ace/ext-spellcheck.js +0 -0
  53. package/src/sap/ui/codeeditor/js/ace/ext-split.js +2 -1
  54. package/src/sap/ui/codeeditor/js/ace/ext-static_highlight.js +0 -0
  55. package/src/sap/ui/codeeditor/js/ace/ext-statusbar.js +0 -0
  56. package/src/sap/ui/codeeditor/js/ace/ext-textarea.js +476 -3
  57. package/src/sap/ui/codeeditor/js/ace/ext-themelist.js +6 -2
  58. package/src/sap/ui/codeeditor/js/ace/ext-whitespace.js +0 -0
  59. package/src/sap/ui/codeeditor/js/ace/keybinding-emacs.js +13 -6
  60. package/src/sap/ui/codeeditor/js/ace/keybinding-vim.js +748 -373
  61. package/src/sap/ui/codeeditor/js/ace/mode-abap.js +0 -0
  62. package/src/sap/ui/codeeditor/js/ace/mode-abc.js +0 -0
  63. package/src/sap/ui/codeeditor/js/ace/mode-actionscript.js +0 -0
  64. package/src/sap/ui/codeeditor/js/ace/mode-ada.js +3 -3
  65. package/src/sap/ui/codeeditor/js/ace/mode-apache_conf.js +0 -0
  66. package/src/sap/ui/codeeditor/js/ace/mode-apex.js +6 -6
  67. package/src/sap/ui/codeeditor/js/ace/mode-applescript.js +3 -3
  68. package/src/sap/ui/codeeditor/js/ace/mode-aql.js +3 -3
  69. package/src/sap/ui/codeeditor/js/ace/mode-asciidoc.js +0 -0
  70. package/src/sap/ui/codeeditor/js/ace/mode-asl.js +14 -14
  71. package/src/sap/ui/codeeditor/js/ace/mode-assembly_arm32.js +185 -0
  72. package/src/sap/ui/codeeditor/js/ace/mode-assembly_x86.js +0 -0
  73. package/src/sap/ui/codeeditor/js/ace/mode-astro.js +377 -317
  74. package/src/sap/ui/codeeditor/js/ace/mode-autohotkey.js +0 -0
  75. package/src/sap/ui/codeeditor/js/ace/mode-basic.js +201 -0
  76. package/src/sap/ui/codeeditor/js/ace/mode-batchfile.js +0 -0
  77. package/src/sap/ui/codeeditor/js/ace/mode-c9search.js +1 -1
  78. package/src/sap/ui/codeeditor/js/ace/mode-c_cpp.js +13 -13
  79. package/src/sap/ui/codeeditor/js/ace/mode-cirru.js +0 -0
  80. package/src/sap/ui/codeeditor/js/ace/mode-clojure.js +13 -13
  81. package/src/sap/ui/codeeditor/js/ace/mode-cobol.js +3 -3
  82. package/src/sap/ui/codeeditor/js/ace/mode-coffee.js +0 -0
  83. package/src/sap/ui/codeeditor/js/ace/mode-coldfusion.js +377 -317
  84. package/src/sap/ui/codeeditor/js/ace/mode-crystal.js +6 -6
  85. package/src/sap/ui/codeeditor/js/ace/mode-csharp.js +9 -9
  86. package/src/sap/ui/codeeditor/js/ace/mode-csound_document.js +75 -78
  87. package/src/sap/ui/codeeditor/js/ace/mode-csound_orchestra.js +22 -22
  88. package/src/sap/ui/codeeditor/js/ace/mode-csound_score.js +0 -0
  89. package/src/sap/ui/codeeditor/js/ace/mode-csp.js +0 -0
  90. package/src/sap/ui/codeeditor/js/ace/mode-css.js +6 -3
  91. package/src/sap/ui/codeeditor/js/ace/mode-curly.js +377 -317
  92. package/src/sap/ui/codeeditor/js/ace/mode-d.js +12 -12
  93. package/src/sap/ui/codeeditor/js/ace/mode-dart.js +17 -17
  94. package/src/sap/ui/codeeditor/js/ace/mode-diff.js +0 -0
  95. package/src/sap/ui/codeeditor/js/ace/mode-django.js +377 -317
  96. package/src/sap/ui/codeeditor/js/ace/mode-dockerfile.js +3 -3
  97. package/src/sap/ui/codeeditor/js/ace/mode-dot.js +6 -6
  98. package/src/sap/ui/codeeditor/js/ace/mode-drools.js +18 -18
  99. package/src/sap/ui/codeeditor/js/ace/mode-edifact.js +4 -4
  100. package/src/sap/ui/codeeditor/js/ace/mode-eiffel.js +4 -4
  101. package/src/sap/ui/codeeditor/js/ace/mode-ejs.js +402 -342
  102. package/src/sap/ui/codeeditor/js/ace/mode-elixir.js +0 -0
  103. package/src/sap/ui/codeeditor/js/ace/mode-elm.js +0 -0
  104. package/src/sap/ui/codeeditor/js/ace/mode-erlang.js +15 -15
  105. package/src/sap/ui/codeeditor/js/ace/mode-flix.js +7 -7
  106. package/src/sap/ui/codeeditor/js/ace/mode-forth.js +0 -0
  107. package/src/sap/ui/codeeditor/js/ace/mode-fortran.js +12 -12
  108. package/src/sap/ui/codeeditor/js/ace/mode-fsharp.js +0 -0
  109. package/src/sap/ui/codeeditor/js/ace/mode-ftl.js +54 -57
  110. package/src/sap/ui/codeeditor/js/ace/mode-gcode.js +4 -4
  111. package/src/sap/ui/codeeditor/js/ace/mode-gherkin.js +3 -3
  112. package/src/sap/ui/codeeditor/js/ace/mode-gitignore.js +1 -1
  113. package/src/sap/ui/codeeditor/js/ace/mode-glsl.js +13 -13
  114. package/src/sap/ui/codeeditor/js/ace/mode-gobstones.js +371 -65
  115. package/src/sap/ui/codeeditor/js/ace/mode-golang.js +10 -10
  116. package/src/sap/ui/codeeditor/js/ace/mode-graphqlschema.js +0 -0
  117. package/src/sap/ui/codeeditor/js/ace/mode-groovy.js +381 -75
  118. package/src/sap/ui/codeeditor/js/ace/mode-haml.js +84 -87
  119. package/src/sap/ui/codeeditor/js/ace/mode-handlebars.js +379 -319
  120. package/src/sap/ui/codeeditor/js/ace/mode-haskell.js +0 -0
  121. package/src/sap/ui/codeeditor/js/ace/mode-haskell_cabal.js +1 -1
  122. package/src/sap/ui/codeeditor/js/ace/mode-haxe.js +10 -10
  123. package/src/sap/ui/codeeditor/js/ace/mode-hjson.js +0 -0
  124. package/src/sap/ui/codeeditor/js/ace/mode-html.js +377 -317
  125. package/src/sap/ui/codeeditor/js/ace/mode-html_elixir.js +472 -412
  126. package/src/sap/ui/codeeditor/js/ace/mode-html_ruby.js +484 -424
  127. package/src/sap/ui/codeeditor/js/ace/mode-ini.js +0 -0
  128. package/src/sap/ui/codeeditor/js/ace/mode-io.js +0 -0
  129. package/src/sap/ui/codeeditor/js/ace/mode-jack.js +2 -2
  130. package/src/sap/ui/codeeditor/js/ace/mode-jade.js +67 -70
  131. package/src/sap/ui/codeeditor/js/ace/mode-java.js +383 -77
  132. package/src/sap/ui/codeeditor/js/ace/mode-javascript.js +371 -65
  133. package/src/sap/ui/codeeditor/js/ace/mode-jexl.js +7 -7
  134. package/src/sap/ui/codeeditor/js/ace/mode-json.js +8 -8
  135. package/src/sap/ui/codeeditor/js/ace/mode-json5.js +8 -8
  136. package/src/sap/ui/codeeditor/js/ace/mode-jsoniq.js +4 -5
  137. package/src/sap/ui/codeeditor/js/ace/mode-jsp.js +67 -70
  138. package/src/sap/ui/codeeditor/js/ace/mode-jssm.js +0 -0
  139. package/src/sap/ui/codeeditor/js/ace/mode-jsx.js +960 -89
  140. package/src/sap/ui/codeeditor/js/ace/mode-julia.js +0 -0
  141. package/src/sap/ui/codeeditor/js/ace/mode-kotlin.js +0 -0
  142. package/src/sap/ui/codeeditor/js/ace/mode-latex.js +0 -0
  143. package/src/sap/ui/codeeditor/js/ace/mode-latte.js +381 -321
  144. package/src/sap/ui/codeeditor/js/ace/mode-less.js +12 -9
  145. package/src/sap/ui/codeeditor/js/ace/mode-liquid.js +385 -325
  146. package/src/sap/ui/codeeditor/js/ace/mode-lisp.js +2 -2
  147. package/src/sap/ui/codeeditor/js/ace/mode-livescript.js +0 -0
  148. package/src/sap/ui/codeeditor/js/ace/mode-logiql.js +0 -0
  149. package/src/sap/ui/codeeditor/js/ace/mode-logtalk.js +6 -9
  150. package/src/sap/ui/codeeditor/js/ace/mode-lsl.js +0 -0
  151. package/src/sap/ui/codeeditor/js/ace/mode-lua.js +5 -5
  152. package/src/sap/ui/codeeditor/js/ace/mode-luapage.js +382 -322
  153. package/src/sap/ui/codeeditor/js/ace/mode-lucene.js +0 -0
  154. package/src/sap/ui/codeeditor/js/ace/mode-makefile.js +3 -3
  155. package/src/sap/ui/codeeditor/js/ace/mode-markdown.js +474 -414
  156. package/src/sap/ui/codeeditor/js/ace/mode-mask.js +53 -56
  157. package/src/sap/ui/codeeditor/js/ace/mode-matlab.js +1 -1
  158. package/src/sap/ui/codeeditor/js/ace/mode-maze.js +0 -0
  159. package/src/sap/ui/codeeditor/js/ace/mode-mel.js +0 -0
  160. package/src/sap/ui/codeeditor/js/ace/mode-mips.js +1 -1
  161. package/src/sap/ui/codeeditor/js/ace/mode-mixal.js +0 -0
  162. package/src/sap/ui/codeeditor/js/ace/mode-mushcode.js +7 -7
  163. package/src/sap/ui/codeeditor/js/ace/mode-mysql.js +7 -7
  164. package/src/sap/ui/codeeditor/js/ace/mode-nix.js +16 -16
  165. package/src/sap/ui/codeeditor/js/ace/mode-nsis.js +0 -0
  166. package/src/sap/ui/codeeditor/js/ace/mode-nunjucks.js +379 -319
  167. package/src/sap/ui/codeeditor/js/ace/mode-objectivec.js +15 -15
  168. package/src/sap/ui/codeeditor/js/ace/mode-ocaml.js +7 -7
  169. package/src/sap/ui/codeeditor/js/ace/mode-odin.js +10 -10
  170. package/src/sap/ui/codeeditor/js/ace/mode-pascal.js +0 -0
  171. package/src/sap/ui/codeeditor/js/ace/mode-perl.js +6 -6
  172. package/src/sap/ui/codeeditor/js/ace/mode-pgsql.js +98 -104
  173. package/src/sap/ui/codeeditor/js/ace/mode-php.js +797 -616
  174. package/src/sap/ui/codeeditor/js/ace/mode-php_laravel_blade.js +797 -616
  175. package/src/sap/ui/codeeditor/js/ace/mode-pig.js +0 -0
  176. package/src/sap/ui/codeeditor/js/ace/mode-plain_text.js +0 -0
  177. package/src/sap/ui/codeeditor/js/ace/mode-plsql.js +3 -3
  178. package/src/sap/ui/codeeditor/js/ace/mode-powershell.js +6 -6
  179. package/src/sap/ui/codeeditor/js/ace/mode-praat.js +0 -0
  180. package/src/sap/ui/codeeditor/js/ace/mode-prolog.js +0 -0
  181. package/src/sap/ui/codeeditor/js/ace/mode-properties.js +0 -0
  182. package/src/sap/ui/codeeditor/js/ace/mode-protobuf.js +18 -18
  183. package/src/sap/ui/codeeditor/js/ace/mode-prql.js +7 -4
  184. package/src/sap/ui/codeeditor/js/ace/mode-puppet.js +0 -0
  185. package/src/sap/ui/codeeditor/js/ace/mode-python.js +17 -17
  186. package/src/sap/ui/codeeditor/js/ace/mode-qml.js +5 -5
  187. package/src/sap/ui/codeeditor/js/ace/mode-r.js +13 -13
  188. package/src/sap/ui/codeeditor/js/ace/mode-raku.js +8 -8
  189. package/src/sap/ui/codeeditor/js/ace/mode-razor.js +386 -326
  190. package/src/sap/ui/codeeditor/js/ace/mode-rdoc.js +6 -6
  191. package/src/sap/ui/codeeditor/js/ace/mode-red.js +0 -0
  192. package/src/sap/ui/codeeditor/js/ace/mode-redshift.js +32 -32
  193. package/src/sap/ui/codeeditor/js/ace/mode-rhtml.js +390 -330
  194. package/src/sap/ui/codeeditor/js/ace/mode-rst.js +0 -0
  195. package/src/sap/ui/codeeditor/js/ace/mode-ruby.js +25 -25
  196. package/src/sap/ui/codeeditor/js/ace/mode-rust.js +39 -32
  197. package/src/sap/ui/codeeditor/js/ace/mode-sac.js +13 -13
  198. package/src/sap/ui/codeeditor/js/ace/mode-sass.js +14 -11
  199. package/src/sap/ui/codeeditor/js/ace/mode-scad.js +14 -14
  200. package/src/sap/ui/codeeditor/js/ace/mode-scala.js +381 -75
  201. package/src/sap/ui/codeeditor/js/ace/mode-scheme.js +2 -2
  202. package/src/sap/ui/codeeditor/js/ace/mode-scrypt.js +10 -10
  203. package/src/sap/ui/codeeditor/js/ace/mode-scss.js +14 -11
  204. package/src/sap/ui/codeeditor/js/ace/mode-sh.js +3 -3
  205. package/src/sap/ui/codeeditor/js/ace/mode-sjs.js +371 -65
  206. package/src/sap/ui/codeeditor/js/ace/mode-slim.js +521 -461
  207. package/src/sap/ui/codeeditor/js/ace/mode-smarty.js +377 -317
  208. package/src/sap/ui/codeeditor/js/ace/mode-snippets.js +0 -0
  209. package/src/sap/ui/codeeditor/js/ace/mode-soy_template.js +377 -317
  210. package/src/sap/ui/codeeditor/js/ace/mode-space.js +0 -0
  211. package/src/sap/ui/codeeditor/js/ace/mode-sparql.js +0 -0
  212. package/src/sap/ui/codeeditor/js/ace/mode-sql.js +12 -6
  213. package/src/sap/ui/codeeditor/js/ace/mode-sqlserver.js +5 -5
  214. package/src/sap/ui/codeeditor/js/ace/mode-stylus.js +10 -7
  215. package/src/sap/ui/codeeditor/js/ace/mode-svg.js +132 -75
  216. package/src/sap/ui/codeeditor/js/ace/mode-swift.js +5 -4
  217. package/src/sap/ui/codeeditor/js/ace/mode-tcl.js +7 -7
  218. package/src/sap/ui/codeeditor/js/ace/mode-terraform.js +0 -0
  219. package/src/sap/ui/codeeditor/js/ace/mode-tex.js +6 -6
  220. package/src/sap/ui/codeeditor/js/ace/mode-text.js +0 -0
  221. package/src/sap/ui/codeeditor/js/ace/mode-textile.js +0 -0
  222. package/src/sap/ui/codeeditor/js/ace/mode-toml.js +0 -0
  223. package/src/sap/ui/codeeditor/js/ace/mode-tsx.js +492 -182
  224. package/src/sap/ui/codeeditor/js/ace/mode-turtle.js +0 -0
  225. package/src/sap/ui/codeeditor/js/ace/mode-twig.js +379 -319
  226. package/src/sap/ui/codeeditor/js/ace/mode-typescript.js +371 -65
  227. package/src/sap/ui/codeeditor/js/ace/mode-vala.js +0 -0
  228. package/src/sap/ui/codeeditor/js/ace/mode-vbscript.js +0 -0
  229. package/src/sap/ui/codeeditor/js/ace/mode-velocity.js +387 -327
  230. package/src/sap/ui/codeeditor/js/ace/mode-verilog.js +1 -1
  231. package/src/sap/ui/codeeditor/js/ace/mode-vhdl.js +4 -4
  232. package/src/sap/ui/codeeditor/js/ace/mode-visualforce.js +377 -317
  233. package/src/sap/ui/codeeditor/js/ace/mode-vue.js +3834 -0
  234. package/src/sap/ui/codeeditor/js/ace/mode-wollok.js +382 -76
  235. package/src/sap/ui/codeeditor/js/ace/mode-xml.js +18 -10
  236. package/src/sap/ui/codeeditor/js/ace/mode-xquery.js +4 -5
  237. package/src/sap/ui/codeeditor/js/ace/mode-yaml.js +5 -5
  238. package/src/sap/ui/codeeditor/js/ace/mode-zeek.js +2 -2
  239. package/src/sap/ui/codeeditor/js/ace/mode-zig.js +585 -0
  240. package/src/sap/ui/codeeditor/js/ace/snippets/abap.js +0 -0
  241. package/src/sap/ui/codeeditor/js/ace/snippets/abc.js +0 -0
  242. package/src/sap/ui/codeeditor/js/ace/snippets/actionscript.js +0 -0
  243. package/src/sap/ui/codeeditor/js/ace/snippets/ada.js +0 -0
  244. package/src/sap/ui/codeeditor/js/ace/snippets/apache_conf.js +0 -0
  245. package/src/sap/ui/codeeditor/js/ace/snippets/applescript.js +0 -0
  246. package/src/sap/ui/codeeditor/js/ace/snippets/asciidoc.js +0 -0
  247. package/src/sap/ui/codeeditor/js/ace/snippets/asl.js +0 -0
  248. package/src/sap/ui/codeeditor/js/ace/snippets/assembly_arm32.js +9 -0
  249. package/src/sap/ui/codeeditor/js/ace/snippets/assembly_x86.js +0 -0
  250. package/src/sap/ui/codeeditor/js/ace/snippets/autohotkey.js +0 -0
  251. package/src/sap/ui/codeeditor/js/ace/snippets/basic.js +9 -0
  252. package/src/sap/ui/codeeditor/js/ace/snippets/batchfile.js +0 -0
  253. package/src/sap/ui/codeeditor/js/ace/snippets/c9search.js +0 -0
  254. package/src/sap/ui/codeeditor/js/ace/snippets/c_cpp.js +0 -0
  255. package/src/sap/ui/codeeditor/js/ace/snippets/cirru.js +0 -0
  256. package/src/sap/ui/codeeditor/js/ace/snippets/clojure.js +0 -0
  257. package/src/sap/ui/codeeditor/js/ace/snippets/cobol.js +0 -0
  258. package/src/sap/ui/codeeditor/js/ace/snippets/coffee.js +0 -0
  259. package/src/sap/ui/codeeditor/js/ace/snippets/coldfusion.js +0 -0
  260. package/src/sap/ui/codeeditor/js/ace/snippets/csharp.js +0 -0
  261. package/src/sap/ui/codeeditor/js/ace/snippets/csound_document.js +0 -0
  262. package/src/sap/ui/codeeditor/js/ace/snippets/csound_orchestra.js +0 -0
  263. package/src/sap/ui/codeeditor/js/ace/snippets/csound_score.js +0 -0
  264. package/src/sap/ui/codeeditor/js/ace/snippets/csp.js +0 -0
  265. package/src/sap/ui/codeeditor/js/ace/snippets/css.js +0 -0
  266. package/src/sap/ui/codeeditor/js/ace/snippets/curly.js +0 -0
  267. package/src/sap/ui/codeeditor/js/ace/snippets/d.js +0 -0
  268. package/src/sap/ui/codeeditor/js/ace/snippets/dart.js +0 -0
  269. package/src/sap/ui/codeeditor/js/ace/snippets/diff.js +0 -0
  270. package/src/sap/ui/codeeditor/js/ace/snippets/django.js +0 -0
  271. package/src/sap/ui/codeeditor/js/ace/snippets/dockerfile.js +0 -0
  272. package/src/sap/ui/codeeditor/js/ace/snippets/dot.js +0 -0
  273. package/src/sap/ui/codeeditor/js/ace/snippets/drools.js +0 -0
  274. package/src/sap/ui/codeeditor/js/ace/snippets/edifact.js +0 -0
  275. package/src/sap/ui/codeeditor/js/ace/snippets/eiffel.js +0 -0
  276. package/src/sap/ui/codeeditor/js/ace/snippets/ejs.js +0 -0
  277. package/src/sap/ui/codeeditor/js/ace/snippets/elixir.js +0 -0
  278. package/src/sap/ui/codeeditor/js/ace/snippets/elm.js +0 -0
  279. package/src/sap/ui/codeeditor/js/ace/snippets/erlang.js +0 -0
  280. package/src/sap/ui/codeeditor/js/ace/snippets/forth.js +0 -0
  281. package/src/sap/ui/codeeditor/js/ace/snippets/fortran.js +0 -0
  282. package/src/sap/ui/codeeditor/js/ace/snippets/fsharp.js +0 -0
  283. package/src/sap/ui/codeeditor/js/ace/snippets/ftl.js +0 -0
  284. package/src/sap/ui/codeeditor/js/ace/snippets/gcode.js +0 -0
  285. package/src/sap/ui/codeeditor/js/ace/snippets/gherkin.js +0 -0
  286. package/src/sap/ui/codeeditor/js/ace/snippets/gitignore.js +0 -0
  287. package/src/sap/ui/codeeditor/js/ace/snippets/glsl.js +0 -0
  288. package/src/sap/ui/codeeditor/js/ace/snippets/gobstones.js +0 -0
  289. package/src/sap/ui/codeeditor/js/ace/snippets/golang.js +0 -0
  290. package/src/sap/ui/codeeditor/js/ace/snippets/graphqlschema.js +0 -0
  291. package/src/sap/ui/codeeditor/js/ace/snippets/groovy.js +0 -0
  292. package/src/sap/ui/codeeditor/js/ace/snippets/haml.js +0 -0
  293. package/src/sap/ui/codeeditor/js/ace/snippets/handlebars.js +0 -0
  294. package/src/sap/ui/codeeditor/js/ace/snippets/haskell.js +0 -0
  295. package/src/sap/ui/codeeditor/js/ace/snippets/haskell_cabal.js +0 -0
  296. package/src/sap/ui/codeeditor/js/ace/snippets/haxe.js +0 -0
  297. package/src/sap/ui/codeeditor/js/ace/snippets/hjson.js +0 -0
  298. package/src/sap/ui/codeeditor/js/ace/snippets/html.js +0 -0
  299. package/src/sap/ui/codeeditor/js/ace/snippets/html_elixir.js +0 -0
  300. package/src/sap/ui/codeeditor/js/ace/snippets/html_ruby.js +0 -0
  301. package/src/sap/ui/codeeditor/js/ace/snippets/ini.js +0 -0
  302. package/src/sap/ui/codeeditor/js/ace/snippets/io.js +0 -0
  303. package/src/sap/ui/codeeditor/js/ace/snippets/jack.js +0 -0
  304. package/src/sap/ui/codeeditor/js/ace/snippets/jade.js +0 -0
  305. package/src/sap/ui/codeeditor/js/ace/snippets/java.js +0 -0
  306. package/src/sap/ui/codeeditor/js/ace/snippets/javascript.js +0 -0
  307. package/src/sap/ui/codeeditor/js/ace/snippets/json.js +0 -0
  308. package/src/sap/ui/codeeditor/js/ace/snippets/jsoniq.js +0 -0
  309. package/src/sap/ui/codeeditor/js/ace/snippets/jsp.js +0 -0
  310. package/src/sap/ui/codeeditor/js/ace/snippets/jssm.js +0 -0
  311. package/src/sap/ui/codeeditor/js/ace/snippets/jsx.js +0 -0
  312. package/src/sap/ui/codeeditor/js/ace/snippets/julia.js +0 -0
  313. package/src/sap/ui/codeeditor/js/ace/snippets/kotlin.js +0 -0
  314. package/src/sap/ui/codeeditor/js/ace/snippets/latex.js +0 -0
  315. package/src/sap/ui/codeeditor/js/ace/snippets/less.js +0 -0
  316. package/src/sap/ui/codeeditor/js/ace/snippets/liquid.js +0 -0
  317. package/src/sap/ui/codeeditor/js/ace/snippets/lisp.js +0 -0
  318. package/src/sap/ui/codeeditor/js/ace/snippets/livescript.js +0 -0
  319. package/src/sap/ui/codeeditor/js/ace/snippets/logiql.js +0 -0
  320. package/src/sap/ui/codeeditor/js/ace/snippets/lsl.js +0 -0
  321. package/src/sap/ui/codeeditor/js/ace/snippets/lua.js +0 -0
  322. package/src/sap/ui/codeeditor/js/ace/snippets/luapage.js +0 -0
  323. package/src/sap/ui/codeeditor/js/ace/snippets/lucene.js +0 -0
  324. package/src/sap/ui/codeeditor/js/ace/snippets/makefile.js +0 -0
  325. package/src/sap/ui/codeeditor/js/ace/snippets/markdown.js +0 -0
  326. package/src/sap/ui/codeeditor/js/ace/snippets/mask.js +0 -0
  327. package/src/sap/ui/codeeditor/js/ace/snippets/matlab.js +0 -0
  328. package/src/sap/ui/codeeditor/js/ace/snippets/maze.js +0 -0
  329. package/src/sap/ui/codeeditor/js/ace/snippets/mel.js +0 -0
  330. package/src/sap/ui/codeeditor/js/ace/snippets/mixal.js +0 -0
  331. package/src/sap/ui/codeeditor/js/ace/snippets/mushcode.js +0 -0
  332. package/src/sap/ui/codeeditor/js/ace/snippets/mysql.js +0 -0
  333. package/src/sap/ui/codeeditor/js/ace/snippets/nix.js +0 -0
  334. package/src/sap/ui/codeeditor/js/ace/snippets/nsis.js +0 -0
  335. package/src/sap/ui/codeeditor/js/ace/snippets/objectivec.js +0 -0
  336. package/src/sap/ui/codeeditor/js/ace/snippets/ocaml.js +0 -0
  337. package/src/sap/ui/codeeditor/js/ace/snippets/pascal.js +0 -0
  338. package/src/sap/ui/codeeditor/js/ace/snippets/perl.js +0 -0
  339. package/src/sap/ui/codeeditor/js/ace/snippets/pgsql.js +0 -0
  340. package/src/sap/ui/codeeditor/js/ace/snippets/php.js +0 -0
  341. package/src/sap/ui/codeeditor/js/ace/snippets/php_laravel_blade.js +0 -0
  342. package/src/sap/ui/codeeditor/js/ace/snippets/pig.js +0 -0
  343. package/src/sap/ui/codeeditor/js/ace/snippets/plain_text.js +0 -0
  344. package/src/sap/ui/codeeditor/js/ace/snippets/powershell.js +0 -0
  345. package/src/sap/ui/codeeditor/js/ace/snippets/praat.js +0 -0
  346. package/src/sap/ui/codeeditor/js/ace/snippets/prolog.js +0 -0
  347. package/src/sap/ui/codeeditor/js/ace/snippets/properties.js +0 -0
  348. package/src/sap/ui/codeeditor/js/ace/snippets/protobuf.js +0 -0
  349. package/src/sap/ui/codeeditor/js/ace/snippets/puppet.js +0 -0
  350. package/src/sap/ui/codeeditor/js/ace/snippets/python.js +0 -0
  351. package/src/sap/ui/codeeditor/js/ace/snippets/r.js +0 -0
  352. package/src/sap/ui/codeeditor/js/ace/snippets/razor.js +0 -0
  353. package/src/sap/ui/codeeditor/js/ace/snippets/rdoc.js +0 -0
  354. package/src/sap/ui/codeeditor/js/ace/snippets/red.js +0 -0
  355. package/src/sap/ui/codeeditor/js/ace/snippets/redshift.js +0 -0
  356. package/src/sap/ui/codeeditor/js/ace/snippets/rhtml.js +0 -0
  357. package/src/sap/ui/codeeditor/js/ace/snippets/rst.js +0 -0
  358. package/src/sap/ui/codeeditor/js/ace/snippets/ruby.js +0 -0
  359. package/src/sap/ui/codeeditor/js/ace/snippets/rust.js +0 -0
  360. package/src/sap/ui/codeeditor/js/ace/snippets/sass.js +0 -0
  361. package/src/sap/ui/codeeditor/js/ace/snippets/scad.js +0 -0
  362. package/src/sap/ui/codeeditor/js/ace/snippets/scala.js +0 -0
  363. package/src/sap/ui/codeeditor/js/ace/snippets/scheme.js +0 -0
  364. package/src/sap/ui/codeeditor/js/ace/snippets/scss.js +0 -0
  365. package/src/sap/ui/codeeditor/js/ace/snippets/sh.js +0 -0
  366. package/src/sap/ui/codeeditor/js/ace/snippets/sjs.js +0 -0
  367. package/src/sap/ui/codeeditor/js/ace/snippets/slim.js +0 -0
  368. package/src/sap/ui/codeeditor/js/ace/snippets/smarty.js +0 -0
  369. package/src/sap/ui/codeeditor/js/ace/snippets/snippets.js +0 -0
  370. package/src/sap/ui/codeeditor/js/ace/snippets/soy_template.js +0 -0
  371. package/src/sap/ui/codeeditor/js/ace/snippets/space.js +0 -0
  372. package/src/sap/ui/codeeditor/js/ace/snippets/sparql.js +0 -0
  373. package/src/sap/ui/codeeditor/js/ace/snippets/sql.js +0 -0
  374. package/src/sap/ui/codeeditor/js/ace/snippets/sqlserver.js +0 -0
  375. package/src/sap/ui/codeeditor/js/ace/snippets/stylus.js +0 -0
  376. package/src/sap/ui/codeeditor/js/ace/snippets/svg.js +0 -0
  377. package/src/sap/ui/codeeditor/js/ace/snippets/swift.js +0 -0
  378. package/src/sap/ui/codeeditor/js/ace/snippets/tcl.js +0 -0
  379. package/src/sap/ui/codeeditor/js/ace/snippets/terraform.js +0 -0
  380. package/src/sap/ui/codeeditor/js/ace/snippets/tex.js +0 -0
  381. package/src/sap/ui/codeeditor/js/ace/snippets/text.js +0 -0
  382. package/src/sap/ui/codeeditor/js/ace/snippets/textile.js +0 -0
  383. package/src/sap/ui/codeeditor/js/ace/snippets/toml.js +0 -0
  384. package/src/sap/ui/codeeditor/js/ace/snippets/tsx.js +0 -0
  385. package/src/sap/ui/codeeditor/js/ace/snippets/turtle.js +0 -0
  386. package/src/sap/ui/codeeditor/js/ace/snippets/twig.js +0 -0
  387. package/src/sap/ui/codeeditor/js/ace/snippets/typescript.js +0 -0
  388. package/src/sap/ui/codeeditor/js/ace/snippets/vala.js +0 -0
  389. package/src/sap/ui/codeeditor/js/ace/snippets/vbscript.js +0 -0
  390. package/src/sap/ui/codeeditor/js/ace/snippets/velocity.js +0 -0
  391. package/src/sap/ui/codeeditor/js/ace/snippets/verilog.js +0 -0
  392. package/src/sap/ui/codeeditor/js/ace/snippets/vhdl.js +0 -0
  393. package/src/sap/ui/codeeditor/js/ace/snippets/vue.js +9 -0
  394. package/src/sap/ui/codeeditor/js/ace/snippets/wollok.js +0 -0
  395. package/src/sap/ui/codeeditor/js/ace/snippets/xml.js +0 -0
  396. package/src/sap/ui/codeeditor/js/ace/snippets/xquery.js +0 -0
  397. package/src/sap/ui/codeeditor/js/ace/snippets/yaml.js +0 -0
  398. package/src/sap/ui/codeeditor/js/ace/snippets/zig.js +9 -0
  399. package/src/sap/ui/codeeditor/js/ace/theme-ambiance.js +0 -0
  400. package/src/sap/ui/codeeditor/js/ace/theme-chaos.js +0 -0
  401. package/src/sap/ui/codeeditor/js/ace/theme-chrome.js +0 -0
  402. package/src/sap/ui/codeeditor/js/ace/theme-cloud_editor.js +18 -0
  403. package/src/sap/ui/codeeditor/js/ace/theme-cloud_editor_dark.js +18 -0
  404. package/src/sap/ui/codeeditor/js/ace/theme-clouds.js +0 -0
  405. package/src/sap/ui/codeeditor/js/ace/theme-clouds_midnight.js +0 -0
  406. package/src/sap/ui/codeeditor/js/ace/theme-cobalt.js +0 -0
  407. package/src/sap/ui/codeeditor/js/ace/theme-crimson_editor.js +0 -0
  408. package/src/sap/ui/codeeditor/js/ace/theme-dawn.js +0 -0
  409. package/src/sap/ui/codeeditor/js/ace/theme-dracula.js +0 -0
  410. package/src/sap/ui/codeeditor/js/ace/theme-dreamweaver.js +0 -0
  411. package/src/sap/ui/codeeditor/js/ace/theme-eclipse.js +0 -0
  412. package/src/sap/ui/codeeditor/js/ace/theme-github.js +0 -0
  413. package/src/sap/ui/codeeditor/js/ace/theme-github_light_default.js +18 -0
  414. package/src/sap/ui/codeeditor/js/ace/theme-gob.js +0 -0
  415. package/src/sap/ui/codeeditor/js/ace/theme-gruvbox.js +0 -0
  416. package/src/sap/ui/codeeditor/js/ace/theme-idle_fingers.js +0 -0
  417. package/src/sap/ui/codeeditor/js/ace/theme-iplastic.js +0 -0
  418. package/src/sap/ui/codeeditor/js/ace/theme-katzenmilch.js +0 -0
  419. package/src/sap/ui/codeeditor/js/ace/theme-kr_theme.js +0 -0
  420. package/src/sap/ui/codeeditor/js/ace/theme-kuroir.js +0 -0
  421. package/src/sap/ui/codeeditor/js/ace/theme-merbivore.js +0 -0
  422. package/src/sap/ui/codeeditor/js/ace/theme-merbivore_soft.js +0 -0
  423. package/src/sap/ui/codeeditor/js/ace/theme-mono_industrial.js +0 -0
  424. package/src/sap/ui/codeeditor/js/ace/theme-monokai.js +0 -0
  425. package/src/sap/ui/codeeditor/js/ace/theme-pastel_on_dark.js +0 -0
  426. package/src/sap/ui/codeeditor/js/ace/theme-solarized_dark.js +1 -1
  427. package/src/sap/ui/codeeditor/js/ace/theme-solarized_light.js +0 -0
  428. package/src/sap/ui/codeeditor/js/ace/theme-sqlserver.js +0 -0
  429. package/src/sap/ui/codeeditor/js/ace/theme-terminal.js +0 -0
  430. package/src/sap/ui/codeeditor/js/ace/theme-textmate.js +0 -0
  431. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow.js +0 -0
  432. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night.js +0 -0
  433. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_blue.js +0 -0
  434. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_bright.js +0 -0
  435. package/src/sap/ui/codeeditor/js/ace/theme-tomorrow_night_eighties.js +0 -0
  436. package/src/sap/ui/codeeditor/js/ace/theme-twilight.js +0 -0
  437. package/src/sap/ui/codeeditor/js/ace/theme-vibrant_ink.js +0 -0
  438. package/src/sap/ui/codeeditor/js/ace/theme-xcode.js +0 -0
  439. package/src/sap/ui/codeeditor/js/ace/worker-base.js +3 -13
  440. package/src/sap/ui/codeeditor/js/ace/worker-coffee.js +3 -13
  441. package/src/sap/ui/codeeditor/js/ace/worker-css.js +3 -13
  442. package/src/sap/ui/codeeditor/js/ace/worker-html.js +3 -13
  443. package/src/sap/ui/codeeditor/js/ace/worker-javascript.js +3 -13
  444. package/src/sap/ui/codeeditor/js/ace/worker-json.js +3 -13
  445. package/src/sap/ui/codeeditor/js/ace/worker-lua.js +3 -13
  446. package/src/sap/ui/codeeditor/js/ace/worker-php.js +3 -13
  447. package/src/sap/ui/codeeditor/js/ace/worker-xml.js +8 -15
  448. package/src/sap/ui/codeeditor/js/ace/worker-xquery.js +3 -13
  449. package/src/sap/ui/codeeditor/js/ace/worker-yaml.js +6 -16
  450. package/src/sap/ui/codeeditor/library.js +2 -2
  451. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +0 -5
  452. package/LICENSES/Unicode-DFS-2015.txt +0 -51
@@ -87,7 +87,7 @@ var SnippetManager = /** @class */ (function () {
87
87
  this.variables = VARIABLES;
88
88
  }
89
89
  SnippetManager.prototype.getTokenizer = function () {
90
- return SnippetManager.$tokenizer || this.createTokenizer();
90
+ return SnippetManager["$tokenizer"] || this.createTokenizer();
91
91
  };
92
92
  SnippetManager.prototype.createTokenizer = function () {
93
93
  function TabstopToken(str) {
@@ -110,7 +110,7 @@ var SnippetManager = /** @class */ (function () {
110
110
  },
111
111
  next: "formatString"
112
112
  };
113
- SnippetManager.$tokenizer = new Tokenizer({
113
+ SnippetManager["$tokenizer"] = new Tokenizer({
114
114
  start: [
115
115
  { regex: /\\./, onMatch: function (val, state, stack) {
116
116
  var ch = val[1];
@@ -207,7 +207,7 @@ var SnippetManager = /** @class */ (function () {
207
207
  { regex: "([^:}\\\\]|\\\\.)*:?", token: "", next: "formatString" }
208
208
  ]
209
209
  });
210
- return SnippetManager.$tokenizer;
210
+ return SnippetManager["$tokenizer"];
211
211
  };
212
212
  SnippetManager.prototype.tokenizeTmSnippet = function (str, startState) {
213
213
  return this.getTokenizer().getLineTokens(str, startState).tokens.map(function (x) {
@@ -529,7 +529,7 @@ var SnippetManager = /** @class */ (function () {
529
529
  };
530
530
  SnippetManager.prototype.parseSnippetFile = function (str) {
531
531
  str = str.replace(/\r/g, "");
532
- var list = [], snippet = {};
532
+ var list = [], /**@type{Snippet}*/ snippet = {};
533
533
  var re = /^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm;
534
534
  var m;
535
535
  while (m = re.exec(str)) {
@@ -806,8 +806,10 @@ var TabstopManager = /** @class */ (function () {
806
806
  if (index == max)
807
807
  index = 0;
808
808
  this.selectTabstop(index);
809
- if (index === 0)
809
+ this.updateTabstopMarkers();
810
+ if (index === 0) {
810
811
  this.detach();
812
+ }
811
813
  };
812
814
  TabstopManager.prototype.selectTabstop = function (index) {
813
815
  this.$openTabstops = null;
@@ -852,8 +854,10 @@ var TabstopManager = /** @class */ (function () {
852
854
  var i = this.index;
853
855
  var arg = [i + 1, 0];
854
856
  var ranges = this.ranges;
857
+ var snippetId = this.snippetId = (this.snippetId || 0) + 1;
855
858
  tabstops.forEach(function (ts, index) {
856
859
  var dest = this.$openTabstops[index] || ts;
860
+ dest.snippetId = snippetId;
857
861
  for (var i = 0; i < ts.length; i++) {
858
862
  var p = ts[i];
859
863
  var range = Range.fromPoints(p.start, p.end || p.start);
@@ -904,6 +908,20 @@ var TabstopManager = /** @class */ (function () {
904
908
  range.markerId = null;
905
909
  });
906
910
  };
911
+ TabstopManager.prototype.updateTabstopMarkers = function () {
912
+ if (!this.selectedTabstop)
913
+ return;
914
+ var currentSnippetId = this.selectedTabstop.snippetId;
915
+ if (this.selectedTabstop.index === 0) {
916
+ currentSnippetId--;
917
+ }
918
+ this.tabstops.forEach(function (ts) {
919
+ if (ts.snippetId === currentSnippetId)
920
+ this.addTabstopMarkers(ts);
921
+ else
922
+ this.removeTabstopMarkers(ts);
923
+ }, this);
924
+ };
907
925
  TabstopManager.prototype.removeRange = function (range) {
908
926
  var i = range.tabstop.indexOf(range);
909
927
  if (i != -1)
@@ -974,8 +992,8 @@ var AceInlineScreenReader = /** @class */ (function () {
974
992
  this.editor.container.appendChild(this.screenReaderDiv);
975
993
  }
976
994
  AceInlineScreenReader.prototype.setScreenReaderContent = function (content) {
977
- if (!this.popup && this.editor.completer && this.editor.completer.popup) {
978
- this.popup = this.editor.completer.popup;
995
+ if (!this.popup && this.editor.completer && /**@type{import("../autocomplete").Autocomplete}*/ (this.editor.completer).popup) {
996
+ this.popup = /**@type{import("../autocomplete").Autocomplete}*/ (this.editor.completer).popup;
979
997
  this.popup.renderer.on("afterRender", function () {
980
998
  var row = this.popup.getRow();
981
999
  var t = this.popup.renderer.$textLayer;
@@ -1079,7 +1097,7 @@ exports.AceInline = AceInline;
1079
1097
 
1080
1098
  });
1081
1099
 
1082
- ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/config"], function(require, exports, module){"use strict";
1100
+ ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/config","ace/lib/useragent"], function(require, exports, module){"use strict";
1083
1101
  var Renderer = require("../virtual_renderer").VirtualRenderer;
1084
1102
  var Editor = require("../editor").Editor;
1085
1103
  var Range = require("../range").Range;
@@ -1087,9 +1105,13 @@ var event = require("../lib/event");
1087
1105
  var lang = require("../lib/lang");
1088
1106
  var dom = require("../lib/dom");
1089
1107
  var nls = require("../config").nls;
1108
+ var userAgent = require("./../lib/useragent");
1090
1109
  var getAriaId = function (index) {
1091
1110
  return "suggest-aria-id:".concat(index);
1092
1111
  };
1112
+ var popupAriaRole = userAgent.isSafari ? "menu" : "listbox";
1113
+ var optionAriaRole = userAgent.isSafari ? "menuitem" : "option";
1114
+ var ariaActiveState = userAgent.isSafari ? "aria-current" : "aria-selected";
1093
1115
  var $singleLineEditor = function (el) {
1094
1116
  var renderer = new Renderer(el);
1095
1117
  renderer.$maxLines = 4;
@@ -1105,15 +1127,16 @@ var $singleLineEditor = function (el) {
1105
1127
  var AcePopup = /** @class */ (function () {
1106
1128
  function AcePopup(parentNode) {
1107
1129
  var el = dom.createElement("div");
1108
- var popup = new $singleLineEditor(el);
1130
+ var popup = $singleLineEditor(el);
1109
1131
  if (parentNode) {
1110
1132
  parentNode.appendChild(el);
1111
1133
  }
1112
1134
  el.style.display = "none";
1113
1135
  popup.renderer.content.style.cursor = "default";
1114
1136
  popup.renderer.setStyle("ace_autocomplete");
1115
- popup.renderer.$textLayer.element.setAttribute("role", "listbox");
1116
- popup.renderer.$textLayer.element.setAttribute("aria-label", nls("Autocomplete suggestions"));
1137
+ popup.renderer.$textLayer.element.setAttribute("role", popupAriaRole);
1138
+ popup.renderer.$textLayer.element.setAttribute("aria-roledescription", nls("autocomplete.popup.aria-roledescription", "Autocomplete suggestions"));
1139
+ popup.renderer.$textLayer.element.setAttribute("aria-label", nls("autocomplete.popup.aria-label", "Autocomplete suggestions"));
1117
1140
  popup.renderer.textarea.setAttribute("aria-hidden", "true");
1118
1141
  popup.setOption("displayIndentGuides", false);
1119
1142
  popup.setOption("dragDelay", 150);
@@ -1121,7 +1144,7 @@ var AcePopup = /** @class */ (function () {
1121
1144
  popup.focus = noop;
1122
1145
  popup.$isFocused = true;
1123
1146
  popup.renderer.$cursorLayer.restartTimer = noop;
1124
- popup.renderer.$cursorLayer.element.style.opacity = 0;
1147
+ popup.renderer.$cursorLayer.element.style.opacity = "0";
1125
1148
  popup.renderer.$maxLines = 8;
1126
1149
  popup.renderer.$keepTextAreaAtCursor = false;
1127
1150
  popup.setHighlightActiveLine(false);
@@ -1177,25 +1200,28 @@ var AcePopup = /** @class */ (function () {
1177
1200
  popup.renderer.on("afterRender", function () {
1178
1201
  var row = popup.getRow();
1179
1202
  var t = popup.renderer.$textLayer;
1180
- var selected = t.element.childNodes[row - t.config.firstRow];
1203
+ var selected = /** @type {HTMLElement|null} */ (t.element.childNodes[row - t.config.firstRow]);
1181
1204
  var el = document.activeElement; // Active element is textarea of main editor
1182
- if (selected !== t.selectedNode && t.selectedNode) {
1183
- dom.removeCssClass(t.selectedNode, "ace_selected");
1205
+ if (selected !== popup.selectedNode && popup.selectedNode) {
1206
+ dom.removeCssClass(popup.selectedNode, "ace_selected");
1184
1207
  el.removeAttribute("aria-activedescendant");
1185
- t.selectedNode.removeAttribute("id");
1208
+ popup.selectedNode.removeAttribute(ariaActiveState);
1209
+ popup.selectedNode.removeAttribute("id");
1186
1210
  }
1187
- t.selectedNode = selected;
1211
+ popup.selectedNode = selected;
1188
1212
  if (selected) {
1189
1213
  dom.addCssClass(selected, "ace_selected");
1190
1214
  var ariaId = getAriaId(row);
1191
1215
  selected.id = ariaId;
1192
1216
  t.element.setAttribute("aria-activedescendant", ariaId);
1193
1217
  el.setAttribute("aria-activedescendant", ariaId);
1194
- selected.setAttribute("role", "option");
1195
- selected.setAttribute("aria-label", popup.getData(row).value);
1218
+ selected.setAttribute("role", optionAriaRole);
1219
+ selected.setAttribute("aria-roledescription", nls("autocomplete.popup.item.aria-roledescription", "item"));
1220
+ selected.setAttribute("aria-label", popup.getData(row).caption || popup.getData(row).value);
1196
1221
  selected.setAttribute("aria-setsize", popup.data.length);
1197
1222
  selected.setAttribute("aria-posinset", row + 1);
1198
1223
  selected.setAttribute("aria-describedby", "doc-tooltip");
1224
+ selected.setAttribute(ariaActiveState, "true");
1199
1225
  }
1200
1226
  });
1201
1227
  var hideHoverMarker = function () { setHoverMarker(-1); };
@@ -1413,7 +1439,7 @@ var AcePopup = /** @class */ (function () {
1413
1439
  }
1414
1440
  return AcePopup;
1415
1441
  }());
1416
- dom.importCssString("\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #CAD6FA;\n z-index: 1;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #3a674e;\n}\n.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid #abbffe;\n margin-top: -1px;\n background: rgba(233,233,253,0.4);\n position: absolute;\n z-index: 2;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid rgba(109, 150, 13, 0.8);\n background: rgba(58, 103, 78, 0.62);\n}\n.ace_completion-meta {\n opacity: 0.5;\n margin-left: 0.9em;\n}\n.ace_completion-message {\n margin-left: 0.9em;\n color: blue;\n}\n.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #2d69c7;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #93ca12;\n}\n.ace_editor.ace_autocomplete {\n width: 300px;\n z-index: 200000;\n border: 1px lightgray solid;\n position: fixed;\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n line-height: 1.4;\n background: #fefefe;\n color: #111;\n}\n.ace_dark.ace_editor.ace_autocomplete {\n border: 1px #484747 solid;\n box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\n line-height: 1.4;\n background: #25282c;\n color: #c1c1c1;\n}\n.ace_autocomplete .ace_text-layer {\n width: calc(100% - 8px);\n}\n.ace_autocomplete .ace_line {\n display: flex;\n align-items: center;\n}\n.ace_autocomplete .ace_line > * {\n min-width: 0;\n flex: 0 0 auto;\n}\n.ace_autocomplete .ace_line .ace_ {\n flex: 0 1 auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ace_autocomplete .ace_completion-spacer {\n flex: 1;\n}\n.ace_autocomplete.ace_loading:after {\n content: \"\";\n position: absolute;\n top: 0px;\n height: 2px;\n width: 8%;\n background: blue;\n z-index: 100;\n animation: ace_progress 3s infinite linear;\n animation-delay: 300ms;\n transform: translateX(-100%) scaleX(1);\n}\n@keyframes ace_progress {\n 0% { transform: translateX(-100%) scaleX(1) }\n 50% { transform: translateX(625%) scaleX(2) } \n 100% { transform: translateX(1500%) scaleX(3) } \n}\n@media (prefers-reduced-motion) {\n .ace_autocomplete.ace_loading:after {\n transform: translateX(625%) scaleX(2);\n animation: none;\n }\n}\n", "autocompletion.css", false);
1442
+ dom.importCssString("\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #CAD6FA;\n z-index: 1;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #3a674e;\n}\n.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid #abbffe;\n margin-top: -1px;\n background: rgba(233,233,253,0.4);\n position: absolute;\n z-index: 2;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid rgba(109, 150, 13, 0.8);\n background: rgba(58, 103, 78, 0.62);\n}\n.ace_completion-meta {\n opacity: 0.5;\n margin-left: 0.9em;\n}\n.ace_completion-message {\n margin-left: 0.9em;\n color: blue;\n}\n.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #2d69c7;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #93ca12;\n}\n.ace_editor.ace_autocomplete {\n width: 300px;\n z-index: 200000;\n border: 1px lightgray solid;\n position: fixed;\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n line-height: 1.4;\n background: #fefefe;\n color: #111;\n}\n.ace_dark.ace_editor.ace_autocomplete {\n border: 1px #484747 solid;\n box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\n line-height: 1.4;\n background: #25282c;\n color: #c1c1c1;\n}\n.ace_autocomplete .ace_text-layer {\n width: calc(100% - 8px);\n}\n.ace_autocomplete .ace_line {\n display: flex;\n align-items: center;\n}\n.ace_autocomplete .ace_line > * {\n min-width: 0;\n flex: 0 0 auto;\n}\n.ace_autocomplete .ace_line .ace_ {\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ace_autocomplete .ace_completion-spacer {\n flex: 1;\n}\n.ace_autocomplete.ace_loading:after {\n content: \"\";\n position: absolute;\n top: 0px;\n height: 2px;\n width: 8%;\n background: blue;\n z-index: 100;\n animation: ace_progress 3s infinite linear;\n animation-delay: 300ms;\n transform: translateX(-100%) scaleX(1);\n}\n@keyframes ace_progress {\n 0% { transform: translateX(-100%) scaleX(1) }\n 50% { transform: translateX(625%) scaleX(2) } \n 100% { transform: translateX(1500%) scaleX(3) } \n}\n@media (prefers-reduced-motion) {\n .ace_autocomplete.ace_loading:after {\n transform: translateX(625%) scaleX(2);\n animation: none;\n }\n}\n", "autocompletion.css", false);
1417
1443
  exports.AcePopup = AcePopup;
1418
1444
  exports.$singleLineEditor = $singleLineEditor;
1419
1445
  exports.getAriaId = getAriaId;
@@ -1471,21 +1497,20 @@ exports.getCompletionPrefix = function (editor) {
1471
1497
  }.bind(this));
1472
1498
  return prefix || this.retrievePrecedingIdentifier(line, pos.column);
1473
1499
  };
1474
- exports.triggerAutocomplete = function (editor) {
1475
- var pos = editor.getCursorPosition();
1476
- var line = editor.session.getLine(pos.row);
1477
- var column = (pos.column === 0) ? 0 : pos.column - 1;
1478
- var previousChar = line[column];
1479
- return editor.completers.some(function (el) {
1480
- if (el.triggerCharacters && Array.isArray(el.triggerCharacters)) {
1481
- return el.triggerCharacters.includes(previousChar);
1500
+ exports.triggerAutocomplete = function (editor, previousChar) {
1501
+ var previousChar = previousChar == null
1502
+ ? editor.session.getPrecedingCharacter()
1503
+ : previousChar;
1504
+ return editor.completers.some(function (completer) {
1505
+ if (completer.triggerCharacters && Array.isArray(completer.triggerCharacters)) {
1506
+ return completer.triggerCharacters.includes(previousChar);
1482
1507
  }
1483
1508
  });
1484
1509
  };
1485
1510
 
1486
1511
  });
1487
1512
 
1488
- ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/inline","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/lang","ace/lib/dom","ace/snippets","ace/config","ace/lib/event"], function(require, exports, module){"use strict";
1513
+ ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/inline","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/lang","ace/lib/dom","ace/snippets","ace/config","ace/lib/event","ace/lib/scroll"], function(require, exports, module){"use strict";
1489
1514
  var HashHandler = require("./keyboard/hash_handler").HashHandler;
1490
1515
  var AcePopup = require("./autocomplete/popup").AcePopup;
1491
1516
  var AceInline = require("./autocomplete/inline").AceInline;
@@ -1496,6 +1521,7 @@ var dom = require("./lib/dom");
1496
1521
  var snippetManager = require("./snippets").snippetManager;
1497
1522
  var config = require("./config");
1498
1523
  var event = require("./lib/event");
1524
+ var preventParentScroll = require("./lib/scroll").preventParentScroll;
1499
1525
  var destroyCompleter = function (e, editor) {
1500
1526
  editor.completer && editor.completer.destroy();
1501
1527
  };
@@ -1510,6 +1536,8 @@ var Autocomplete = /** @class */ (function () {
1510
1536
  this.keyboardHandler.bindKeys(this.commands);
1511
1537
  this.parentNode = null;
1512
1538
  this.setSelectOnHover = false;
1539
+ this.hasSeen = new Set();
1540
+ this.showLoadingState = false;
1513
1541
  this.stickySelectionDelay = 500;
1514
1542
  this.blurListener = this.blurListener.bind(this);
1515
1543
  this.changeListener = this.changeListener.bind(this);
@@ -1520,22 +1548,29 @@ var Autocomplete = /** @class */ (function () {
1520
1548
  this.updateCompletions(true);
1521
1549
  }.bind(this));
1522
1550
  this.tooltipTimer = lang.delayedCall(this.updateDocTooltip.bind(this), 50);
1551
+ this.popupTimer = lang.delayedCall(this.$updatePopupPosition.bind(this), 50);
1523
1552
  this.stickySelectionTimer = lang.delayedCall(function () {
1524
1553
  this.stickySelection = true;
1525
1554
  }.bind(this), this.stickySelectionDelay);
1526
- this.$firstOpenTimer = lang.delayedCall(function () {
1555
+ this.$firstOpenTimer = lang.delayedCall(/**@this{Autocomplete}*/ function () {
1527
1556
  var initialPosition = this.completionProvider && this.completionProvider.initialPosition;
1528
- if (this.autoShown || (this.popup && this.popup.isOpen) || !initialPosition)
1557
+ if (this.autoShown || (this.popup && this.popup.isOpen) || !initialPosition || this.editor.completers.length === 0)
1529
1558
  return;
1530
- var completionsForEmpty = [{
1531
- caption: config.nls("Loading..."),
1532
- value: ""
1533
- }];
1534
- this.completions = new FilteredList(completionsForEmpty);
1559
+ this.completions = new FilteredList(Autocomplete.completionsForLoading);
1535
1560
  this.openPopup(this.editor, initialPosition.prefix, false);
1536
1561
  this.popup.renderer.setStyle("ace_loading", true);
1537
1562
  }.bind(this), this.stickySelectionDelay);
1538
1563
  }
1564
+ Object.defineProperty(Autocomplete, "completionsForLoading", {
1565
+ get: function () {
1566
+ return [{
1567
+ caption: config.nls("autocomplete.loading", "Loading..."),
1568
+ value: ""
1569
+ }];
1570
+ },
1571
+ enumerable: false,
1572
+ configurable: true
1573
+ });
1539
1574
  Autocomplete.prototype.$init = function () {
1540
1575
  this.popup = new AcePopup(this.parentNode || document.body || document.documentElement);
1541
1576
  this.popup.on("click", function (e) {
@@ -1548,6 +1583,7 @@ var Autocomplete = /** @class */ (function () {
1548
1583
  this.popup.on("select", this.$onPopupChange.bind(this));
1549
1584
  event.addListener(this.popup.container, "mouseout", this.mouseOutListener.bind(this));
1550
1585
  this.popup.on("changeHoverMarker", this.tooltipTimer.bind(null, null));
1586
+ this.popup.renderer.on("afterRender", this.$onPopupRender.bind(this));
1551
1587
  return this.popup;
1552
1588
  };
1553
1589
  Autocomplete.prototype.$initInline = function () {
@@ -1565,22 +1601,53 @@ var Autocomplete = /** @class */ (function () {
1565
1601
  }
1566
1602
  this.hideDocTooltip();
1567
1603
  this.stickySelectionTimer.cancel();
1604
+ this.popupTimer.cancel();
1568
1605
  this.stickySelection = false;
1569
1606
  };
1607
+ Autocomplete.prototype.$seen = function (completion) {
1608
+ if (!this.hasSeen.has(completion) && completion && completion.completer && completion.completer.onSeen && typeof completion.completer.onSeen === "function") {
1609
+ completion.completer.onSeen(this.editor, completion);
1610
+ this.hasSeen.add(completion);
1611
+ }
1612
+ };
1570
1613
  Autocomplete.prototype.$onPopupChange = function (hide) {
1571
1614
  if (this.inlineRenderer && this.inlineEnabled) {
1572
1615
  var completion = hide ? null : this.popup.getData(this.popup.getRow());
1573
- var prefix = util.getCompletionPrefix(this.editor);
1574
- if (!this.inlineRenderer.show(this.editor, completion, prefix)) {
1575
- this.inlineRenderer.hide();
1576
- }
1616
+ this.$updateGhostText(completion);
1577
1617
  if (this.popup.isMouseOver && this.setSelectOnHover) {
1578
1618
  this.tooltipTimer.call(null, null);
1579
1619
  return;
1580
1620
  }
1621
+ this.popupTimer.schedule();
1622
+ this.tooltipTimer.schedule();
1623
+ }
1624
+ else {
1625
+ this.popupTimer.call(null, null);
1626
+ this.tooltipTimer.call(null, null);
1627
+ }
1628
+ };
1629
+ Autocomplete.prototype.$updateGhostText = function (completion) {
1630
+ var row = this.base.row;
1631
+ var column = this.base.column;
1632
+ var cursorColumn = this.editor.getCursorPosition().column;
1633
+ var prefix = this.editor.session.getLine(row).slice(column, cursorColumn);
1634
+ if (!this.inlineRenderer.show(this.editor, completion, prefix)) {
1635
+ this.inlineRenderer.hide();
1636
+ }
1637
+ else {
1638
+ this.$seen(completion);
1639
+ }
1640
+ };
1641
+ Autocomplete.prototype.$onPopupRender = function () {
1642
+ var inlineEnabled = this.inlineRenderer && this.inlineEnabled;
1643
+ if (this.completions && this.completions.filtered && this.completions.filtered.length > 0) {
1644
+ for (var i = this.popup.getFirstVisibleRow(); i <= this.popup.getLastVisibleRow(); i++) {
1645
+ var completion = this.popup.getData(i);
1646
+ if (completion && (!inlineEnabled || completion.hideInlinePreview)) {
1647
+ this.$seen(completion);
1648
+ }
1649
+ }
1581
1650
  }
1582
- this.$updatePopupPosition();
1583
- this.tooltipTimer.call(null, null);
1584
1651
  };
1585
1652
  Autocomplete.prototype.$onPopupShow = function (hide) {
1586
1653
  this.$onPopupChange(hide);
@@ -1636,7 +1703,11 @@ var Autocomplete = /** @class */ (function () {
1636
1703
  posGhostText.top += renderer.$ghostTextWidget.el.offsetHeight;
1637
1704
  }
1638
1705
  }
1639
- if (this.popup.tryShow(posGhostText, lineHeight, "bottom")) {
1706
+ var editorContainerBottom = editor.container.getBoundingClientRect().bottom - lineHeight;
1707
+ var lowestPosition = editorContainerBottom < posGhostText.top ?
1708
+ { top: editorContainerBottom, left: posGhostText.left } :
1709
+ posGhostText;
1710
+ if (this.popup.tryShow(lowestPosition, lineHeight, "bottom")) {
1640
1711
  return;
1641
1712
  }
1642
1713
  if (this.popup.tryShow(pos, lineHeight, "top")) {
@@ -1652,7 +1723,8 @@ var Autocomplete = /** @class */ (function () {
1652
1723
  this.$initInline();
1653
1724
  this.popup.autoSelect = this.autoSelect;
1654
1725
  this.popup.setSelectOnHover(this.setSelectOnHover);
1655
- var previousSelectedItem = this.popup.data[this.popup.getRow()];
1726
+ var oldRow = this.popup.getRow();
1727
+ var previousSelectedItem = this.popup.data[oldRow];
1656
1728
  this.popup.setData(this.completions.filtered, this.completions.filterText);
1657
1729
  if (this.editor.textInput.setAriaOptions) {
1658
1730
  this.editor.textInput.setAriaOptions({
@@ -1661,11 +1733,19 @@ var Autocomplete = /** @class */ (function () {
1661
1733
  });
1662
1734
  }
1663
1735
  editor.keyBinding.addKeyboardHandler(this.keyboardHandler);
1664
- var newRow = this.popup.data.indexOf(previousSelectedItem);
1665
- if (newRow && this.stickySelection)
1666
- this.popup.setRow(this.autoSelect ? newRow : -1);
1667
- else
1668
- this.popup.setRow(this.autoSelect ? 0 : -1);
1736
+ var newRow;
1737
+ if (this.stickySelection)
1738
+ newRow = this.popup.data.indexOf(previousSelectedItem);
1739
+ if (!newRow || newRow === -1)
1740
+ newRow = 0;
1741
+ this.popup.setRow(this.autoSelect ? newRow : -1);
1742
+ if (newRow === oldRow && previousSelectedItem !== this.completions.filtered[newRow])
1743
+ this.$onPopupChange();
1744
+ var inlineEnabled = this.inlineRenderer && this.inlineEnabled;
1745
+ if (newRow === oldRow && inlineEnabled) {
1746
+ var completion = this.popup.getData(this.popup.getRow());
1747
+ this.$updateGhostText(completion);
1748
+ }
1669
1749
  if (!keepPopupPosition) {
1670
1750
  this.popup.setTheme(editor.getTheme());
1671
1751
  this.popup.setFontSize(editor.getFontSize());
@@ -1674,9 +1754,6 @@ var Autocomplete = /** @class */ (function () {
1674
1754
  this.updateDocTooltip();
1675
1755
  }
1676
1756
  }
1677
- else if (keepPopupPosition && !prefix) {
1678
- this.detach();
1679
- }
1680
1757
  this.changeTimer.cancel();
1681
1758
  this.observeLayoutChanges();
1682
1759
  };
@@ -1696,6 +1773,9 @@ var Autocomplete = /** @class */ (function () {
1696
1773
  }
1697
1774
  if (this.popup && this.popup.isOpen)
1698
1775
  this.popup.hide();
1776
+ if (this.popup && this.popup.renderer) {
1777
+ this.popup.renderer.off("afterRender", this.$onPopupRender);
1778
+ }
1699
1779
  if (this.base)
1700
1780
  this.base.detach();
1701
1781
  this.activated = false;
@@ -1726,7 +1806,7 @@ var Autocomplete = /** @class */ (function () {
1726
1806
  this.detach();
1727
1807
  };
1728
1808
  Autocomplete.prototype.mousewheelListener = function (e) {
1729
- if (!this.popup.isMouseOver)
1809
+ if (this.popup && !this.popup.isMouseOver)
1730
1810
  this.detach();
1731
1811
  };
1732
1812
  Autocomplete.prototype.mouseOutListener = function (e) {
@@ -1794,6 +1874,7 @@ var Autocomplete = /** @class */ (function () {
1794
1874
  this.base = this.editor.session.doc.createAnchor(pos.row, pos.column);
1795
1875
  this.base.$insertRight = true;
1796
1876
  this.completions = new FilteredList(options.matches);
1877
+ this.getCompletionProvider().completions = this.completions;
1797
1878
  return this.openPopup(this.editor, "", keepPopupPosition);
1798
1879
  }
1799
1880
  var session = this.editor.getSession();
@@ -1808,7 +1889,8 @@ var Autocomplete = /** @class */ (function () {
1808
1889
  this.getCompletionProvider({
1809
1890
  prefix: prefix,
1810
1891
  pos: pos
1811
- }).provideCompletions(this.editor, completionOptions, function (err, completions, finished) {
1892
+ }).provideCompletions(this.editor, completionOptions,
1893
+ function (err, completions, finished) {
1812
1894
  var filtered = completions.filtered;
1813
1895
  var prefix = util.getCompletionPrefix(this.editor);
1814
1896
  this.$firstOpenTimer.cancel();
@@ -1821,23 +1903,30 @@ var Autocomplete = /** @class */ (function () {
1821
1903
  var completionsForEmpty = [{
1822
1904
  caption: emptyMessage,
1823
1905
  value: ""
1824
- }];
1906
+ }
1907
+ ];
1825
1908
  this.completions = new FilteredList(completionsForEmpty);
1826
1909
  this.openPopup(this.editor, prefix, keepPopupPosition);
1910
+ this.popup.renderer.setStyle("ace_loading", false);
1911
+ this.popup.renderer.setStyle("ace_empty-message", true);
1827
1912
  return;
1828
1913
  }
1829
1914
  return this.detach();
1830
1915
  }
1831
- if (filtered.length == 1 && filtered[0].value == prefix && !filtered[0].snippet)
1916
+ if (filtered.length == 1 && filtered[0].value == prefix
1917
+ && !filtered[0].snippet)
1832
1918
  return this.detach();
1833
1919
  if (this.autoInsert && !this.autoShown && filtered.length == 1)
1834
1920
  return this.insertMatch(filtered[0]);
1835
1921
  }
1836
- this.completions = completions;
1922
+ this.completions = !finished && this.showLoadingState ?
1923
+ new FilteredList(Autocomplete.completionsForLoading.concat(filtered), completions.filterText) :
1924
+ completions;
1837
1925
  this.openPopup(this.editor, prefix, keepPopupPosition);
1926
+ this.popup.renderer.setStyle("ace_empty-message", false);
1838
1927
  this.popup.renderer.setStyle("ace_loading", !finished);
1839
1928
  }.bind(this));
1840
- if (!this.autoShown && !(this.popup && this.popup.isOpen)) {
1929
+ if (this.showLoadingState && !this.autoShown && !(this.popup && this.popup.isOpen)) {
1841
1930
  this.$firstOpenTimer.delay(this.stickySelectionDelay / 2);
1842
1931
  }
1843
1932
  };
@@ -1870,13 +1959,15 @@ var Autocomplete = /** @class */ (function () {
1870
1959
  Autocomplete.prototype.showDocTooltip = function (item) {
1871
1960
  if (!this.tooltipNode) {
1872
1961
  this.tooltipNode = dom.createElement("div");
1873
- this.tooltipNode.style.margin = 0;
1962
+ this.tooltipNode.style.margin = "0";
1874
1963
  this.tooltipNode.style.pointerEvents = "auto";
1964
+ this.tooltipNode.style.overscrollBehavior = "contain";
1875
1965
  this.tooltipNode.tabIndex = -1;
1876
1966
  this.tooltipNode.onblur = this.blurListener.bind(this);
1877
1967
  this.tooltipNode.onclick = this.onTooltipClick.bind(this);
1878
1968
  this.tooltipNode.id = "doc-tooltip";
1879
1969
  this.tooltipNode.setAttribute("role", "tooltip");
1970
+ this.tooltipNode.addEventListener("wheel", preventParentScroll);
1880
1971
  }
1881
1972
  var theme = this.editor.renderer.theme;
1882
1973
  this.tooltipNode.className = "ace_tooltip ace_doc-tooltip " +
@@ -1956,6 +2047,25 @@ var Autocomplete = /** @class */ (function () {
1956
2047
  }
1957
2048
  this.inlineRenderer = this.popup = this.editor = null;
1958
2049
  };
2050
+ Autocomplete.for = function (editor) {
2051
+ if (editor.completer instanceof Autocomplete) {
2052
+ return editor.completer;
2053
+ }
2054
+ if (editor.completer) {
2055
+ editor.completer.destroy();
2056
+ editor.completer = null;
2057
+ }
2058
+ if (config.get("sharedPopups")) {
2059
+ if (!Autocomplete["$sharedInstance"])
2060
+ Autocomplete["$sharedInstance"] = new Autocomplete();
2061
+ editor.completer = Autocomplete["$sharedInstance"];
2062
+ }
2063
+ else {
2064
+ editor.completer = new Autocomplete();
2065
+ editor.once("destroy", destroyCompleter);
2066
+ }
2067
+ return editor.completer;
2068
+ };
1959
2069
  return Autocomplete;
1960
2070
  }());
1961
2071
  Autocomplete.prototype.commands = {
@@ -1973,28 +2083,15 @@ Autocomplete.prototype.commands = {
1973
2083
  else
1974
2084
  return result;
1975
2085
  },
2086
+ "Backspace": function (editor) {
2087
+ editor.execCommand("backspace");
2088
+ var prefix = util.getCompletionPrefix(editor);
2089
+ if (!prefix && editor.completer)
2090
+ editor.completer.detach();
2091
+ },
1976
2092
  "PageUp": function (editor) { editor.completer.popup.gotoPageUp(); },
1977
2093
  "PageDown": function (editor) { editor.completer.popup.gotoPageDown(); }
1978
2094
  };
1979
- Autocomplete.for = function (editor) {
1980
- if (editor.completer instanceof Autocomplete) {
1981
- return editor.completer;
1982
- }
1983
- if (editor.completer) {
1984
- editor.completer.destroy();
1985
- editor.completer = null;
1986
- }
1987
- if (config.get("sharedPopups")) {
1988
- if (!Autocomplete.$sharedInstance)
1989
- Autocomplete.$sharedInstance = new Autocomplete();
1990
- editor.completer = Autocomplete.$sharedInstance;
1991
- }
1992
- else {
1993
- editor.completer = new Autocomplete();
1994
- editor.once("destroy", destroyCompleter);
1995
- }
1996
- return editor.completer;
1997
- };
1998
2095
  Autocomplete.startCommand = {
1999
2096
  name: "startAutocomplete",
2000
2097
  exec: function (editor, options) {
@@ -2055,6 +2152,9 @@ var CompletionProvider = /** @class */ (function () {
2055
2152
  else {
2056
2153
  this.$insertString(editor, data);
2057
2154
  }
2155
+ if (data.completer && data.completer.onInsert && typeof data.completer.onInsert == "function") {
2156
+ data.completer.onInsert(editor, data);
2157
+ }
2058
2158
  if (data.command && data.command === "startAutocomplete") {
2059
2159
  editor.execCommand(data.command);
2060
2160
  }
@@ -2309,7 +2409,8 @@ var CommandBarTooltip = /** @class */ (function () {
2309
2409
  if (!registerForMainTooltip && !this.elements[MORE_OPTIONS_BUTTON_ID]) {
2310
2410
  this.$createCommand(MORE_OPTIONS_BUTTON_ID, {
2311
2411
  name: "···",
2312
- exec: function () {
2412
+ exec:
2413
+ function () {
2313
2414
  this.$shouldHideMoreOptions = false;
2314
2415
  this.$setMoreOptionsVisibility(!this.isMoreOptionsShown());
2315
2416
  }.bind(this),
@@ -2493,7 +2594,8 @@ var CommandBarTooltip = /** @class */ (function () {
2493
2594
  }
2494
2595
  dom.buildDom(['div', { class: [BUTTON_CLASS_NAME, command.cssClass || ""].join(" "), ref: id }, buttonNode], parentEl, this.elements);
2495
2596
  this.commands[id] = command;
2496
- var eventListener = function (e) {
2597
+ var eventListener =
2598
+ function (e) {
2497
2599
  if (this.editor) {
2498
2600
  this.editor.focus();
2499
2601
  }
@@ -2860,7 +2962,8 @@ var liveAutocompleteTimer = lang.delayedCall(function () {
2860
2962
  var showLiveAutocomplete = function (e) {
2861
2963
  var editor = e.editor;
2862
2964
  var prefix = util.getCompletionPrefix(editor);
2863
- var triggerAutocomplete = util.triggerAutocomplete(editor);
2965
+ var previousChar = e.args;
2966
+ var triggerAutocomplete = util.triggerAutocomplete(editor, previousChar);
2864
2967
  if (prefix && prefix.length >= editor.$liveAutocompletionThreshold || triggerAutocomplete) {
2865
2968
  var completer = Autocomplete.for(editor);
2866
2969
  completer.autoShown = true;
@@ -3102,7 +3205,8 @@ var InlineAutocomplete = /** @class */ (function () {
3102
3205
  prefix: prefix,
3103
3206
  base: this.base,
3104
3207
  pos: pos
3105
- }).provideCompletions(this.editor, options, function (err, completions, finished) {
3208
+ }).provideCompletions(this.editor, options,
3209
+ function (err, completions, finished) {
3106
3210
  var filtered = completions.filtered;
3107
3211
  var prefix = util.getCompletionPrefix(this.editor);
3108
3212
  if (finished) {
@@ -3149,6 +3253,8 @@ var InlineAutocomplete = /** @class */ (function () {
3149
3253
  }
3150
3254
  this.inlineTooltip = this.editor = this.inlineRenderer = null;
3151
3255
  };
3256
+ InlineAutocomplete.prototype.updateDocTooltip = function () {
3257
+ };
3152
3258
  return InlineAutocomplete;
3153
3259
  }());
3154
3260
  InlineAutocomplete.prototype.commands = {
@@ -3170,7 +3276,7 @@ InlineAutocomplete.prototype.commands = {
3170
3276
  bindKey: { win: "Tab|Ctrl-Right", mac: "Tab|Cmd-Right" },
3171
3277
  name: "Accept",
3172
3278
  exec: function (editor) {
3173
- return editor.completer.insertMatch();
3279
+ return /**@type{InlineAutocomplete}*/ (editor.completer).insertMatch();
3174
3280
  }
3175
3281
  },
3176
3282
  "Close": {
@@ -3219,7 +3325,8 @@ require("../config").defineOptions(Editor.prototype, "editor", {
3219
3325
  });
3220
3326
  InlineAutocomplete.createInlineTooltip = function (parentEl) {
3221
3327
  var inlineTooltip = new CommandBarTooltip(parentEl);
3222
- inlineTooltip.registerCommand("Previous", Object.assign({}, InlineAutocomplete.prototype.commands["Previous"], {
3328
+ inlineTooltip.registerCommand("Previous",
3329
+ Object.assign({}, InlineAutocomplete.prototype.commands["Previous"], {
3223
3330
  enabled: true,
3224
3331
  type: "button",
3225
3332
  iconCssClass: "ace_arrow_rotated"
@@ -3227,17 +3334,21 @@ InlineAutocomplete.createInlineTooltip = function (parentEl) {
3227
3334
  inlineTooltip.registerCommand("Position", {
3228
3335
  enabled: false,
3229
3336
  getValue: function (editor) {
3230
- return editor ? [editor.completer.getIndex() + 1, editor.completer.getLength()].join("/") : "";
3337
+ return editor ? [
3338
+ (editor.completer).getIndex() + 1, /**@type{InlineAutocomplete}*/ (editor.completer).getLength()
3339
+ ].join("/") : "";
3231
3340
  },
3232
3341
  type: "text",
3233
3342
  cssClass: "completion_position"
3234
3343
  });
3235
- inlineTooltip.registerCommand("Next", Object.assign({}, InlineAutocomplete.prototype.commands["Next"], {
3344
+ inlineTooltip.registerCommand("Next",
3345
+ Object.assign({}, InlineAutocomplete.prototype.commands["Next"], {
3236
3346
  enabled: true,
3237
3347
  type: "button",
3238
3348
  iconCssClass: "ace_arrow"
3239
3349
  }));
3240
- inlineTooltip.registerCommand("Accept", Object.assign({}, InlineAutocomplete.prototype.commands["Accept"], {
3350
+ inlineTooltip.registerCommand("Accept",
3351
+ Object.assign({}, InlineAutocomplete.prototype.commands["Accept"], {
3241
3352
  enabled: function (editor) {
3242
3353
  return !!editor && editor.completer.getIndex() >= 0;
3243
3354
  },