ACE编辑器自动完成删除局部变量

Mir*_*vic 17 javascript autocomplete ace-editor

我正在使用ace编辑器,我已经启用了basicautocompletion,我从另一台服务器提取数据以获得建议.一切正常,但我想从建议框中删除本地建议.

这是我的相关代码:

var langTools = ace.require("ace/ext/language_tools");
var editor = ace.edit("editor");

editor.setTheme("ace/theme/xcode");
var TextMode = require("ace/mode/text").Mode;
editor.getSession().setUseWrapMode(true);

editor.setOptions({
  enableBasicAutocompletion: true,
});

var qtags = {
getCompletions: function(editor, session, pos, prefix, callback) {
  $.getJSON(jsonURL,
    function(tagList) {
      callback(null, tagList.map(function(qtag) {
        return {name: qtag.name, value: "#"+qtag.name+"() ", meta: "qtag"}
      }));
    })
  }
}
langTools.addCompleter(qtags);
Run Code Online (Sandbox Code Playgroud)

这是它的样子:

例

在添加我的qtag完成符之前,我已尝试删除所有完成符,但这并不会删除局部变量

langTools.completers = [];
Run Code Online (Sandbox Code Playgroud)

任何输入都会受到赞赏,我试图避免在可能的情况下修改ace/ext/language_tools.js,但此时我甚至打开了那个选项.

Sup*_*ova 19

诀窍是在打电话langTools.setCompleters([]) 打电话editor.setOptions({enableBasicAutocompletion: true});.false在设置或添加完成项之前,最好将此选项设置为显式.无需更改language_tools的源代码.

例:

var langTools = ace.require("ace/ext/language_tools");
var editor = ace.edit("editor");

editor.setTheme("ace/theme/xcode");
var TextMode = require("ace/mode/text").Mode;
editor.getSession().setUseWrapMode(true);

var qtags = {
  getCompletions: function(editor, session, pos, prefix, callback) {
    $.getJSON(jsonURL,
      function(tagList) {
        callback(null, tagList.map(function(qtag) {
          return {name: qtag.name, value: "#"+qtag.name+"() ", meta: "qtag"}
      }));
    })
  }
}

langTools.setCompleters([qtags]);

editor.setOptions({
  enableBasicAutocompletion: true,
});
Run Code Online (Sandbox Code Playgroud)


a u*_*ser 9

您可以使用 langTools.setCompleters

langTools = require("ace/ext/language_tools")
langTools.setCompleters([langTools.snippetCompleter, langTools.textCompleter])
Run Code Online (Sandbox Code Playgroud)

要么 editor.completers = [langTools.snippetCompleter, langTools.textCompleter, qtags]