格式化c ++代码?

时间:2013-09-24 09:19:46

标签: c++ sed formatter uncrustify

如何在自动生成的c ++代码中将分为三行的'for'语句重新格式化为一行?我试过unrustify,但我无法在括号内格式化部分。 sed似乎不适合这个。任何人都可以建议我其他格式化程序或一些可以处理它的linux命令吗?

要格式化的代码:

void func(double* s, Quaternion& a, int n)
{
 int size((n<4)?n:4);
 for (int i=0;
      i<size;
           i++)
 {
  a[i] = s[i];
 }
}

我希望将上面的'for'语句格式化为一行,如:

 for (int i=0; i<size; i++)

2 个答案:

答案 0 :(得分:2)

试试clang-format。这有点新鲜,但是关于GoingNative2013的演讲显示了有希望的结果。

答案 1 :(得分:1)

您可以使用gnu indent

为您的代码段说indent -npsl inputfile.c会导致:

void func (double *s, Quaternion & a, int n)
{
  int size ((n < 4) ? n : 4);
  for (int i = 0; i < size; i++)
    {
      a[i] = s[i];
    }
}

可以访问手册here