Опции стиля clang для перечислений
Кто-нибудь знает, как настроить clang-формат для сохранения enum в отдельных строках?
т.е.
enum {
ONE,
TOW,
THREE
};
против
enum {ONE, TWO, THREE};
РЕДАКТИРОВАТЬ:
Вот параметры стиля, которые я использую, чтобы соответствовать руководству по стилю Apple Objective-C.
4 ответа
Это было преднамеренно введено на некотором этапе (поэтому, если вы не можете воспроизвести поведение, скорее всего, вы используете старую версию).
контракты в формате clang перечисляются в одну строку, если все элементы помещаются в одну строку. Это экономит место и обычно не уменьшает читаемость. Варианта стиля нет, но вы можете переопределить его, добавив комментарий к строке или добавив запятую после последнего перечислителя, например:
enum {
ONE,
TOW,
THREE,
};
или же
enum {
ONE, // This means ...
TOW,
THREE
};
AllowShortEnumsOnASingleLine: false
Для поддержки этого вам может потребоваться более новая версия clang-format. Из https://clang.llvm.org/docs/ClangFormatStyleOptions.html
Другое решение - использовать:
BraceWrapping:
AfterEnum: true
В результате получится следующее:
enum
{
ONE,
TOW,
THREE,
};
Это не идеально, потому что заставляет новую строку перед {
, но, на мой взгляд, это стоит рассматривать как ColumnLimit = 0
отключает интеллектуальную упаковку кода, и многие люди могут обнаружить, что от этого не стоит отказываться.
За этот ответ, настройка ColumnLimit
в 0
также достигнет этого поведения.