我正在使用Codemirror
编辑器javascript
模式
Javascript
模式缩进在一个地方工作正常。
当光标位于右括号之前时按Enter键,缩进不起作用。
function myFunction(){
}
光标保持在右括号前面。 请帮忙
答案 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;
}
}
});
});