ACE编辑器自动完成 - 自定义字符串

时间:2015-05-04 23:35:24

标签: javascript google-chrome-extension autocomplete ace-editor

我在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
});

2 个答案:

答案 0 :(得分:26)

你需要添加像这样的完成者

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]

答案 1 :(得分:1)

如果您要保留旧的关键字列表并希望追加新的列表

   ID values ind
1   A    Yes  X1
2   B    Yes  X1
10  J    Yes  X1
15  E    Yes  X2
21  A    Yes  X3
28  H    Yes  X3
33  C    Yes  X4
40  J    Yes  X4
41  A    Yes  X5
43  C    Yes  X5
64  D    Yes  X7