生成器模式的 Eclipse 格式化程序设置
2022-08-31 22:27:31
我对一系列限定调用的 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应用我的首选格式样式或比上述任何一种更接近它的东西?