我使用CodeMirror 3.12的extraKeys选项来检测用户何时开始新行:
extraKeys: {
"Enter": onNewLine
}
onNewLine()只执行console.log()。现在CodeMirror忽略该密钥。你不能再开始新的一条线了。有没有办法在新线事件上连接其他功能而不会干扰CodeMirror内部?我只是想分析最近封闭的行的文字。
答案 0 :(得分:3)
在onNewLine函数末尾添加换行符。 这应该工作
function onNewLine(e){
console.log(e);
editor.replaceSelection("\n" ,"end");
}
答案 1 :(得分:0)
我发现返回CodeMirror.Pass也有效:
function onNewLine(e) {
console.log("Enter key was pressed!");
return CodeMirror.Pass;
}
来自文档:
密钥处理函数可以返回CodeMirror.Pass以指示它已决定不处理密钥,并且应该给出其他处理程序(或默认行为)。
即使处理程序执行操作,这似乎也能正常工作。在我的情况下,我使用editor.indentLine函数在用户按下回车键时缩进当前行。