clang-формат удаляет новые строки в определении массива с помощью обозначений
Мне нравится определять значения моего массива с помощью указателя, когда это возможно:
enum Mode {
NONE,
SPLIT_FILES,
SINGLE_FILE,
INVALID
};
const std::string ModeName[] = {
[NONE] = "NONE",
[SPLIT_FILES] = "SPLIT_FILES",
[SINGLE_FILE] = "SINGLE_FILE",
[INVALID] = "INVALID"
};
Выполнение этого через clang-format
(3.5) искажает новые строки и делает их менее читабельными:
enum RecorderMode { REC_NONE, REC_SPLIT_FILES, REC_SINGLE_FILE, REC_INVALID };
const std::string RecorderModeName[]
= {[REC_NONE] = "NONE", [REC_SPLIT_FILES] = "SPLIT_FILES", [REC_SINGLE_FILE] = "SINGLE_FILE",
[REC_INVALID] = "INVALID" };
Определение массива имеет несколько проблем: = {
перемещается на следующую строку. Если я добавлю запятую после последней записи массива, строки будут сдавлены дважды.
Есть ли способ сохранить новые строки и отступы, если не использовать clang-format отключить комментарий?
Это показывает обходной путь для enum
(добавьте запятую после последней константы или добавьте завершающий комментарий после запятой), но, похоже, это не относится к массиву.
2 ответа
Этот ответ дал мне приемлемый обходной путь:
Задавать ColumnLimit
до 0. Компромисс в том, что ни одна строка автоматически не переносится, но это того стоит. Все программисты на работе, как правило, не пишут последние 120 колонок.
Комментарии на каждой строке также работает.
enum Mode {
NONE, // Comments
SPLIT_FILES, // On
SINGLE_FILE, // Every
INVALID // Line
};