【问题标题】:How to format nested method calls with outer functions on same line?如何在同一行使用外部函数格式化嵌套方法调用?
【发布时间】:2021-09-10 22:26:23
【问题描述】:

如何让 Eclipse 像这样格式化我的代码:

f(g(
    jkdfjkfjdsklfjsdkf,
    fjdkfjdskfjsdklfjsdfkljsd,
    rijekfjdskj,
));

代替:

f(
    g(
        jkdfjkfjdsklfjsdkf,
        fjdkfjdskfjsdklfjsdfkljsd,
        rijekfjdskj,
    )
);

如果它不自动执行那也没关系,只要我执行时它会保留它。

即使选中了“换行>从不加入已经换行的行”并将“换行>换行设置>函数调用>参数”设置为“不换行”,它仍然坚持将第一个版本转换为第二个版本。 “换行>更喜欢包装外部表达式(将嵌套表达式保持在一行)”似乎也没有效果。

我能想到但我宁愿避免的唯一解决方法是添加@formatter:off/@formatter:on cmets,或者完全不使用格式化程序。

有什么方法可以让 Eclipse 更喜欢第一个版本,或者至少不修改它?谢谢!

【问题讨论】:

    标签: java eclipse formatting settings code-formatting


    【解决方案1】:

    不可能让 Eclipse 像这样格式化代码,因为无法向格式化程序指定函数调用应该与其他参数区别对待。

    但是,在进行格式化传递时,可以保持这种格式不变。

    Eclipse [built-in] 配置中,唯一需要更改的是检查从不加入已经换行的行,就像你所做的那样,并选择Parentheses positions -> Method/constructor invocation: -> preserve positions

    org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=
       preserve_positions
    

    请注意,...函数调用 -> 参数应该设置为“不换行”,而是设置为默认的“必要时换行”。 p>

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 2019-09-19
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      相关资源
      最近更新 更多