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

时间:2019-07-12 07:50:05

标签: angular6 latex ace-editor tex

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

1 个答案:

答案 0 :(得分:0)

在传递给自动完成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,以允许仅通过向snippetCompleter分配一个数字来配置snippetScore。