在 Eclipse 中为 Java 的 try-with-resources 设置括号之间的缩进

Set Indentation between Parenthesis for Java's try-with-resources in Eclipse

我喜欢将 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 个空格。如何配置 Eclipse 在按下回车键时执行以下操作?

try
(

)

正如 Edwin(漂亮的头像)所说,eclipse 之所以如此,是因为在这种情况下,大多数理智的代码都希望缩进。

您可以通过转至 Window > 首选项 > Java > 编辑器 > 键入,然后取消选中缩进部分下的 "Enter key adjusts the indentation on the new line" 复选框来禁用此功能:

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

您也可以考虑通过转至 Window > 首选项 > Java > 编辑器 > 模板来创建模板。您可以修改现有的 try 模板,尽管我的快速修改表明总是添加缩进,即使我取消选中上述复选框也是如此。

这由 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?