如何在 Java 的 Eclipse 中对字符串和其他项目使用不同的换行
How to use different line wrapping for strings and other items in Eclipse for Java
我想在 Java.
的 Eclipse 中,对字符串在运算符后换行,对其他项目(数字、自定义对象等)在运算符前换行
在添加不同符号的数字时,运算符对我来说比数字更重要。最好让操作员在前面更好地阅读语句:
A.
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."
对比
A.
String message = "Would you like to use line wrapping at " + position
+" ? If you want to keep that behavior press Enter."
相关文章:
Change how eclipse formatter wraps long strings
https://softwareengineering.stackexchange.com/questions/93670/line-break-before-after-operator
StringBuilder vs String concatenation in toString() in Java
(在某些情况下,改进代码并使用单行、使用 String.format(...) 或使用字符串生成器当然可能更好。这不是这里的问题。 )
如何在 Eclipse 中为两种不同的情况(第一项是字符串与第一项是其他内容)应用不同的换行设置 A.(运算符之前)和 B.(运算符之后)?是否有一些我没有看到的默认设置?有没有可以这样做的 Eclipse 插件?
(再评论几条:
- 编辑: 以下评论仅对 Eclipse 4.4.2 (Luna) 有效,并已在 Eclipse 4.5 (Mars) 中修复:
在函数调用中包装 String 参数时,我没有让运算符 (B.) 之后的包装正常工作,即使我想在这两种情况下都应用它。我为二进制表达式启用了选项 "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");
如果我在字符串中间点击 Return,eclipse 会在运算符之前或之后正确换行,具体取决于二进制表达式的设置 "Wrap before operator"。
checkstyle 模块 Whitespace=>Operator Wrap 不支持额外的字符串连接设置。
)
使用 on/off 标签为特定代码块禁用 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
on/off 功能必须 "ON"。在 Eclipse 首选项中:Java > 代码样式 > 格式化程序。单击 "Edit" 按钮,"Off/On Tags",勾选 "Enable Off/On tags"
我刚找到另一个选项:在每行末尾使用“+//”:
String message = "Would you like to use line wrapping at " + position + //
" ? If you want to keep that behavior press Enter."
此问题已在 4.11 M1 版中修复。另见
我想在 Java.
的 Eclipse 中,对字符串在运算符后换行,对其他项目(数字、自定义对象等)在运算符前换行在添加不同符号的数字时,运算符对我来说比数字更重要。最好让操作员在前面更好地阅读语句:
A.
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."
对比
A.
String message = "Would you like to use line wrapping at " + position
+" ? If you want to keep that behavior press Enter."
相关文章:
Change how eclipse formatter wraps long strings
https://softwareengineering.stackexchange.com/questions/93670/line-break-before-after-operator
StringBuilder vs String concatenation in toString() in Java
(在某些情况下,改进代码并使用单行、使用 String.format(...) 或使用字符串生成器当然可能更好。这不是这里的问题。 )
如何在 Eclipse 中为两种不同的情况(第一项是字符串与第一项是其他内容)应用不同的换行设置 A.(运算符之前)和 B.(运算符之后)?是否有一些我没有看到的默认设置?有没有可以这样做的 Eclipse 插件?
(再评论几条:
- 编辑: 以下评论仅对 Eclipse 4.4.2 (Luna) 有效,并已在 Eclipse 4.5 (Mars) 中修复:
在函数调用中包装 String 参数时,我没有让运算符 (B.) 之后的包装正常工作,即使我想在这两种情况下都应用它。我为二进制表达式启用了选项 "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");
如果我在字符串中间点击 Return,eclipse 会在运算符之前或之后正确换行,具体取决于二进制表达式的设置 "Wrap before operator"。
checkstyle 模块 Whitespace=>Operator Wrap 不支持额外的字符串连接设置。
)
使用 on/off 标签为特定代码块禁用 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
on/off 功能必须 "ON"。在 Eclipse 首选项中:Java > 代码样式 > 格式化程序。单击 "Edit" 按钮,"Off/On Tags",勾选 "Enable Off/On tags"
我刚找到另一个选项:在每行末尾使用“+//”:
String message = "Would you like to use line wrapping at " + position + //
" ? If you want to keep that behavior press Enter."
此问题已在 4.11 M1 版中修复。另见