Astyle — как отформатировать условие без фигурных скобок в 1TBS

У меня есть программа, которая использует 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

0

Решение

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

Вы можете придерживаться 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

Теперь ваши источники должны выглядеть почти так же, как и раньше, за исключением добавленных скобок
хотя может быть больше изменений от преобразования стиля назад и вперед.

0

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

Других решений пока нет …