浏览代码

[core] Support for fields autocomplete in Ace after a . in non-live mode

Enrico Berti 10 年之前
父节点
当前提交
0d00f65ac3
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

+ 5 - 1
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -2026,10 +2026,14 @@ ko.bindingHandlers.aceEditor = {
       }
     });
 
+    editor.lastCalledAutocomplete = 0;
+
     editor.commands.on("afterExec", function (e) {
+      var now = (new Date()).getTime();
       editor.session.getMode().$id = valueAccessor().mode(); // forces the id again because of Ace command internals
-      if ((editor.session.getMode().$id == "ace/mode/hive" || editor.session.getMode().$id == "ace/mode/impala") && e.args == ".") {
+      if ((editor.session.getMode().$id == "ace/mode/hive" || editor.session.getMode().$id == "ace/mode/impala") && now - editor.lastCalledAutocomplete > 1000 && (e.args == "." || (typeof e.args == "undefined" && e.command != null && e.command.name == "startAutocomplete"))) {
         fieldsAutocomplete(editor, valueAccessor);
+        editor.lastCalledAutocomplete = now;
       }
       // if it's pig and before it's LOAD ' we disable the autocomplete and show a filechooser btn
       if (editor.session.getMode().$id = "ace/mode/pig" && e.args) {