Ace Editor 自动完成,本地片段/文本的优先级较低
Ace Editor auto completion, less priority for local snippets / text
我正在为一个项目使用 Ace Editor,但我遇到了一个小问题。
我使用 addCompleter 函数向编辑器添加了一些关键字、宏和其他内容。但是,一旦它们被写入,本地完成者似乎会覆盖所有这些。就像在这个例子中一样,你第一次输入时有 "MOM_Abort" 和元标记 "NOT LOCAL"。第二次已经是"local".
为什么这对我来说如此重要:在实际项目中,我会在它们旁边显示有关关键字的文档,但当 Ace Editor 用局部变量覆盖它们时,它们就会消失。我尝试了一些方法,但没有发现任何有效的方法。
我希望局部变量具有较低的优先级,因为我不想将它们全部删除,这可能吗?
这是我的 Ace 编辑器代码:
http://jsfiddle.net/9eh00xtc/1/
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
var langTools = ace.require("ace/ext/language_tools");
editor.setOptions({
enableBasicAutocompletion: true,
enableLiveAutocompletion: true,
enableSnippets: true,
});
var completer = {
getCompletions: function(editor, session, pos, prefix, callback) {
var completions = [];
completions.push({
caption: "MOM_Abort",
snippet: "MOM_Abort",
meta: "NOT LOCAL"
});
callback(null, completions);
}
}
langTools.addCompleter(completer);
#editor {
height: 300px;
}
<script src="http://rawgit.com/ajaxorg/ace-builds/master/src-noconflict/ace.js"></script>
<script src="http://rawgit.com/ajaxorg/ace-builds/master/src-noconflict/ext-language_tools.js"></script>
<pre id="editor" style="font-family: courier;"></pre>
完成按得分排序(参见:issue)。因此,只需在完成项中添加一个 score
字段并将其设置为 1000。这将使它们首先显示。
我正在为一个项目使用 Ace Editor,但我遇到了一个小问题。
我使用 addCompleter 函数向编辑器添加了一些关键字、宏和其他内容。但是,一旦它们被写入,本地完成者似乎会覆盖所有这些。就像在这个例子中一样,你第一次输入时有 "MOM_Abort" 和元标记 "NOT LOCAL"。第二次已经是"local".
为什么这对我来说如此重要:在实际项目中,我会在它们旁边显示有关关键字的文档,但当 Ace Editor 用局部变量覆盖它们时,它们就会消失。我尝试了一些方法,但没有发现任何有效的方法。
我希望局部变量具有较低的优先级,因为我不想将它们全部删除,这可能吗?
这是我的 Ace 编辑器代码:
http://jsfiddle.net/9eh00xtc/1/
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
var langTools = ace.require("ace/ext/language_tools");
editor.setOptions({
enableBasicAutocompletion: true,
enableLiveAutocompletion: true,
enableSnippets: true,
});
var completer = {
getCompletions: function(editor, session, pos, prefix, callback) {
var completions = [];
completions.push({
caption: "MOM_Abort",
snippet: "MOM_Abort",
meta: "NOT LOCAL"
});
callback(null, completions);
}
}
langTools.addCompleter(completer);
#editor {
height: 300px;
}
<script src="http://rawgit.com/ajaxorg/ace-builds/master/src-noconflict/ace.js"></script>
<script src="http://rawgit.com/ajaxorg/ace-builds/master/src-noconflict/ext-language_tools.js"></script>
<pre id="editor" style="font-family: courier;"></pre>
完成按得分排序(参见:issue)。因此,只需在完成项中添加一个 score
字段并将其设置为 1000。这将使它们首先显示。