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

Ste*_*fan 13 java eclipse formatter word-wrap

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

当添加具有不同符号的数字时,操作员对我来说比数字更重要.让前面的操作员更好地阅读语句会很好:

一个.

int foo =  baaa
           + veryveryveryloooooongexpression
           - shortexpression
           + anotherexpression;
Run Code Online (Sandbox Code Playgroud)

B.

int foo =  baaa +
           veryveryveryloooooongexpression -
           shortexpression +
           anotherexpression;
Run Code Online (Sandbox Code Playgroud)

另一方面,在添加字符串时,操作符只是用于继续行,而String项对我来说更重要.一行末尾的操作符给出了一个暗示,即下一行中会发生一些事情.因此我想在字符串运算符之后使用换行:

B.

String message = "Would you like to use line wrapping at " + position +
                 " ? If you want to keep that behavior press Enter."
Run Code Online (Sandbox Code Playgroud)

一个.

 String message = "Would you like to use line wrapping at " + position
                  +" ? If you want to keep that behavior press Enter."
Run Code Online (Sandbox Code Playgroud)

相关文章:

(在某些情况下,当然可以更好地改进代码并使用单行,使用String.format(...)或使用String Builder.这不是问题.)

如何在Eclipse中为两种不同的情况应用不同的换行设置A.(在操作符之前)和B.(在操作符之后)(第一项是String与第一项是其他的东西)?是否有一些我没看到的默认设置?是否有Eclipse插件可以这样做?

(还有一些评论:

  • 编辑:以下注释仅对Eclipse 4.4.2(Luna)有效,并已在Eclipse 4.5(Mars)中修复:

操作符(B.)在函数调用中包装String参数时,我没有得到包装,即使我想在两种情况下都应用它.我为二进制表达式启用了"Wrap before operator"选项,并禁用了常规选项"Never join already wrapped lines".然而,以下示例中的+运算符出现在下一行中.我在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");
Run Code Online (Sandbox Code Playgroud)
  • 如果我在String的中间点击Return,则eclipse会正确地在操作符之前或之后包装该行,具体取决于二进制表达式的"Wrap before operator"设置.

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

)

Ste*_*fan 0

此问题已在 4.11 M1 版本中修复。另请参阅

https://bugs.eclipse.org/bugs/show_bug.cgi?id=543079