从换行中阻止日食?

时间:2009-05-20 23:53:56

标签: eclipse eclipse-formatter

有没有办法让eclipse停止删除现有的换行符?如果我有这样的方法签名,我无法弄清楚如何让eclipse不管它:

void foo(
    int arg1,
    int arg2,
    int arg3,
    int arg4)
{
    // ...
}

使用各种设置,它会将参数折叠为一行,或者将它们包裹在某个边缘,如下所示:

void foo(
    int arg1, int arg2,
    int arg3, int arg4)
{
    // ...
}

通过“包裹所有元素,新行上的每个元素”它确实保留了这个空白,但它总是会换行,这不是我想要的。我喜欢eclipse为缩进和大括号等应用格式,只是没有删除(或插入)任何换行符。

4 个答案:

答案 0 :(得分:32)

参数的格式为an old subject,但3.5中引入的一个新格式化功能是:

  • eclipse3.5M4“用于保留用户换行符的Formatter选项”

Java代码格式化程序现在可以通过不加入代码或注释中的行来选择性地保留用户换行符。

例如,以下测试用例中的return语句的包装行:

before
格式化代码示例

当使用“从不加入行”首选项时,

将由格式化程序保留,现在产生以下结果:

after
使用从不加入行格式化编码

可以在Java > Code Style > Formatter首选项页面上配置此首选项。请参阅Never join linesLine Wrapping标签上的Comments选项。

这可能会有所帮助,但除此之外在3.5中没有太多新功能。

答案 1 :(得分:21)

当我在Java代码中使用Eclipse中的“格式”功能时,它会在各个地方拆分或破坏我的代码行,以确保内容始终适合某个宽度。如果你有一个宽显示器,我发现这不是最佳选择。我通过以下方式解决了这个问题:

在eclipse 3.5中,您可以打开首选项并搜索“格式”或选择 Java - > 代码样式 - > 格式化程序从左侧菜单。默认配置文件称为“Eclipse [内置]”,如果要更改Java Formatter,则需要复制它并创建自己的配置文件。这可以通过配置文件名称下方的“新建”按钮来完成。

在eclipse中创建自己的Java Formatter后,请确保已选中它并点击编辑按钮。这里有很多功能可供您自定义,但为了解决包装问题,我选择了“行包装”标签。在常规设置下,您会看到“最大线宽:”。此数值是格式化程序将使用的最大行长度。对于较大的显示器,例如 180 字符,我提升了合理的尺寸保存并应用并返回您的代码。

当您下次尝试格式化java文件时,只有在您超过新的最大大小时才会换行。

快乐的编码!

答案 2 :(得分:9)

您可以使用注释来指导格式化程序。

void foo( //
  int arg1, //
  int arg2, //
  int arg3, //
  int arg4)

会在评论中保留换行符。

答案 3 :(得分:6)

Eclipse 3.5支持这一点。 (它在几天前发布了候选版本,所以值得一试)