Как мне контролировать отступы инициализаторов массива в формате clang?

Иногда clang-формат делает это:

SomeType VariableName[] = {Thing1,
Thing2,
Thing3}

и иногда clang-формат делает это:

SomeType VariableName[] = {
Thing1,
Thing2,
Thing3}

и одно изменение символа может заставить его переключаться между.

Есть ли способ контролировать, что он делает?

Я собираю из последнего источника Git, так что доступны последние варианты.

6

Решение

В соответствии с этот ответ, clang-format в какой-то шаг помещает как можно больше в одну строку и применяет ColumnLimit на что.

Это объясняет переключение между поведением.

В одну сторону чтобы предотвратить это можно установить ColumnLimit до 0, со стоимостью удаления всех автоматических упаковок. Я думаю, что это стоит затрат, я уверен, что другие не согласны.

0

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

clang-format предоставить пользователю возможность указать одно свойство при форматировании кода, например, tab разрешено, что является tabwidth,

Вы можете использовать следующий способ, чтобы сказать clang-format использовать настраиваемое свойство.

  $clang-format -style="{BaseonStype: llvm, IndentWidth: 8}"$clang-format -style=HAND_WRITTEN_FORMAT_FILENAME
$clang-format -style=llvm  #builtin styles.

Вы можете получить представление о том, какое свойство вы можете настроить в файл от линии 171 ровняться 266,

-3