CodeMirror:捕获Enter键可防止换行

时间:2013-04-21 08:34:09

标签: javascript codemirror

我使用CodeMirror 3.12的extraKeys选项来检测用户何时开始新行:

extraKeys: {
    "Enter": onNewLine
}

onNewLine()只执行console.log()。现在CodeMirror忽略该密钥。你不能再开始新的一条线了。有没有办法在新线事件上连接其他功能而不会干扰CodeMirror内部?我只是想分析最近封闭的行的文字。

2 个答案:

答案 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函数在用户按下回车键时缩进当前行。