Как включить автозаполнение для каждого ключевого события в редакторе ace? - PullRequest
0 голосов
/ 01 июля 2019

Я могу получить список автозаполнения для ключевого события (ctrl + пробел) в редакторе ace, но я хочу добиться того же поведения в случае пользовательского ключа.Есть ли способ сделать то же самое?

1 Ответ

0 голосов
/ 01 июля 2019

Для добавления пользовательского автозаполнения вам необходимо связать ключ с помощью 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();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...