我对一系列合格调用的Eclipse格式规则(即Builder模式样式)感到非常沮丧。例如,以下是我创建新的Apache Commons CLI Options
对象的某些代码的首选格式:
Options options = new Options()
.addOption(OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
.addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
"print version and exit")
.addOption(OptionBuilder.withLongOpt(OPTION_PROPERTIES)
.hasArg()
.withArgName("FILE")
.withType(File.class)
.withDescription("specify a user properties file")
.create());
即,参数在必要时被包装和缩进,除非必要,所有合格的调用都将被包装并缩进(如果有多个)。如果参数列表包含在限定调用内,则调用应首先换行。
Eclipse中的默认格式(参数和调用“仅在必要时换行”)会产生以下混乱:
Options options = new Options().addOption(
OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
.addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
"print version and exit").addOption(
OptionBuilder.withLongOpt(OPTION_PROPERTIES).hasArg().withArgName(
"FILE").withType(File.class).withDescription(
"specify a user properties file").create());
进入“Java代码样式 - >格式化程序 - >行换行”并将换行设置为“包装所有元素,如果不需要,则除了第一个元素外”,以进行调用:
Options options = new Options().addOption(
OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
.addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
"print version and exit")
.addOption(
OptionBuilder.withLongOpt(OPTION_PROPERTIES).hasArg().withArgName(
"FILE").withType(File.class).withDescription(
"specify a user properties file").create());
我不喜欢OptionBuilder
表达式没有被包装,或者"FILE"
被包裹而没有包裹withArgName
。
将缩进更改为“列上的缩进”产生:
Options options = new Options().addOption(OPTION_HELP_SHORT, OPTION_HELP,
false, "print usage information")
.addOption(OPTION_VERSION_SHORT,
OPTION_VERSION, false,
"print version and exit")
.addOption(
OptionBuilder.withLongOpt(
OPTION_PROPERTIES)
.hasArg()
.withArgName("FILE")
.withType(File.class)
.withDescription(
"specify a user properties file")
.create());
正在打破我喜欢的界限,但将事情推向极右边。
有没有办法说服Eclipse应用我喜欢的格式样式或者比上述更接近的格式呢?
答案 0 :(得分:32)
使用评论:
Object o = foo() //
.bar() //
.toString();
答案 1 :(得分:29)
使用注释关闭格式或插入行注释太繁琐了。
最好的方法是here:
...或者你可以选择“Line Wrapping>从不加入已包装 “全局。然后,你可以手动打破它和格式化程序 将仅格式化内部行(或添加其他换行符,如果 必要)。
使用此设置,Eclipse格式化程序将停止破坏构建器语句。
答案 2 :(得分:4)
在Eclipse 3.6中可以关闭代码区域的格式。见我的回答
How to turn off the Eclipse code formatter for certain sections of Java code?
答案 3 :(得分:3)
AFAIK,这是Eclipse Formatter的已知问题: https://bugs.eclipse.org/bugs/show_bug.cgi?id=59891
答案 4 :(得分:1)
2021 年更新。 可以更改,导航至:代码样式 -> 格式化程序 -> 换行 -> 换行设置 -> 函数调用 -> 限定调用 并将值更改为“包装所有元素,如果不需要,除了第一个元素”
答案 5 :(得分:-3)
在菜单上选择窗口 - >窗口打开时的首选项选择Java - >代码风格 - >格式化程序,您可以通过选择新的或编辑选项来创建自己的格式样式。编辑格式化配置文件时,会打开一个新窗口,为您提供许多不同的选项。