在Eclipse格式化程序中强制使用花括号“相同的行”

时间:2011-10-19 10:58:14

标签: eclipse formatting code-formatting

在我的java代码格式化程序中,在我的配置文件中,我(实际上是eclipse的默认值)“braces”选项卡中的所有选项都设置为“same line”。然而,当我有一段这样的代码时:

interface TestI
    {
}

我调用格式化程序(键绑定,上下文菜单,等等)我得到的是

interface TestI
{
}

它不会将开口大括号移动到同一行,同样适用于方法,控制语句等等,然后当我手动将其更改为

interface TestI      {
}

然后将其格式化为:

interface TestI {
}

因此它通常尊重我手动执行的格式,但只格式化大括号和其他元素之间的空格。

格式化程序中的其他格式设置选项与指定的一样。我正在使用最新的Eclipse Indigo版本3.7.1,我和3.7一样,我的朋友尝试使用3.5版本,所以它让我认为这是有目的的,但是为什么还有这个“括号” “如果我无法使用此规则重新格式化代码,则选项卡...

我希望我错过了一些东西,你会让我在一瞬间愚蠢而且问题会消失,因为我有很多班级要清理,而且我不想手工做。 :)

更新:当我将规则设置为“同一行”而不是“下一行”时,格式化按预期工作,无论我如何编写代码,它都会强制执行规则,只要我将其更改回“同一行“格式化程序不强制执行此规则。

2 个答案:

答案 0 :(得分:14)

发现它......它是由:

引起的
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/> 

在Formatter设置GUI中的“Line Wrapping / Never join has wrapped wra lines”

是的,现在我记得设置它,但我从未想过这会覆盖括号设置......

格式化程序的一个不错的功能是,如果您设置了无操作选项,因为您已设置的其他选项会覆盖它们。

答案 1 :(得分:0)

对于那些想知道如何将其应用于数组初始化程序的人,设置为

  • New Lines > After opening brace of array initializer
  • New Lines > Before closing brace of array initializer