我希望Eclipse格式化一些调用构建器的代码,如下所示:
final Item item = new Item.Builder()
.name("something")
.field("a value")
.build();
即。对齐'。'第一行的字符。我可以通过手动对齐第二行(.name(“something”))来手动说服Eclipse这样做,但任何自动格式化都会破坏它。
我已经玩过了我在Eclipse中可以找到的所有各种格式化选项,但它们似乎都没有我想做的事情。关于是否有以这种方式布置代码的格式选项的任何想法?
答案 0 :(得分:5)
无法精确对齐点位置,但每个方法调用的换行符都可以自动完成。我已经创建了这个输出
void format() {
Test test = new Test()
.a() // this call can also be configured to be one line above
.b()
.c();
}
在格式化程序设置中选择行换行标签,选择函数调用,合格调用,在组合中切换换行策略框到包裹所有元素,新行上的每个元素,最后选中复选框强制拆分,即使行短于最大行宽。
您可以通过选择“...除第一个元素”政策来获得第一个方法调用。
答案 1 :(得分:0)
创建一个新的形成器:
Properties -> Formater -> Configure Workspace Settings -> New
然后在标签Off/On Tags
上设置Enable Off/On tags
然后像这样围绕你的代码:
/* @formatter:off */
final Item item = new Item.Builder()
.name("something")
.field("a value")
.build();
/* @formatter:on */
答案 2 :(得分:0)
我认为,你可以通过使用' jalopy'来实现这一目标。如果你使用Maven,有一个Maven插件。
如果您想使用jalopy,那么您感兴趣的设置是<methodCallChain>
元素alignment
,其值应设置为true
。
编辑:maven jalopy plugin。确保定位clean
阶段并使用目标format