繁体   English   中英

将我的值推到Ace编辑器中的自动完成列表顶部

[英]Push my values to top of auto completion list in Ace editor

我正在使用自定义完成程序,它使用jQuery.getJSON从服务器中提取值。

我的自定义完成情况与localsnippets ,我希望自己能够始终处于领先地位。 我认为score会这样做,但不会像这样工作。 我得分值为1000。

var langTools = ace.require("ace/ext/language_tools");
editor = ace.edit("editor");
editor.setOptions({
    enableBasicAutocompletion: true,
    enableLiveAutocompletion: true,
    enableSnippets: true
});
var myCompleter = {
    getCompletions: function(editor, session, pos, prefix, callback) {
        if (prefix.length === 0) {
            callback(null, []);
            return;
        }
        $.getJSON("/server/completions", function(json) {
            callback(null, json.map(function(c) {
                return {value: c.value, caption: c.caption, meta: c.meta, score:c.score};
            }));
        })
    }
};
langTools.addCompleter(myCompleter);

有任何想法吗? 谢谢,/ w

确保您提供的完成分数高于默认分数。 默认完成者都给出得分0,所以类似{..., score:100 + (c.score || 0)}; 应该管用

根据距离,在autocomplete.js( https://github.com/ajaxorg/ace/blob/4a55188fdb0eee9e2d3854f175e67408a1e47655/lib/ace/autocomplete.js#L488 )中进行了额外的处理。 一些ace插件的作用(例如参见https://github.com/ajaxorg/ace/blob/4a55188fdb0eee9e2d3854f175e67408a1e47655/lib/ace/mode/html_completions.js#L300 )将得分设置为Number.MAX_VALUE ,它适用于我也是:我的完成出现在列表的顶部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM