2010-06-19 76 views
3

在方法声明之后,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。

+1

试着用'emacs -Q'。仍然看起来像'.emacs'中的东西混乱。另外,检查这个缩进是否实际上是通过制表符,并且制表符宽度有问题。 – doublep 2010-06-19 22:46:58

+0

我同意@doublep - 我试过你的代码片段(没有JDE),并得到你想要的缩进。 – 2010-06-21 15:23:15

+0

在'emacs -Q'开始之后加载相同的文件看起来像我所期待的,所以在'.emacs'中确实很有趣。 cc-mode文档在解决具体问题时没有什么帮助,但我会到达那里。 – MHarris 2010-07-05 18:41:26

回答

2

虽然我不确定是什么原因导致您的JDEE问题,但我建议您尝试使用malabar-mode。它是Emacs中唯一一个融合了现代材料(例如与maven和groovy集成)的Java模式,并且正在积极开发之中......

除此之外 - 我敢肯定,基本Java缩进与JDEE甚至使用较老的java模式),所以这个问题可能是由你的配置引起的(尤其是我想的cc模式配置)。

+0

之前没有听说过马拉巴模式,看起来最令人印象深刻。干杯! – MHarris 2010-07-05 18:42:14