在 EclipseforJava 中将链式方法调用包装在一个单独的行上

我还没有成功地解决如何在 Eclipse中包装每个方法调用的问题:

someObject.A().B().C();

但我真的很想要这个:

someObject.A()
.B()
.C();

Eclipse中的“线包装”部分似乎没有给我这个结果。

39441 次浏览

Window → Preferences → Java → Code Style → Formater → Edit → Line wrapping → Never join already wrapped lines

Window > Preferences > Java > Code Style > Formater > 编辑 > 换行 > 函数调用,将“换行策略”设置为“将所有元素,所有元素换行”。

如果你愿意自己格式化这些片段,你可以通过使用以下方法来阻止 eclipse 重新格式化这些片段:

// @formatter:off
...
// @formatter:on

您可能需要在首选项中启用此选项: Http://archive.eclipse.org/eclipse/downloads/drops/r-3.6-201006080911/eclipse-news-part2.html#javaformatter

See also: 如何为 Java 代码的某些部分关闭 Eclipse 代码格式化程序?

作为对迪帕克 · 阿扎德答案的补充,你真正需要的是以下几点:

Windows : Window → Preferences → Java → Code Style
→格式化→编辑→换行(制表符)

Mac OS : ADT → Preferences → Java → Code Style
→格式化→编辑→换行(制表符)

然后,在左边的列表中,选择:

函数调用→限定调用

现在在这个列表下面,将 Line wrapping policy设置为:

Wrap all elements, except first element if not necessary

检查 :

强制拆分,即使线条短于最大线条宽度

最后,将 压痕政策设置为(感谢 @ Turbo) :

在柱子上缩进

It should give you the exact behavior you asked for.


额外奖励: Android Studio/IntelliJ 创意:

Mac OS : Android Studio →首选项(Cmd +,)→编辑器→代码样式→ Java → 包装和牙套 tab →链式方法调用

select

总是包装

检查一下

多线时对齐

在 java 和 javascript 中自定义您的 Eclipse 格式化程序。Windows>preferences

Edit

对于那些在源代码控制中检入 Eclipse 代码格式设置的用户(为了在整个团队中进行一致的代码格式设置) ,将检入 .settings文件夹。

The property that will give you this formatting behavior is in the .settings/org.eclipse.jdt.core.prefs file.

物业是:

org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80

在: Window-> Preferences-> Java-> Code Style-> Formater-> Edit-> Line  行包裝-> Function call-> Qualified  式呼叫

选择缩进策略作为列上的缩进