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 を追加するまでは、その後、コードのある時点から、その後のすべてのインデントが乱雑になります。すべての行の構文記号は正しいですが、アンカーの位置はすべて間違っています。同じレベルで { を認識できないようですが、上位レベルでそれらの前のいくつかの { にアンカーしているようです。
さらに奇妙なことに、これらのプリプロセッサ マクロを再度削除しても、インデントは回復しません。
さらに奇妙なことに、後で理由もなく回復することもありました。どの操作がこれを引き起こしたのかはわかりませんが、最も可能性が高いのは「保存」「リバートバッファ」などだと思います.
誰かが理由を理解できることを願っています、事前に感謝します。