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

标签 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
});

最佳答案

你需要像这样添加一个完成者

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]
//UPDATE: consider adding to completers list to not remove ace's already added completers
editor.completers.push(staticWordCompleter)

关于javascript - ACE 编辑器自动完成 - 自定义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30041816/

相关文章:

javascript - 尝试遍历键、值字典,并将键与另一个 for 循环匹配

javascript - 选中复选框时划掉文本

javascript - Chrome 扩展中的 popup.js 中的变量值是否会刷新?

jquery - ASP.NET Core jquery 自动完成在列表中返回空行

django-dynamic-formset 和 django-autocomplete-light 集成错误

javascript - 我如何将隐藏的 id 与自动完成 jquery

javascript - 单击行 dc.datable 时如何在不丢失过滤的情况下更改颜色

javascript - 将 CSS 样式添加到 SVG

javascript - 使用复选框中的值更新 div

javascript - 在悬停选择器更改之前获取元素样式