首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse Java格式化程序。花括号前的新行,而不是后行

问Eclipse Java格式化程序。花括号前的新行,而不是后行
EN

Stack Overflow用户
提问于 2011-05-04 13:37:29
回答 2查看 7.9K关注 0票数 2

我们在这里有一个非常奇怪的编码约定,而我没有成功地在Eclipse中设置Java格式化程序来完成我想做的事情。该公约规定:

  • 在卷曲大括号"{“之前,应该总是有一条新的线。

更新,在我们的惯例中没有规定,如果后面的"{“应该是一个中断或不。这些示例实际上使用了一个换行符(几乎我所看到的任何约定都表示或暗示在"{“和"}”之后应该始终是行中断)。因此,示例1和2都是“语法正确”。/UPDATE

由于这破坏了代码,我们的团队决定编写这样的代码(不,这不是我的选择!)

代码语言:javascript
复制
public void methode(final boolean b)
{ if (b)
  { do.something();
  }
  else
  { do.somethingElse();
  }
}

但是在格式化程序中,我只得到了这个:

代码语言:javascript
复制
public void methode(final boolean b)
{
  if (b)
  { 
    do.something();
  }
  else
  { 
    do.somethingElse();
  }
}

或者这个:

代码语言:javascript
复制
public void methode(final boolean b) { 
  if (b) { 
    do.something();
  }
  else {
    do.somethingElse();
  }
}

有没有办法告诉格式化程序在"{“之前中断行,而不是在”{“之后?我知道第一种风格很糟糕,我很乐意使用最后两种之一,但这是公司的决定。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-08 10:40:13

这里有一个关于这个话题的信息。我做了更多的研究。这里如此令人厌恶的支撑风格(示例1)有一个名称:霍斯特曼芭蕾风格或这里的霍斯特曼。有一小群人为它辩护,因为它结合了K&R和Allman (样本2)风格的优点。因为支撑是排列的,没有“浪费”的空间。

但这并不是唯一的事实。这种风格对VCS来说很糟糕。如果需要在开头大括号和第一条语句之间添加一行,那么首先需要打破这条线,然后将新行放在那里。在diff或merge中,您将看到的不是“添加了一行”,而是“一行被两行交换”。但你改变了原来的说法。

所以另一个论点,不使用这种风格。

票数 2
EN

Stack Overflow用户

发布于 2011-05-04 14:10:58

您是否可以关闭代码格式化程序的相关部分,转而使用模板。例如,当键入

代码语言:javascript
复制
private_

点击ctrl+space将调用private_method模板。然后您可以修改私有模板如下-

代码语言:javascript
复制
private ${return_type} ${name}(${}) 
{ ${cursor}
}

您必须执行与其他块语句类似的操作,并且必须修改代码样式才能开始更频繁地使用模板,但我认为它可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5884273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档