3

我开始使用 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();
  }
}
4

1 回答 1

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
于 2014-06-08T23:01:04.613 回答