3

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-modesのインタラクティブ機能を使用C-c C-sして、間違った形式のコードの後に​​コメントに入れた記号を表示し、適切C-c C-oに見えるデフォルト値を提案します。(ステートメントの降順で0、+、および0)

私の.emacsを見ると、cc-modeを台無しにしている可能性のあるものは何も見当たらないので、次に調査する方向に少し行き詰まっています。ステートメントのインデントはメソッド宣言のインデントよりも小さい(4ではなく2つの「スペース」)ので、タブ/スペースの混乱があるのではないでしょうか。

バージョン:Emacs 22.2.1、JDE2.3.5.1およびCCモード5.31.5。

4

1 に答える 1

2

JDEEで問題が発生している原因はわかりませんが、代わりにmalabarモードを試してみることをお勧めします。これは、Emacsで最新のもの(mavenやgroovyとの統合など)を組み込んだ唯一のJavaモードであり、活発に開発されています...

これ以外-基本的なJavaインデントはJDEE(および古いjava-modeでも)で問題なく機能すると確信しているので、問題はおそらくconfig(特にcc-mode構成)が原因です。

于 2010-06-21T09:14:27.043 に答える