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 混淆的东西,所以我有点难以找到下一步调查的方向。该语句的缩进小于方法声明的缩进(2 个“空格”而不是 4 个),所以可能存在一些制表符/空格混淆?

版本:Emacs 22.2.1、JDE 2.3.5.1 和 CC-mode 5.31.5。

4

1 回答 1

2

虽然我不确定是什么导致您使用 JDEE 出现问题,但我可以建议您改用malabar-mode。它是 Emacs 中唯一一个结合了现代东西(例如与 maven 和 groovy 集成)并且正在积极开发中的 Java 模式......

除此之外 - 我很确定基本的 Java 缩进适用于 JDEE(甚至适用于较旧的 java 模式),所以问题可能是由你的配置引起的(我猜特别是 cc 模式配置)。

于 2010-06-21T09:14:27.043 回答