在Eclipse中对齐多行Java字符串

时间:2014-04-23 10:17:47

标签: java eclipse string formatting

我对Eclipse格式化系统有点新意。给定String分配给这样的几行:

String cypher = "OPTIONAL MATCH (update:UPDATE {name: {name}}),"
        + "(update)-[:INSTALLED_IN]->(installation)<-[:CURRENT]-(computer:COMPUTER {name: {computerName}})"
        + "RETURN update, installation, computer";

我希望在按 Ctrl + Shift + F 时生成Eclipse格式并生成以下内容,所有+符号在=下很好地对齐:

String cypher = "OPTIONAL MATCH (update:UPDATE {name: {name}}),"
              + "(update)-[:INSTALLED_IN]->(installation)<-[:CURRENT]-(computer:COMPUTER {name: {computerName}})"
              + "RETURN update, installation, computer";

我怎样才能实现这一目标?

我正在使用这个我已导入Eclipse的formatter.xml文件:http://pastebin.com/iThW8Lub也许需要进行一些调整?

1 个答案:

答案 0 :(得分:1)

我在Eclipse中使用了格式化程序设置,但无法实现完全您正在寻找的内容。我怀疑使用给定的格式化程序设置是不可能的(但是,您可以找到或编写一个可以执行您想要的插件)。

话虽如此,我能够实现两个最接近您所寻找的选项。

这适用于Eclipse Kepler:

转到Preferences > Java > Code Style > Formatter。点击Edit您的个人资料。转到Line Wrapping标签。选择Expressions。对于Line wrapping policy,请选择Do not wrap。现在展开Expressions列表,然后选择Binary Expressions

现在选择您喜欢的包装政策。这将影响包装前每行的元素数量。我选择Wrap when necessary,但您可以选择将每个元素放在一个单独的行上。

对于缩进政策,请选择Indent on column

现在,您可以选择选中/取消选中Wrap before operator,它将分别为您提供效果1和效果2:

效果1:[x]在操作符

之前换行
String cypher = "OPTIONAL MATCH (update:UPDATE {name: {name}}),"
                + "(update)-[:INSTALLED_IN]->(installation)<-[:CURRENT]-(computer:COMPUTER {name: {computerName}})"
                + "RETURN update, installation, computer";

效果2:[]在操作符

之前换行
String cypher = "OPTIONAL MATCH (update:UPDATE {name: {name}})," +
                "(update)-[:INSTALLED_IN]->(installation)<-[:CURRENT]-(computer:COMPUTER {name: {computerName}})" +
                "RETURN update, installation, computer";

在我看来,效果1虽然不那么整洁,但更具可读性,而这就是我的选择,但这完全取决于你。

希望这有帮助!您始终可以使用手动代码格式设置=)