如何阻止 Eclipse 格式化程序将所有枚举放在一行上

2022-08-31 09:34:34

我有这样的枚举:

public static enum Command
{
login,
register,
logout,
newMessage
}

格式化文件时,输出变为:

public static enum Command 
{
login, register, logout, newMessage
}

答案 1

@wjans的答案适用于普通枚举,但不适用于带有参数的枚举。为了扩展他的答案,以下是在Eclipse Juno中为我提供最明智的格式设置:

  1. Window > Preferences > Java > Code Style > Formatter
  2. 点击Edit
  3. 选择选项卡Line Wrapping
  4. 选择声明树节点enum
  5. 设置为,它现在在括号中显示 3/3。Line wrapping policyWrap all elements, every element on a new line (...)
  6. 取消选中,所以它现在在括号中显示3 of 3。Force split, even if line shorter than maximum line width (...)
  7. 选择树节点Constants
  8. 检查Force split, even if line shorter than maximum line width

这会将枚举树节点的 3 个子节点设置为相同的包装策略,以及除树节点之外的相同强制拆分策略,因此带有参数的枚举将在其自己的行上进行格式化。仅当参数超过最大线宽时,它们才会换行。Constants

例子:

@wjans

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(
        0,
        255,
        0),
    RED(
        255,
        0,
        0)
}

上述解决方案:

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(0, 255, 0),
    RED(255, 0, 0)
}

答案 2

您可以在格式化程序首选项中指定以下内容:

  • 首选项:Java -- 代码样式 -- 格式化程序
  • 点击“编辑”图标
  • 选择“换行”标签
  • 选择“枚举”声明 - >左侧框中的常量
  • 将换行策略设置为“换行所有元素,每个元素都换行”
  • 检查“强制拆分...”

推荐