【问题标题】:CodeMirror: Catching Enter Key prevents line breaksCodeMirror:捕获 Enter 键可防止换行
【发布时间】:2013-04-21 08:34:09
【问题描述】:

我使用 CodeMirror 3.12 的 extraKeys-option 来检测用户何时开始换行:

extraKeys: {
    "Enter": onNewLine
}

onNewLine() 只做一个 console.log()。现在 CodeMirror 会忽略该键。你不能再开始新的生产线了。有没有办法在不干扰 CodeMirror 内部的情况下在换行事件上连接附加功能?我只是想分析一下最近关闭的行的文字。

【问题讨论】:

标签: javascript codemirror


【解决方案1】:

我发现返回 CodeMirror.Pass 也可以:

function onNewLine(e) {
    console.log("Enter key was pressed!");
    return CodeMirror.Pass;
}

来自文档:

键处理函数可能会返回 CodeMirror.Pass 以表明它已决定不处理该键,并且应该让其他处理程序(或默认行为)轮流。

即使处理程序确实执行了操作,这似乎也有效。在我的例子中,当用户按下回车键时,我使用 editor.indentLine 函数来缩进当前行。

【讨论】:

    【解决方案2】:

    在 onNewLine 函数的末尾添加一个换行符。 这应该工作

     function onNewLine(e){
        console.log(e);
        editor.replaceSelection("\n" ,"end");
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 2014-12-18
      • 2013-07-12
      相关资源
      最近更新 更多