Использование uncrustify без выравнивания в открытых скобках
Я пытаюсь настроить uncrustify (исходный код beautifier) для
избегайте выравнивания под предыдущей открытой скобкой. Для
например, я хотел бы, чтобы код выглядел так (из файла
indent_paren.c
):
void f(void)
{
while (one &&
two)
{
continue;
}
}
когда я запускаю uncrustify на вышеуказанном коде, строка two)
отступы для выравнивания с (
в строку:
void f(void)
{
while (one &&
two)
{
continue;
}
}
я использую последнюю версию uncrustify (0.59) собраны из
источник, со следующими параметрами конфигурации для этого тест
(в файле indent_paren.cfg
):
indent_with_tabs = 0
indent_columns = 4
indent_paren_nl = false
indent_bool_paren = false
Я призываю uncrustify следующим образом:
uncrustify -c indent_paren.cfg indent_paren.c
я нашел такое же поведение с версии 0.56 (установлен из репозиторий для Ubuntu 11.04). Я использую неправильную конфигурацию настройки, или что-то еще не так? Спасибо за любую помощь.
1 ответов
после дальнейших экспериментов и спелеологии в uncrustify
исходный код, я обнаружил, что тут
в основном то, что я хочу. По умолчанию indent_continue
- это ноль, и
продолжение линий отступом вверх под открытой скобкой в
линия выше. Настройка indent_continue
до ненулевого значения
переопределяет это поведение, вызывая строки продолжения
отступ на основе текущего "уровня". Итак, мой оригинальный пример
изрезан, как хотелось, когда, используя следующие параметры в
uncrustify.cfg следующее:
indent_with_tabs = 0
indent_columns = 4
indent_continue = 4
потому что "уровень" увеличивается для вложенных скобок, однако для таких случаев отступов больше, чем требуется as:
void g(void)
{
/* Nested parentheses cause undesired additional indent. */
TRACE(("The varargs need extra parentheses %d %d\n",
(firstArgIsLong +
withMultipleTerms),
secondArg));
}
вышеуказанные установки производят отступ следующим образом, с нежелательные дополнительные уровни отступов:
void g(void)
{
/* Nested parentheses cause undesired additional indent. */
TRACE(("The varargs need extra parentheses %d %d\n",
(firstArgIsLong +
withMultipleTerms),
secondArg));
}
глядя на источник uncrustify, кажется, что это поведение
не регулируется. indent_continue
дает желаемые результаты
в большинстве случаев, и это кажется самым близким, что uncrustify
может прийти в это время.