在我的java代码格式化程序中,在我的配置文件中,我(实际上是eclipse的默认值)“braces”选项卡中的所有选项都设置为“same line”。然而,当我有一段这样的代码时:
interface TestI
{
}
我调用格式化程序(键绑定,上下文菜单,等等)我得到的是
interface TestI
{
}
它不会将开口大括号移动到同一行,同样适用于方法,控制语句等等,然后当我手动将其更改为
时interface TestI {
}
然后将其格式化为:
interface TestI {
}
因此它通常尊重我手动执行的格式,但只格式化大括号和其他元素之间的空格。
格式化程序中的其他格式设置选项与指定的一样。我正在使用最新的Eclipse Indigo版本3.7.1,我和3.7一样,我的朋友尝试使用3.5版本,所以它让我认为这是有目的的,但是为什么还有这个“括号” “如果我无法使用此规则重新格式化代码,则选项卡...
我希望我错过了一些东西,你会让我在一瞬间愚蠢而且问题会消失,因为我有很多班级要清理,而且我不想手工做。 :)
更新:当我将规则设置为“同一行”而不是“下一行”时,格式化按预期工作,无论我如何编写代码,它都会强制执行规则,只要我将其更改回“同一行“格式化程序不强制执行此规则。
答案 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