如何更改 ace 编辑器自动完成结果顺序



我已经使用 angular 6 为 ace 编辑器启用了自动完成功能。建议使用已在编辑器中添加的两个本地关键字以及特定模式的代码段。首先显示本地关键字,然后显示代码段列表。我需要更改自动完成列表的顺序。我需要在任何本地关键字之前显示代码段列表。我如何实现这一点,因为在角度背景中对 ace 的支持不多。

为传递给自动完成 https://github.com/ajaxorg/ace/blob/092b70c9e35f1b7aeb927925d89cb0264480d409/lib/ace/autocomplete.js#L545 的项目设置分数属性

要修改代码段完成器分配的分数,您可以执行

snippetCompleter = ace.require("ace/ext/language_tools").snippetCompleter
snippetCompleter.getCompletionsOrig =
snippetCompleter.getCompletionsOrig || snippetCompleter.getCompletions;
snippetCompleter.getCompletions = function(editor, session, pos, prefix, callback) {
return this.getCompletionsOrig(editor, session, pos, prefix, function(err, completions) {
if (completions) completions.forEach(function(c) { c.score = 1000 })
callback(err, completions)
})
}

或更改 https://github.com/ajaxorg/ace/blob/092b70c9e35f1b7aeb927925d89cb0264480d409/lib/ace/ext/language_tools.js#L76 以执行score: snippetCompleter.snippetScore,以允许通过简单地为片段完成器分配一个数字来配置片段分数。

最新更新