我正在使用eclipse luna(4.4)。我有一个如下所示的java行:
LongClassName obj = new LongClassName(new AnotherLongName(), new YetAnotherLongNAme());
这一行比我的行宽要长,所以我想配置格式化程序来解决这个问题。 不幸的是,格式化程序不断将其更改为:
LongClassName obj =
new LongClassName(new AnotherLongName(), new YetAnotherLongNAme());
这是有问题的,因为第二行仍然比我的线宽更长。
我希望格式化程序包装参数列表,如下所示:
LongClassName obj =
new LongClassName(new AnotherLongName(),
new YetAnotherLongNAme());
但是,我无法弄清楚如何做到这一点。 我尝试更改" Formatter - >中的政策字段。线包装 - >函数调用",但它没有帮助。 启用或禁用"首选扭曲外部表达式..."选项也不会改变结果。
我不想使用开/关标签或使用"从不加入已包装的线条",我希望格式化板自动完成。
编辑:
我宁愿不强制格式化程序包装所有函数调用,只包括那些超出行宽的函数。例如。这样:
Foo f = new Foo(4, 7);
应该保持原样,不要被包裹。
答案 0 :(得分:1)
Formatter - >线包装 - >函数调用
将Line wrapping policy:
设置为Wrap all elements, except first element if not necessary (5 of 5)
检查:Force split, even if line shorter than maximum line width
将Indentation policy
设置为Indent on column
这样您就不需要更改Maximum line width
如果你想要任务的右侧(在你的情况下新的LongClasssName ......)来包装你也应该做以下事情:
Formatter - >线包装 - >表达式 - > Assignements
将Line wrapping policy:
设置为Wrap first element, others when necessary
检查:Force split, even if line shorter than maximum line width
将Indentation policy
设置为Indent by one
p.s:您应该仅将此更改应用于Eclipse [built-in]
设置