автодополнение в редакторе ace.js

Я хотел бы знать, можно ли включить автозаполнение, пока пользователь печатает в редакторе ace.js. На данный момент в моем проекте включено автодополнение при вводе пользователем: ctrl+space. Тогда возможно ли добавить некоторые ключевые слова в список автодополнения?

Спасибо


person Edge7    schedule 15.11.2013    source источник


Ответы (2)


Для запуска автозаполнения используйте

editor.commands.on("afterExec", function(e){
     if (e.command.name == "insertstring"&&/^[\w.]$/.test(e.args)) {
         editor.execCommand("startAutocomplete")
     }
})

Для добавления некоторых ключевых слов вы можете добавить еще один завершитель в редактор или переопределить метод getCompletions в режиме.

person a user    schedule 19.11.2013
comment
Спасибо! Он показывает автозаполнение, пока пользователь печатает, но также автоматически заменяет введенные слова, когда в параметрах автозаполнения есть только одно совпадение. Есть способ избежать этого? - person Proghero; 21.03.2014
comment
@Proghero, ты когда-нибудь находил ответ на свой вопрос? У меня такая же проблема. - person Pete Martin; 05.05.2014
comment
В последнюю версию ace встроена поддержка этого, см. github.com/ajaxorg/ace/blob/4599dc6/lib/ace/ext/ - person a user; 05.05.2014
comment
У меня также проблема с автоматической заменой набранных слов, когда в параметрах автозаполнения есть только одно совпадение... где я могу поставить editor.completer.autoInsert = false;? У меня установлена ​​последняя версия ace, но она по-прежнему работает автоматически. - person maudulus; 08.01.2015

Он уже встроен! Посмотрите варианты, которые я выбрал под editor.setOptions:

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

    editor.setTheme("ace/theme/monokai");
    editor.getSession().setMode("ace/mode/yaml");

    editor.setOptions({
        enableBasicAutocompletion: true,
        enableSnippets: true,
        enableLiveAutocompletion: true
    });
person maudulus    schedule 07.01.2015