gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 01:23:10 25 4
gpt4 key购买 nike

我使用的是 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);

这是它的样子:

Example

在添加我的 qtag completer 之前,我已经尝试通过这一行删除所有的 completer,但这并没有删除局部变量

langTools.completers = [];

如有任何意见,我将不胜感激,如果可能的话,我会尽量避免修改 ace/ext/language_tools.js,但在这一点上,我什至对这个选项持开放态度。

最佳答案

诀窍是调用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,
});

关于javascript - ACE 编辑器自动完成删除局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com