我开始使用Allman样式编码,使用对齐的大括号:
void foobar()
{
if(foo)
{
bar();
}
}
几十年后,我决定我想要额外的屏幕空间;此外,我的客户使用不匹配的大括号,所以很难从工作代码切换到我的个人代码。所以我想把所有现有的代码转换成K&R:
void foobar() {
if(foo) {
bar();
}
}
Eclipse 4.4有足够的代码格式化器,如果我选择我的源树,我甚至可以批量格式化文件。问题是,如果我在K&R大括号所在的行注释中有一个行注释,Eclipse将拒绝将大括号向上移动一行,从而给我留下一个编码风格的大杂烩:
void foobar() {
if(foo) //if foo
{
bar();
}
}
我如何告诉Eclipse将大括号上移,即使大括号所在行有注释?
void foobar() {
if(foo) { //if foo
bar();
}
}
对文件进行正则表达式替换;替换
)s*(//.*)(r?n)(s*){
1 2 3
:
) {23 12
更新(garrett Wilson):经过多次实验,解决所有变化并满足我需求的理想正则表达式替换是:
^([^/]*(?:)|>|do|else|Exception|static|try))s*(//.*)(r?n)(s*){
替换为:
1 { 2