我们在这里有一个非常奇怪的编码约定,我没有设法在Eclipse中设置Java Formatter来做我想要的。惯例说:
[UPDATE] 我们的会议中没有规则说,如果“{”之后应该是换行符。这些例子实际上使用换行符(我到目前为止看到的几乎任何约定都表示或暗示在“{”和“}”之后应该总是换行符)。因此,样本1和2都是“语法正确的”。 [/ UPDATE]
由于这会破坏代码,我们的团队决定编写这样的代码(不,这不是我的选择!):
public void methode(final boolean b)
{ if (b)
{ do.something();
}
else
{ do.somethingElse();
}
}
但是在格式化程序中我只能设法得到这个:
public void methode(final boolean b)
{
if (b)
{
do.something();
}
else
{
do.somethingElse();
}
}
或者这个:
public void methode(final boolean b) {
if (b) {
do.something();
}
else {
do.somethingElse();
}
}
有没有办法告诉格式化程序在“{”之前断行但不是之后?我知道第一种风格很糟糕,我很乐意使用最后两种风格中的一种,但这是公司的决定。
答案 0 :(得分:2)
所以,这里有关于这个主题的信息。我做了一些更多的研究。这里如此恶名的Brace-Style(样本1)有一个名称:The Horstman Brace Style或Horstman。有一小群人为它辩护,因为它结合了K& R和Allman(样本2)风格的优点。由于支架排成一列,没有“浪费”的空间。
但这不是唯一真实的。这种风格对于VCS来说很糟糕。如果你需要在左大括号和第一个语句之间添加一行,你首先要打破这一行,然后把你的新行放在那里。在差异或合并中,您将看到不是“已添加一行”,而是“一行已被两行交换”。但实际上陈旧的陈述是由你改变的。
另一个论点,不要使用这种风格。
答案 1 :(得分:0)
您是否可以关闭代码格式化程序的相关部分并改为使用模板。例如,当键入
时private_
并按ctrl + space将调用private_method模板。然后,您可以将私有模板修改为类似的内容 -
private ${return_type} ${name}(${})
{ ${cursor}
}
您必须对其他块语句执行类似操作,并且您必须修改编码样式以更频繁地开始使用模板,但我认为它可以正常工作。