2013-04-29 30 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; 
      } 
     } 
    }); 
});