我开始使用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();
}
}
答案 0 :(得分:1)
对文件进行正则表达式替换;取代
\)\s*(//.*)(\r?\n)(\s*)\{
1 2 3
使用:
) {\2\3 \1\2
更新(Garret Wilson):经过多次实验,解决所有变化并满足我需求的理想正则表达替换是:
^([^/]*(?:\)|\>|do|else|Exception|static|try))\s*(//.*)(\r?\n)(\s*)\{
替换为:
\1 { \2