EclipseJava格式化程序。在花括号前换行,但在花括号后不换行
在这里,我们有一个非常奇怪的编码约定,我没有在Eclipse中成功地设置Java格式化程序来做我想做的事情。公约规定:
- 在大括号“{”之前,应该总是有一个新行
[更新] 我们的惯例中没有规定,{之后是否应该是换行符。这些例子实际上使用了换行符(到目前为止,我看到的几乎所有惯例都说或暗示,{和}之后应该始终是换行符)。因此,示例1和2都是“语法正确的”。 [/更新]
由于这破坏了代码,我们的团队决定这样编写代码(不,这不是我的选择!)
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();
}
}
有没有办法告诉格式化程序在“{”之前换行,但在“{”之后不换行?我知道第一种样式很糟糕,我很乐意使用最后两种样式中的一种,但这是公司的决定
# 1 楼答案
您是否可以关闭代码格式化程序的相关部分,改用模板。例如在打字时
点击ctrl+space将调用private_方法模板。然后,您可以将私有模板修改为如下内容-
您必须执行与其他block语句类似的操作,并且必须修改您的编码风格,以便更频繁地开始使用模板,但我认为它可以工作
# 2 楼答案
所以,这里有一个关于这个主题的信息。我做了更多的研究。此处令人厌恶的大括号样式(示例1)有一个名称:The Horstman Brace Style或此处Horstman。有一小群人在为它辩护,因为它结合了K&;R和奥尔曼(示例2)样式。由于支架排列整齐,因此不会“浪费”空间
但事实并非如此。这种风格对风投公司来说是痛苦的。如果需要在大括号和第一条语句之间添加一行,则首先需要打断该行,并将新行放在那里。在差异或合并中,您将看到的不是“添加了一行”,而是“两行交换了一行”。但是你改变了原来的说法
所以另一个论点是,不要使用这种风格