如何在同一行格式化带有外部函数的嵌套方法调用?

How to format nested method calls with outer functions on same line?

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

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

而不是:

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

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

即使选中“换行 > 从不加入已换行”并将“换行 > 换行设置 > 函数调用 > 参数”设置为“不换行”,它仍然坚持将第一个版本转换为第二个版本. “Line Wrapping > Prefer wrapping outer expressions (keep nested expression on one line)”似乎也没有效果。

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

有没有办法让 Eclipse 更喜欢第一个版本,或者至少不修改它?谢谢!

不可能让 Eclipse 像这样格式化代码,因为无法向格式化程序指定函数调用的处理方式应与其他参数不同。

但是,在执行格式化过程时可以保留此格式。

Eclipse [built-in] 配置中,唯一需要更改的是检查 Never join already wrapped lines 和 select Parentheses positions -> Method/constructor invocation: -> preserve positions

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

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