Codemirror javascript缩进问题

时间:2013-04-29 20:46:24

标签: javascript codemirror

我正在使用Codemirror编辑器javascript模式 Javascript模式缩进在一个地方工作正常。

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

function myFunction(){
}

光标保持在右括号前面。 请帮忙

1 个答案:

答案 0 :(得分:3)

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

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;
            }
        }
    });
});