我正在尝试使用Eclipse自动格式化程序,但找不到适合自己的格式化选项。

当我有这样的一行时:

MyLongNameClass myLongNameObject = otherObject.callAVeryLongMethodWithParameters(param1, param2, param3)

Eclipse自动格式化程序通过以下方式包装它:
MyLongNameClass myLongNameObject = otherObject
    .callAVeryLongMethodWithParameters(param1, param2, param3)

我想得到以下结果:
MyLongNameClass myLongNameObject =
    otherObject.callAVeryLongMethodWithParameters(
        param1, param2, param3)

将对象和方法访问器保持在同一行,并避免以“。”开始新行。这可能吗?有这个选项吗?

最佳答案

我不确定您是否真的可以做您想做的事,但这可能会使您接近:

在月食火星中:

转到Window -> Preferences -> Java -> Code Style -> Formatter
使用New...按钮基于其中一个内置文件创建自己的配置文件。默认情况下,这将带您进入编辑窗口。如果已经设置了要更改的格式化程序,请选择它并使用Edit...按钮。

在配置文件编辑窗口中,执行以下操作:

  • 选择“换行”选项卡
  • 在左侧的滚动框中,转到Function Calls -> Qualified invocations
  • Settings for qualified invocations区域中,选择Do not wrap
  • 在左侧的滚动框中,转到Function Calls -> Arguments
  • 在参数设置中选择Wrap first element, others where necessary,然后选择Indent by one

  • 您可以通过在预览窗口中调整线宽来测试这些设置。

    我知道这是一个较晚的提交,但是我希望它可以帮助其他人搜索相同的功能。

    关于eclipse - Eclipse代码格式化程序:不要在方法调用中换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13396457/

    10-13 09:48