我是Ace的新手,我正在制作一个JavaScript编辑器。我在编辑器中添加了自动填充程序:
var employeeId = 'abc123';
function foo() {
employeeId();
return;
function employeeId() {
console.log(typeof employeeId);
}
}
foo();
自动完成后:
但是我想在完成后将插入符号放在圆括号之间,如下所示:
这样可以更方便地添加函数参数
无论如何都要在JavaScript中执行此操作吗?感谢
答案 0 :(得分:1)
自动完成后,您可以使用Ace的goToLine功能将光标设置在括号之间。
//Once you Insert the brackets ()
var pos = editor.selection.getCursor(); //Take the latest position on the editor
editor.gotoLine(pos.row + 1, pos.column + 2); //This will set your cursor in between the brackets
对于回调,您可以使用自动填充 insertMatch
var functionCompleter = {
getCompletions: function(editor, session, pos, prefix, callback) {
var funcList = ["foo", "bar"]
callback(null, funcList.map(function(word) {
return {
caption: word,
value: word + "()",
meta: "Custom Functions"
completer: {
insertMatch: function(editor, data) {
console.log(data.value); // This should give the completed keyword
// Here you can get the position and set the cursor
}
}
};
}));
}
}
editor.completers.push(functionCompleter);