代码镜像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;
}
}
});
});