阻止Eclipse自动换行?

35

有没有办法让eclipse停止清除现有的换行符?如果我的方法签名像这样,我就不知道如何让eclipse保持原样:

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

使用不同的设置,它将把参数折叠成一行或在某个边距处换行,就像这样:

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

使用“将所有元素包装,每个元素放在新行上”的选项可以保留这些空格,但它会始终进行换行,这不是我想要的。我希望Eclipse可以应用缩进和大括号等格式设置,只是不删除(或插入)任何换行符。

4个回答

35

参数格式化是一个老生常谈的话题,但在3.5中引入的新格式化功能是:

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

例如,在以下测试用例中,返回语句的换行将被保留:

before
要格式化的代码示例

当使用"Never Join Lines"偏好设置时,格式化程序将保留这些换行符,并产生以下结果:

after
使用"Never Join Lines"格式化后的代码

此偏好设置可以在Java > Code Style > Formatter偏好设置页面上进行配置。请参见Line WrappingComments选项卡上的Never join lines选项。

这可能有所帮助,但除此之外,在3.5中并没有太多关于此方面的新功能。


@ThorbjørnRavnAndersen 感谢您提到这个问题。幸运的是,这些图片很容易找到(例如在http://ftp.ntua.gr/eclipse/eclipse/downloads/drops/R-3.5-200906111540/images/)。 - VonC

21
当我在 Eclipse 上使用“格式化”功能对我的 Java 代码进行格式化时,它会在不同的位置拆分或断开我的代码行以确保其始终适合某个宽度。如果你有一台宽屏幕显示器,这可能不是最佳选择。以下是解决此问题的步骤:
在 Eclipse 3.5 中,你可以打开首选项并搜索“Format”,或从左侧菜单中选择“Java”->“代码风格”->“格式化程序”。默认配置文件称为“Eclipse [内置]”,如果想要更改 Java 格式化程序,则需要将其复制并创建一个自己的配置文件。可以使用配置文件名称下面的“新建”按钮完成此操作。
一旦你在 Eclipse 中创建了自己的 Java 格式化程序,请确保选择它并点击“编辑”按钮。在这里,你可以定制许多功能,但是要解决换行问题,可以选择“换行”标签。在常规设置下,你会看到“最大行宽:”的数值。这个数字值是格式化程序将使用的最大行长度。我将其增加到更合理的大小,例如180个字符,以适应更大的显示器。保存并应用更改后,返回到代码。
当你尝试格式化 Java 文件时,只有当你超过新的最大大小时才会发生换行。
祝你编码愉快!

5
如果几行短语加起来不足180个字符,我认为这将导致Eclipse将它们合并成一行较长的文本。 - Craig P. Motlin
在Formatter的属性中,“注释”选项卡中,将“注释的最大行宽”更改为与“最大行宽”相同的值,也可能非常有用。 - infografnet
谢谢,这帮助我摆脱了头疼的困扰。 - Pushkar

10

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

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

将保留注释中的换行符。


6

Eclipse 3.5支持此功能。(它在几天前发布了候选版本,因此值得一试)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接