6

Sublime Text 2 では、再インデント (編集 -> 行 -> 再インデント) は、Javascript コードに特定のコメント スタイルが存在する場合にバグが発生するようです。単一行の C スタイルのコメント ( /* ... */) のみが適切に機能します。

たとえば、次のインデントされていないコードを考えてみましょう。

$(window).load(function () {
/* Single-line C-style comment */
var $player = $('#player');
/* Multiple-line 
C-style comment */
var $player = $('#player');
// Single-line C++-style comment
var $player = $('#player');  
// Multiple-line
// C++-style comment
var $player = $('#player');        
}

ブロック全体を再インデントすると、次のようになります。

$(window).load(function () {
    /* Single-line C-style comment */
    var $player = $('#player');
    /* Multiple-line 
    C-style comment */
    var $player = $('#player');
    // Single-line C++-style comment
    var $player = $('#player');  
    // Multiple-line
    // C++-style comment
    var $player = $('#player');        
}

代わりに、次のようになります。

$(window).load(function () {
    /* Single-line C-style comment */
    var $player = $('#player');
/* Multiple-line 
C-style comment */
var $player = $('#player');
// Single-line C++-style comment
var $player = $('#player');  
// Multiple-line
// C++-style comment
var $player = $('#player');        
}

単一行の C スタイルのコメントが最初に表示される限り、それとそれに続く行の両方がインデントされます。他のコメントがどのような順序で表示されても、それらのコメントもそれに続く行もインデントされません。

ここでの本当の問題は、これらのコメントでインデントが失敗するだけでなく、コメントに続いて通常は機能するインデントが壊れてしまうことです。個々の行で再インデント コマンドを使用すると、コメントも含めて適切にインデントされます。

この動作に関する手がかりはありますか?

4

0 に答える 0