【问题标题】:How to make Eclipse break String literal with + operator in next line?如何使 Eclipse 在下一行使用 + 运算符打破字符串文字?
【发布时间】:2012-07-20 10:15:06
【问题描述】:

(已编辑)注意:这个问题与 Eclipse 的代码格式化程序如何包装长字符串文字无关。这是手动破坏/包装字符串文字的行为


当我通过在文字中按 Enter 来破坏字符串文字时,默认行为是 Eclipse 将在我按 Enter 的位置附加 " +,并在下一行开始我的行的其余部分,并以 " 为前缀。

                            // v ENTER HERE
String longString = "abcdefghij|klmno";

String longString = "abcdefghij" +
        "klmno";

但是,正常的编码风格实践建议在运算符之前换行。有什么方法可以告诉 Eclipse 像这样破坏我的字符串?

String longString = "abcdefhij"
        + "klmno";

【问题讨论】:

  • @DeepakAzad 实际上我不是在谈论格式化程序设置。即使您使用 wrap before 运算符设置格式化程序,当您通过按 Enter 键打破字符串文字时,它也不会改变 eclipse 换行的行为。这就是我要找的:如何使字符串文字换行行为与格式化程序的设置保持一致。
  • @AdrianShum:您尝试建议的副本了吗?也许格式化程序设置也会影响您的情况。如果情况不是,而您确实尝试过,请修改您的问题。这可能会让更多人思考您的问题。
  • 我做到了,这就是为什么在我的问题中,我只关注手动破坏字符串文字。如果您尝试过看似重复的内容,您会发现一个有趣的现象:代码格式化程序将完全重新格式化手动破坏字符串文字的结果。请告知我应该如何修改我的问题,因为我认为我已经足够强调关于手动破坏字符串文字(而不是关于格式化程序)

标签: eclipse


【解决方案1】:

在 4.3 中,您可以使用 Wrap before operator 复选框控制此设置,用于 二进制表达式

【讨论】:

  • 我相信这样的设置一直存在于代码格式化程序中。以防您没有遵循问题,在问题的第一行中我已经提到:NOTE: this question is NOT about how Eclipse's code formatter wrap long String literals. It is the behavior of MANUALLY breaking/wrapping String literal 在旧版本的 Eclipse 中,手动打破长行文字的代码格式化不遵循代码格式化程序设置
  • 我刚刚回答是为了节省一些时间,因为格式化程序设置中的这个选项有点混淆。对我来说,不清楚“二进制表达式”会影响字符串换行。
【解决方案2】:

最后我发现这是 Eclipse 缺少的一项功能。

目前这个问题在 Eclipse 的问题跟踪器下被跟踪: https://bugs.eclipse.org/bugs/show_bug.cgi?id=48433


更新:我现在使用的是 Eclipse 4.3,发现这个特性现在可用。当您手动断开长字符串时,+ 运算符的位置现在将遵循您的代码格式化程序设置。

【讨论】:

  • 这个选项在哪里?
  • 我没有特别的选择。 + 运算符换行符只是按照我在代码格式化程序中设置的内容。
猜你喜欢
  • 1970-01-01
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 2016-01-26
相关资源
最近更新 更多