web-dev-qa-db-ja.com

ACEエディターのオートコンプリート-カスタム文字列

Chrome拡張機能内でACEエディターを使用しています。ACEのオートコンプリート機能を使用していますが、オートコンプリートに使用する静的文字列のリストを完全に定義できるようにしたいのですが、ローカル文字列またはスニペット(将来的には静的リストよりも洗練されたものを使用する可能性がありますが、今のところ静的で問題ありません。)

誰かがこれを達成する方法についていくつかの指示を提供できますか?すでにオートコンプリートを有効にしてスニペットをオフにしていますが、使用する文字列の静的リストを定義するのに問題があります。

私がこれまでに持っているのは:

var editor = ace.edit('propertiesText');
editor.getSession().setMode('ace/mode/properties');
var langTools = ace.require('ace/ext/language_tools');

// code here to define custom strings?

editor.setOptions({
    enableBasicAutocompletion: true
});
12
russtuck91

このようなコンプリーターを追加する必要があります

var staticWordCompleter = {
    getCompletions: function(editor, session, pos, prefix, callback) {
        var wordList = ["foo", "bar", "baz"];
        callback(null, wordList.map(function(Word) {
            return {
                caption: Word,
                value: Word,
                meta: "static"
            };
        }));

    }
}

langTools.setCompleters([staticWordCompleter])
// or 
editor.completers = [staticWordCompleter]
27
a user