如何让Perl::Tidy始终将多行函数调用的闭括号单独换行?
让Perltidy始终将多行函数调用的闭括号单独成行的配置问题
我希望Perltidy始终将多行函数调用的闭括号放在单独一行。使用哈希风格参数时,它的表现符合预期:
my $test = mysprintf( one => "(void)find_threadsv(%s);", two => cstring( $threadsv_names[ $op->targ ] ) );
但使用列表参数时,它的行为会根据参数长度出现不一致的情况:
# 内容可放在单行,没问题 my $test = mysprintf( "(void)find_thread;", cstring( $threadsv_names[ $op->targ ] ) ); # 拆分为两行,但闭括号留在最后一行,不符合需求 my $test = mysprintf( "(void)find_threadsv(%s);", cstring( $threadsv_names[ $op->targ ] ) ); # 加长第一个参数后,行为恢复正常 my $test = mysprintf( "(void)find_threadfdfdfdfffdfdfdfddsv(%s);", cstring( $threadsv_names[ $op->targ ] ) ); # 参数再长一些,行为又异常 my $test = mysprintf( "(void)find_threadfdfdffefdfdfdfddfffdfdfdfddsv(%s);", cstring( $threadsv_names[ $op->targ ] ) );
第一种情况(内容能放在单行)我可以理解,但后续随着参数长度变化,它的行为在异常和正常之间反复切换。
这种情况在默认设置(最新版Perl::Tidy)和我尝试过的多种.perltidyrc配置下都会出现,比如:
--vertical-tightness=0 --vertical-tightness-closing=0
这是Perltidy的Bug,还是我遗漏了某些关键配置?
编辑补充:我找到一个有帮助的选项,它不会自动调整格式,但如果手动在函数调用括号内按需求添加换行,它不会破坏已有的格式:
--keep-old-breakpoints-after='w('
内容的提问来源于stack exchange,提问作者Ecuador
相关产品推荐
相关产品推荐

