如何在 ace 编辑器中添加我自己的完成器
How to add my own completer in ace editor
现在我正在为我的数据库后端开发一个简单的基于 Web 的编辑器。我发现ace自带autocompleter,如果我只需要complete with SQL关键字,我应该如何添加自己的规则?
只需添加:
editor.session.setMode("ace/mode/sql");
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true
});
enableLiveAutocompletion 属性将允许实时弹出
首先,激活您提到的 enableLiveAutocompletion,您还必须确保已定义 enableBasicAutocompletion
并将其设置为 true
(见下文)。
editor.session.setMode("ace/mode/sql");
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true
});
要添加新的完成者,请执行 eemp 在 github (here) 中提到的操作。
let langTools = ace.require('ace/ext/language_tools');
然后使用addCompleter
方法添加如下定义的补全:
var customCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
// your code
/* for example
* let TODO = ...;
* callback(null, [{name: TODO, value: TODO, score: 1, meta: TODO}]);
*/
}
}
langTools.addCompleter(customCompleter);
你也可以去看看下面的:
现在我正在为我的数据库后端开发一个简单的基于 Web 的编辑器。我发现ace自带autocompleter,如果我只需要complete with SQL关键字,我应该如何添加自己的规则?
只需添加:
editor.session.setMode("ace/mode/sql");
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true
});
enableLiveAutocompletion 属性将允许实时弹出
首先,激活您提到的 enableLiveAutocompletion,您还必须确保已定义 enableBasicAutocompletion
并将其设置为 true
(见下文)。
editor.session.setMode("ace/mode/sql");
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true
});
要添加新的完成者,请执行 eemp 在 github (here) 中提到的操作。
let langTools = ace.require('ace/ext/language_tools');
然后使用addCompleter
方法添加如下定义的补全:
var customCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
// your code
/* for example
* let TODO = ...;
* callback(null, [{name: TODO, value: TODO, score: 1, meta: TODO}]);
*/
}
}
langTools.addCompleter(customCompleter);
你也可以去看看下面的: