Eclipse格式化程序并不尊重行宽

时间:2016-01-31 07:43:33

标签: eclipse

我正在使用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);

应该保持原样,不要被包裹。

1 个答案:

答案 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]设置