Брекеты на новой строке, только если текущая строка переполняет формат Clang

Я недавно решил включить .clang-format файл в моем C ++ проекте, чтобы сделать код более единообразным и легким для чтения. Мне больше всего нравятся настройки Google по умолчанию, за исключением того, что я хотел бы использовать 4 пробела вместо двух.

Проблема в том, что некоторые операторы становятся сложнее для чтения, когда текущая строка переполняет ограничение в 80 символов. Например, в операторе if, который переполняет:

if (some_condition || some_other_condition ||
yet_another_condition) {
// block starts here
}

Выравнивание yet_another_condition соответствует началу блока if, что затрудняет чтение без какого-либо перерыва. В идеале, то, что я хотел бы случиться в этой ситуации, это что-то вроде этого:

if (some_condition || some_other_condition ||
yet_another_condition)
{
// block starts here
}

Тем не менее, я хочу только открывающую скобку на новой строке когда текущая строка переполняется в следующую, как в приведенном выше примере. Во всех других случаях я хочу открывающую скобку в той же строке (это относится к операторам if / for / while / switch и т. Д., А также к функциям).

Можно ли указать это поведение в моем .clang-format файл при сохранении остальных настроек Google по умолчанию?

4

Решение

Утилита clang-format позволяет указать пользовательское обтекание скобками с BraceWrapping: Custom, но он недостаточно гибок, чтобы знать контекст, который вам требуется.

Альтернативное решение для улучшения читабельности состоит в том, чтобы использовать отступ продолжения больше 4, например ContinuationIndentWidth: 8,

0

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

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

По вопросам рекламы [email protected]