在方法聲明之後,Java模式似乎是取消縮進而不是縮進。Java模式縮進
我的意思是我希望看到這一點:
class GoodExample {
public void method() {
allNicelyIndented();
noProblemsHere();
}
}
但是,相反會得到:
class CrazyIndenting {
public void method() { // ((inclass 134) (topmost-intro 326))
whyIsThisUnindented(); // ((defun-block-intro 379))
itsMessingWithMyHead(); // ((statement 454))
}
}
M-x c-set-style RET java
然後C-x h C-M-\
確認它是使用Java的方式爲全緩衝。
使用cc模式interactive features,C-c C-s
給出了我在錯誤地格式化後的代碼中放入註釋的符號,並且C-c C-o
建議了看起來合理的默認值。 (0,+和0按降序排列)
翻看我的.emacs,我看不到任何可能會與cc-mode混淆的東西,所以我有點卡住接下來要調查的方向。聲明的unindent小於方法聲明的縮進(2「空格」而不是4),所以也許有一些標籤/空間的混淆?
版本:Emacs 22.2.1,JDE 2.3.5.1和CC-mode 5.31.5。
試着用'emacs -Q'。仍然看起來像'.emacs'中的東西混亂。另外,檢查這個縮進是否實際上是通過製表符,並且製表符寬度有問題。 – doublep 2010-06-19 22:46:58
我同意@doublep - 我試過你的代碼片段(沒有JDE),並得到你想要的縮進。 – 2010-06-21 15:23:15
在'emacs -Q'開始之後加載相同的文件看起來像我所期待的,所以在'.emacs'中確實很有趣。 cc-mode文檔在解決具體問題時沒有什麼幫助,但我會到達那裏。 – MHarris 2010-07-05 18:41:26