4

Windows 用の Emacs 24.2。

case TYPE_LONG: 
 {                           <------- 65383 
   traceCodePath(20);        
   tempLongVal = iterator_long(it);  
   tempLongVal = 10; 
   if (isBigEndian()) 
   { 
     swap_endian64(&tempLongValCon, &tempLongVal); 
     traceCodePath(25);      <------- 65601 
     if (i > 0) 
       {     <------ get weird from here /* ((substatement-open 65601)) */ 
 }           <------ this line aligns with the { below "case"  /* ((block-close 65383)) */ 
 }           <------ the code afterward all align with { below "case" /* ((block-close 65383)) */

c モードのインデントは最初からうまく機能していましたが、プリプロセッサ マクロ #ifdef、#else、#end を追加するまでは、その後、コードのある時点から、その後のすべてのインデントが乱雑になります。すべての行の構文記号は正しいですが、アンカーの位置はすべて間違っています。同じレベルで { を認識できないようですが、上位レベルでそれらの前のいくつかの { にアンカーしているようです。

さらに奇妙なことに、これらのプリプロセッサ マクロを再度削除しても、インデントは回復しません。
さらに奇妙なことに、後で理由もなく回復することもありました。どの操作がこれを引き起こしたのかはわかりませんが、最も可能性が高いのは「保存」「リバートバッファ」などだと思います.

誰かが理由を理解できることを願っています、事前に感謝します。

4

1 に答える 1