Java 在Eclipse中,在注释之前和之后没有换行符

Java 在Eclipse中,在注释之前和之后没有换行符,java,eclipse,comments,format,alignment,Java,Eclipse,Comments,Format,Alignment,我一直是一个“对齐花括号”的人。使用宽监视器时,我会在代码后添加长注释。所以在Eclipse中,我想做如下格式化工作: if(foo) { something(); } else { somethingElse(); } if(foo) //if foo is true { something(); } else //if no foo { somethingElse(); } 精细;那很容易。但我要补充一点: if(foo) //if foo is true { s

我一直是一个“对齐花括号”的人。使用宽监视器时,我会在代码后添加长注释。所以在Eclipse中,我想做如下格式化工作:

if(foo)
{
  something();
}
else
{
  somethingElse();
}
if(foo)  //if foo is true
{
  something();
}
else
//if no foo
{
  somethingElse();
}
精细;那很容易。但我要补充一点:

if(foo)  //if foo is true
{
  something();
}
else  //if no foo
{
  somethingElse();
}
Dratted Eclipse将其格式化如下:

if(foo)
{
  something();
}
else
{
  somethingElse();
}
if(foo)  //if foo is true
{
  something();
}
else
//if no foo
{
  somethingElse();
}
太好了。那整条废话。而且它看起来很丑。它甚至不精确,因为我想注释
else

如何让Eclipse使用对齐的大括号格式化我的
if
/
else
,但允许我的注释与
else
位于同一行

这是在Eclipse4.2.2上测试的,我刚刚确认它在Eclipse4.3M7中也不起作用

我已就此问题提交了一份文件;让我们看看Eclipse开发人员要说什么。

在Eclipse概要文件中,注释选项卡上有一个选项“保留代码和行注释之间的空白”,您可以试试看它是否有效

编辑:

我想我明白了:在格式化编辑中,转到
大括号
选项卡,将
作为
同一行
。因为我在这里改变了很多,我不确定这是唯一需要的。但这是必要的。 控制语句上的if中的
在else之前插入新行也被标记

  • 转到首选项
  • 在搜索框中键入“格式”
  • 在树中选择“Java->Code style->Formatter”
  • 单击“编辑…”按钮
  • 转到“评论”选项卡
  • 选择“保留代码和行注释之间的空白”
  • 这在伽利略中为我做到了。

    我正在使用EclipseIndigo(3.7),我所要做的就是 控制语句->选中“在“if”语句中的“else”之前插入换行符”。 (内部属性/Java代码样式/格式化程序/编辑…)

    我使用的是默认Eclipse内置模板的副本。 如果您确定没有篡改内置模板,请告诉我们您使用的版本。

    我使用Eclipse Juno(3.8.1)和默认的Eclipse内置模板作为java代码格式化程序。我的代码看起来就像你想要的

    我甚至不需要改变克莱伯兹在回答中提到的选项


    您使用的是哪种Eclipse版本和代码格式化程序模板?

    谢谢,但是有很多替代方案。我可以停止使用对齐的大括号。我可以用另一个IDE。我可以切换到使用缩进代替大括号的编程语言。但是你知道程序员——我们是一群挑剔的人,我们有自己的编码方式。如果我认为另一种方式更适合我,我会这么做。但我喜欢我的编码风格,我希望我的工具Eclipse能与我合作,而不是与我作对。我想我能找到一些模糊的选项来设置它,但我看不到它。我也想知道这一点。正如“删除注释”一样,我坚信代码不是文档。在代码中有太多注释很少是一个问题。并不是所有的评论都是好的,甚至不是所有的评论都是有用的,但答案是写更好的评论,而不是抛弃它们。我将与您一起寻找一种方法,以您希望的方式对其进行格式化。谢谢,@rcook;你说了所有我想说的话。@rcook你使用的是什么Eclipse版本?当你说Eclipse像这样格式化代码时,你的意思是使用右键单击->源代码->格式化选项?我说的“不工作”是指它不符合OP的要求。我也试过“启用行注释格式”这句话,但它也不行。这在Eclipse 4.2.x中不起作用,我刚刚确认它在Eclipse 4.3M7中不起作用。这与@joaonlima answer相同。rcook尝试了它,但它不起作用。有时在Eclipse中有不同的路径指向同一个选项,这条路径对我有效,所以我准确地描述了如何到达那里。这在Eclipse 4.2.x中不起作用,我刚刚确认它在Eclipse 4.3M7中不起作用。这在Eclipse 4.2.x中不起作用,我刚刚确认它在Eclipse4.3M7中不起作用。此外,为什么“在'else'语句之前”的设置与
    else
    语句之后出现的注释和换行有关。无论如何,这在Eclipse4.3M7中不起作用;我现在使用的是Eclipse4.3M7。