У меня есть программа, которая использует Astyle для форматирования кода в 1TBS. Итак, если у меня есть такой код
if(condition)
func(a, b);
это меняется на это
if(condition) {
func(a, b);
}
Эта проблема когда параметры в вызываемой функции разбиты на несколько строк, например:
if(condition)
func(a,
b);
Тогда Астиль не сможет добавить фигурные скобки, даже если я попытаюсь заставить его --add-brackets
, Можно ли сделать это как-то иначе?
Моя команда теперь выглядит так:
astyle --style=1tbs --add-brackets test.c
Это может показаться немного запутанным, но если у вас много источников
и добавление фигурных скобок — это операция, которая вам просто необходима,
следующая схема может работать.
Вы можете придерживаться Astyle, но вам нужно Uncrustify временно
а также сценарий, который я написал, называется whatstyle.
В следующих шагах замените test1.c
с вашими источниками и сохранить резервную копию
из ваших источников, как они будут изменены.
whatstyle.py -f astyle --mode resilient --output astylerc test1.c
whatstyle.py -f uncrustify --output uncrustify.cfg test1.c
( egrep -v mod_full_brace_if < uncrustify.cfg ; echo "mod_full_brace_if = force" ) \
> uncrustify_addbrace.cfg
uncrustify --replace -c uncrustify_addbrace.cfg test1.c
ARTISTIC_STYLE_OPTIONS=astylerc astyle test1.c
Теперь ваши источники должны выглядеть почти так же, как и раньше, за исключением добавленных скобок
хотя может быть больше изменений от преобразования стиля назад и вперед.
Других решений пока нет …