2013-04-29 33 views
2

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

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

function myFunction(){ 
} 

光标停留在右括号之前。 请帮忙

回答

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