我能够在ace编辑器中获取(ctrl + space)键事件的自动完成列表,但是我想在用户键事件上实现相同的行为。有什么办法可以做同样的事情?
答案 0 :(得分:0)
要添加自定义自动完成功能,您需要使用 addCommand 绑定密钥,然后调用自动完成功能
editor.commands.addCommand({
name: "myCommand",
bindKey: { win: "$", mac: "$" },
exec: function (editor) {
autocomplete();
}
});
一旦用户触发了您可以调用自动完成功能的键,我将在此处添加示例自动完成功能,并根据需要进行更改。
autocomplete: function () {
staticWordCompleter = {
var getWordList = function(editor, session, pos, prefix, callback, isRHSEditor) {
var wordList = ["Java","Javascript","Python"]; // add your words to this list
callback(null, wordList.map(function(word) {
return {
caption: word,
value: word
};
}));
editor.completers = [staticWordCompleter];
}
要始终使用自动填充功能,可以尝试以下操作:
editor.commands.on("afterExec", function (e) {
if (e.command.name == "insertstring" && /^[\w.]$/.test(e.args)) {
editor.execCommand("startAutocomplete");
}
});
或者您可以绑定更改事件并调用自动完成功能,这将在每次点击时触发自动完成功能
editor.on("change", function () {
autocomplete();
});