sed — переформатировать код c ++?

Как переформатировать оператор ‘for’, разделенный на три строки в одну, в автоматически сгенерированном коде c ++? Я попытался uncrustify, но я не мог заставить его отформатировать части в скобках. Сед кажется не подходит для этого. Может ли кто-нибудь предложить мне другой форматтер или команду 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++)

0

Решение

Вы можете использовать отступ гну.

поговорка 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];
}
}

Руководство может быть доступно Вот.

1

Другие решения

Пытаться лязг-формат. Это довольно ново, но доклад о GoingNative2013 показал многообещающие результаты.

2

По вопросам рекламы [email protected]