如何在 Eclipse for Java 中对字符串和其他项目使用不同的换行

2022-09-04 23:12:04

我想在 Eclipse for Java 中对字符串使用运算符后换行,对其他项目(数字、自定义对象,..)使用运算符前换行。

当用不同的符号添加数字时,运算符对我来说比数字更重要。如果前面的操作员能够更好地阅读声明,那就太好了:

一个。

int foo =  baaa
           + veryveryveryloooooongexpression
           - shortexpression
           + anotherexpression;

与。

B.

int foo =  baaa +
           veryveryveryloooooongexpression -
           shortexpression +
           anotherexpression;

另一方面,在添加字符串时,运算符仅用于继续行,字符串项对我来说更重要。行末尾的运算符发出提示,指示下一行中发生了某些事情。因此,我想在字符串运算符之后使用换行:

B.

String message = "Would you like to use line wrapping at " + position +
                 " ? If you want to keep that behavior press Enter."

与。

一个。

 String message = "Would you like to use line wrapping at " + position
                  +" ? If you want to keep that behavior press Enter."

相关文章:

(在某些情况下,改进代码并使用单行,使用String.format(...)或使用字符串生成器当然会更好。这不是这里的问题。

如何在 Eclipse 中为两种不同的情况(第一项是字符串,第一项是其他项)应用不同的换行设置 A.(运算符之前)和 B.(运算符之后)?是否有一些我没有看到的默认设置?有没有一个Eclipse插件可以做到这一点?

(再多说几句:

  • 编辑:以下注释仅适用于Eclipse 4.4.2(Luna),并且已经在Eclipse 4.5(Mars)中修复:

在将 String 参数包装在函数调用中时,我没有得到包装后运算符 (B.) 正常工作,即使我想同时应用它来应用这两种情况。我为二进制表达式启用了“运算符前换行”选项,并禁用了常规选项“从不加入已换行”。但是,以下示例中的 + 运算符出现在下一行中。我在 https://bugs.eclipse.org/bugs/show_bug.cgi?id=466919 下提交了错误报告。

    statusBuilder.append("This set is not yet present in the database!\n"
                    + "You can save it by hitting the 'Save' button below.\n");

  • 如果我在字符串中间按 Return 键,eclipse 会正确地在运算符之前或之后换行,具体取决于二进制表达式的“运算符前换行”设置。

  • checkstyle 模块 Whitespace=>Operator Wrap 既不支持字符串串联的额外设置。

)


答案 1

使用开/关标记禁用特定代码块的 Eclipse 代码格式化程序。这迫使您自己格式化代码,但它至少可以让您完全控制代码的外观。

//@formatter:off
String message = "Would you like to use line wrapping at " + position +
                 " ? If you want to keep that behavior press Enter."
//@formatter:on

开/关功能必须“打开”。在 Eclipse 首选项中:Java >代码样式>格式化程序。单击“编辑”按钮,“关闭/打开标签”,选中“启用关闭/打开标签”


答案 2

我刚刚找到了另一个选项:在每行的末尾使用“+ //”:

String message = "Would you like to use line wrapping at " + position + //
             " ? If you want to keep that behavior press Enter."

推荐