代码镜像javascript缩进问题

代码镜像javascript缩进问题,javascript,codemirror,Javascript,Codemirror,我正在使用codemirr编辑器和javascript模式 Javascript模式缩进除了在一个位置外工作正常 当光标位于右括号之前时,我按enter键时,缩进不起作用 function myFunction(){ } 光标停留在右括号之前。 请帮助如果我理解正确,您将光标放在代码中“|”的位置: function myFunction() {|} …然后按Enter键。我猜你在期待类似的事情 function myFunction() { | } 这不是CodeMirror的默

我正在使用
codemirr
编辑器和
javascript
模式
Javascript
模式缩进除了在一个位置外工作正常

当光标位于右括号之前时,我按enter键时,缩进不起作用

function myFunction(){
}
光标停留在右括号之前。
请帮助

如果我理解正确,您将光标放在代码中“|”的位置:

function myFunction() {|}
…然后按Enter键。我猜你在期待类似的事情

function myFunction() {
    |
}
这不是CodeMirror的默认行为,但是您可以编写一个相当简单的附加组件来更改它。这是一个粗略的开端:

CodeMirror.defineInitHook(function (codeMirror) {
    codeMirror.addKeyMap({
        name: "fixEnterWithinBraces",
        Enter: function (codeMirror) {
            if (codeMirror.somethingSelected()) return CodeMirror.Pass;

            var cursorPos = codeMirror.getCursor();
            var line = codeMirror.getLine(cursorPos.line);
            if (line.substr(cursorPos.ch - 1, 2) === "{}") {
                codeMirror.replaceRange("\n\n", cursorPos);
                codeMirror.setCursor(cursorPos.line + 1, 0);
                codeMirror.indentLine(cursorPos.line + 1);
            } else {
                return CodeMirror.Pass;
            }
        }
    });
});

如果我理解正确,您将光标放在代码中“|”的位置:

function myFunction() {|}
…然后按Enter键。我猜你在期待类似的事情

function myFunction() {
    |
}
这不是CodeMirror的默认行为,但是您可以编写一个相当简单的附加组件来更改它。这是一个粗略的开端:

CodeMirror.defineInitHook(function (codeMirror) {
    codeMirror.addKeyMap({
        name: "fixEnterWithinBraces",
        Enter: function (codeMirror) {
            if (codeMirror.somethingSelected()) return CodeMirror.Pass;

            var cursorPos = codeMirror.getCursor();
            var line = codeMirror.getLine(cursorPos.line);
            if (line.substr(cursorPos.ch - 1, 2) === "{}") {
                codeMirror.replaceRange("\n\n", cursorPos);
                codeMirror.setCursor(cursorPos.line + 1, 0);
                codeMirror.indentLine(cursorPos.line + 1);
            } else {
                return CodeMirror.Pass;
            }
        }
    });
});