Javascript 在Ace编辑器中将我的值推到自动完成列表的顶部
我使用的是一个定制的补足符,它使用Javascript 在Ace编辑器中将我的值推到自动完成列表的顶部,javascript,jquery,ace-editor,Javascript,Jquery,Ace Editor,我使用的是一个定制的补足符,它使用jQuery.getJSON从服务器提取值 我的自定义补全将与local和snippets一起显示,我希望我的补全始终位于顶部。我想,score可以做到这一点,但不能像这样工作。我给分数的值是1000 var langTools = ace.require("ace/ext/language_tools"); editor = ace.edit("editor"); editor.setOptions({ enableBasicAutocompletio
jQuery.getJSON
从服务器提取值
我的自定义补全将与local
和snippets
一起显示,我希望我的补全始终位于顶部。我想,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()中根据距离对分数进行了额外处理。一些ace插件所做的(参见示例)是将分数设置为Number.MAX\u VALUE
,这对我也适用:我的完成项显示在列表的顶部。我的示例中有一个正在运行的项目,在回调()中,它是返回分数的位置吗?我返回1000。分数是为每个完成单独定义的。在代码中,您可以将score:c.score}
(在json.map
)替换为score:100+(c.score | 0)}
<代码>分数:1000}
也可以