Удалите пробелы и добавьте новые строки с помощью astyle в коде C ++ - PullRequest
2 голосов
/ 22 марта 2011

Я унаследовал огромное количество кода, отформатированного следующим образом:

void <whitespace> Foo::bar <whitespace> ( ) <whitespace> // short documentation
{
  // code
}
void Foo::bar()
{
  // code
}

без пустой строки в конце файлов и иногда без новой строки между функциями. Я успешно использовал следующие опции с astyle, чтобы удалить большинство ошибок стиля, но я не могу найти никакой справки или документации о том, как исправить эти проблемы.

--style=ansi -t3 -N -j -k1 -z2 -n -r -H -U -p -q -w -Y -L -S

В прошлом я использовал простой скрипт на python, чтобы убедиться, что в конце есть новая строка, и я думаю, что я мог бы использовать что-то подобное снова вместе с regex, чтобы удалить пробелы и добавить новые строки, но так как я используйте astyle сейчас, было бы здорово, если бы он мог это сделать, так что ... предложения?

1 Ответ

0 голосов
/ 26 марта 2011

Я не знаю, какую платформу вы используете, но если вы используете какую-либо платформу на основе NIX, у вас есть доступ ко многим инструментам редактирования текста, таким как sed , Это означает, что вам не нужно бросать свой собственный код, чтобы сделать это.

Я не очень хорошо разбираюсь в регулярных выражениях, но общий синтаксис для поиска и замены sed в командной строке таков:

sed -i -e 's/expr1/expr2/g' filename

Это заменит "expr1" на "expr2". Он работает с пробелами и регулярными выражениями, поэтому вы можете сжать все несколько пробелов в один пробел (или ни одного, если вы ничего не набираете для expr2).

Сед может иметь то, что вам нужно для работы с новыми строками, но, к сожалению, я не настолько квалифицирован с его языком.

Удачи, хотя.

...