如何停止Eclipse格式化程序将所有枚举放在一行上
我有枚举像:
public static enum Command { login, register, logout, newMessage }
格式化文件时,输出变成:
public static enum Command { login, register, logout, newMessage }
@ wjans的答案适用于正常的枚举,但不适用于带参数的枚举。 为了扩展他的答案,下面是在Eclipse Juno中为我提供了最明智的格式的设置:
-
Window
>Preferences
>Java
>Code Style
>Formatter
- 点击
Edit
- select“
Line Wrapping
选项卡 - select
enum
声明treenode - 将
Line wrapping policy
设置为Wrap all elements, every element on a new line (...)
所以现在在括号中表示3的3。 -
Force split, even if line shorter than maximum line width (...)
所以它现在在括号中表示3的3。 - select
Constants
treenode - 检查
Force split, even if line shorter than maximum line width
这将enum treenode的3个子节点设置为相同的包装策略,以及除了Constants
treenode之外的相同的强制拆分策略,所以具有参数的枚举将按照自己的行格式化。 只有超过最大线宽的参数才会自动换行。
例子:
@wjans
enum Example { CANCELLED, RUNNING, WAITING, FINISHED } enum Example { GREEN( 0, 255, 0), RED( 255, 0, 0) }
上述解决scheme:
enum Example { CANCELLED, RUNNING, WAITING, FINISHED } enum Example { GREEN(0, 255, 0), RED(255, 0, 0) }
您可以在格式化程序首选项中指定它:
- 首选项:Java – 代码样式 – 格式化程序
- 点击修改
- select“换行”选项卡
- select左侧框中的“枚举”声明 – >常量
- 将换行换行策略设置为“将所有元素换行,换行上的每个元素”
- 检查“强制拆分…”
这也有点丑陋,但如果你的公司政策阻止你改变格式化程序,你可以把注释放在你不想被包装的行的末尾。
public static enum Command { login,// register,// logout,// newMessage// };
这不是很好,但你可以closures一些代码段的Eclipse格式化程序。
// @formatter:off public static enum Command { login, register, logout, newMessage }; // @formatter:on
该选项位于Windows-> Preferences-> Java-> Code Style-> Formatter-> Edit-> Off / On Tags面板
您需要在“常量”的枚举声明下设置换行策略。
将包装策略设置为
- 将所有元素,每个元素包装在一个新行中
和
- 选中“强制拆分”,即使行数小于,,,,