Опции стиля clang для перечислений

Кто-нибудь знает, как настроить clang-формат для сохранения enum в отдельных строках?

т.е.

enum {
    ONE,
    TOW,
    THREE
};

против

enum {ONE, TWO, THREE};

РЕДАКТИРОВАТЬ:

Вот параметры стиля, которые я использую, чтобы соответствовать руководству по стилю Apple Objective-C.

http://pastebin.com/0cTEhvBv

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 также достигнет этого поведения.

Другие вопросы по тегам