在Java的try-with-resources中使用Parenthesis设置缩进

时间:2015-07-01 16:20:36

标签: java eclipse formatting indentation

我喜欢格式化Java的try-with-resources,如下所示:

try
(
   FileInputStream     input   = new FileInputStream("data.txt");
   BufferedInputStream buffer  = new BufferedInputStream(input);
   InputStreamReader   convert = new InputStreamReader(buffer);
   LineNumberReader    parse   = new LineNumberReader(convert);
)
{
   // process the data in the file
}

首先,我在括号之间用插入符号写下以下内容:

try
(|)

然后按下回车键,Eclipse将代码格式化为:

try
(
         )

右括号是右边9个空格。我的缩进设置设置为使用3个空格。如何在按Enter键时将Eclipse配置为执行以下操作?

try
(

)

2 个答案:

答案 0 :(得分:3)

这由Java管理 - >代码风格 - >格式化程序 - >线包装 - >包装线的默认缩进。 (设置为0以达到所需效果)

不幸的是,AFAIK根据上下文不能设置不同的缩进(即,您不能仅为try设置缩进,它将用于所有包装)。

查看几个相关问题:
Can the Eclipse formatter be configured to indent multiple lines between parenthesis properly?
Can Eclipse's Java formatter indent wrapped lines differently than new blocks?

答案 1 :(得分:1)

就像Edwin(漂亮的个人资料图片)所说的那样,eclipse就是这样做的,因为大多数理智的代码都希望在这种情况下缩进。

您可以转到Window>停用此功能。偏好> Java>编辑>键入,然后取消选中" Enter键调整新行上的缩进"缩进部分下的复选框:

请注意,这将禁用所有自动缩进,这似乎也会禁用插入大括号的好功能,因此它可能不值得。

您还可以考虑转到Window>创建模板。偏好> Java>编辑>模板。你可以修改现有的try模板,虽然我的快速修补显示总是添加缩进,即使我没有选中上面的复选框。