从换行中阻止日食?

Cra*_*lin 33 eclipse eclipse-formatter

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

void foo(
    int arg1,
    int arg2,
    int arg3,
    int arg4)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

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

void foo(
    int arg1, int arg2,
    int arg3, int arg4)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

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

Von*_*onC 34

参数的格式是一个旧主题,但3.5中引入的一个新格式化功能是:

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

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

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

之前
要格式化的代码示例

当使用"从不加入行"首选项时,格式化程序将保留它,现在产生以下结果:

后
编码格式化从不加入线

可以在Java > Code Style > Formatter首选项页面上配置此首选项.请参阅和选项卡Never join lines上的选项.Line WrappingComments

这可能会有所帮助,但除此之外,3.5中的新功能并不多.


Bri*_*lee 21

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

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

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

当您下一次尝试格式化java文件时,只有在高于新的最大大小时才会进行换行.

快乐的编码!

  • 我认为如果它们加起来少于180个字符,那么Eclipse会将一些短行组合成一条长行. (4认同)

Tho*_*sen 9

您可以使用注释来欺骗格式化程序.

void foo( //
  int arg1, //
  int arg2, //
  int arg3, //
  int arg4)
Run Code Online (Sandbox Code Playgroud)

将在评论中保留换行符.


tun*_*nch 6

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