Есть ли возможность установить штраф за разбиение директив препроцессора на несколько строк?
Например, если у меня есть следующий фрагмент:
#define my_constant 1 // Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
А это .clang-format
:
BasedOnStyle: Google
ColumnLimit: 80
Файл форматируется так:
#define my_constant \
1 // Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
// tempor incididunt ut labore et dolore magna aliqua. Ut
Однако я хочу, чтобы его формат был похож на этот:
#define my_constant 1 // Lorem ipsum dolor sit amet, consectetur adipiscing
// elit, sed do eiusmod tempor incididunt ut labore et
// dolore magna aliqua. Ut
Я попробовал существующие варианты штрафов здесь, но мне не удалось найти тот, который работает.
Любой совет будет принят во внимание.
Насколько я знаю, это невозможно. Еще. Но вы можете сделать одно из следующих действий:
А) Полностью отключите форматирование для этой области, добавив следующие два комментария:
// clang-format off
#define my_constant 1 // Lorem ipsum dolor sit amet, consectetur adipiscing
// elit, sed do eiusmod tempor incididunt ut labore et
// dolore magna aliqua. Ut
// clang-format on
Я понимаю, что это будет трудоемко, если вы часто сталкиваетесь с такой ситуацией.
Б) Добавьте длинный комментарий перед директивами препроцессора. Если вы используете Doxygen, это можно сделать разными способами. Я не буду вдаваться в подробности, но посмотрите здесь, если вам это нравится.
/** Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
* tempor incididunt ut labore et dolore magna aliqua. Ut
*/
#define my_constant 1
Конечно, вы можете сохранить стиль комментариев //
, но он предназначен для однострочных комментариев.
В) Постарайтесь свести к минимуму использование директив препроцессора. Существуют разные подходы к достижению этой цели в зависимости от ситуации. Возможно это маленькая отправная точка.
Хм, это прискорбно. Я действительно считаю, что предложенные вами альтернативы полезны, поэтому пока отмечу это как решение.