在我的 java 代码格式化程序中,在我的个人资料中(实际上这是 eclipse 的默认设置),“大括号”选项卡中的所有选项都设置为“同一行”。不过,当我有这样一段代码时:
interface TestI
{
}
然后我调用格式化程序(键绑定(bind)、上下文菜单等)我得到的只是
interface TestI
{
}
它不会将左大括号移动到同一行,这同样适用于方法、控制语句等。然后当我手动将其更改为
interface TestI {
}
然后将其格式化为:
interface TestI {
}
所以它通常尊重我手动执行的格式,但只格式化大括号和其他元素之间的空格。
我的格式化程序中的其他格式化选项按指定工作。我正在使用最新的 Eclipse Indigo 版本 3.7.1,我在 3.7 中也有同样的情况,我的 friend 在 3.5 版本中尝试过,所以这让我觉得这是故意的,但又为什么会有这个“大括号” "如果我无法使用此规则重新格式化代码,则根本无法使用选项卡...
我希望我遗漏了一些东西,你会让我立刻变得愚蠢,问题就会消失,因为我有大量的类(class)要清理,我不想手工做.. :)
更新:当我将规则设置为不是“同一行”而是“下一行”时,格式会按预期工作,无论我如何编写代码,它都会强制执行该规则,只要我将其更改回“同一行”格式化程序不会强制执行此规则。
最佳答案
找到它...它是由以下原因引起的:
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
在格式化程序设置 GUI 中位于“换行/从不加入已经换行的行”下
是的,现在我记得设置了它,但我从没想过这会覆盖大括号设置...
格式化程序的一个不错的功能是,如果您设置了无操作的选项,因为您设置的其他选项会覆盖它们。
关于eclipse - 在 Eclipse 格式化程序中的花括号上强制 "same line",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820260/