uncrustify: могу ли я контролировать, где он решает разбить строки?

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

Некоторые примеры:

void functionWithLongName(int parameter1, int parameter2, int parameter3, int parameter4) {
}

.. становится:

void functionWithLongName(int parameter1, int parameter2, int parameter3, int
                          parameter4) {
}

Я бы предпочел, чтобы это было:

void functionWithLongName(int parameter1, int parameter2, int parameter3,
                          int parameter4) {
}

... так как я бы предпочел, чтобы он не разбивал имя типа и переменной, а также любые квалификаторы.

Другой пример:

ClassName::ClassName(int importantValue) : memberVariable1(0), memberVariable2(importantValue), memberVariable3(0) {}

... становится:

ClassName::ClassName(int importantValue) : memberVariable1(0), memberVariable2(
        importantValue), memberVariable3(0) {}

Но я не хочу, чтобы он разрывался между круглыми скобками одного из этих инициализаторов. Я бы предпочел что-то вроде:

ClassName::ClassName(int importantValue) : memberVariable1(0),
    memberVariable2(importantValue), memberVariable3(0) {}

Просматривая документы Crusify, я не нашел настроек, позволяющих указать это. Есть ли способ сделать это?

В случае, если это поможет, вот мой текущий файл конфигурации uncrustify.


person GuyGizmo    schedule 02.03.2019    source источник


Ответы (1)


Похоже, проблема заключалась в том, что ls_code_width было установлено на true. Как только я установил его на false, uncrustify теперь пытается поддерживать группировку.

person GuyGizmo    schedule 31.12.2019