Я хочу настроить свой формат clang для форматирования этого:
double var1, var2,
var3, var4;
в это:
double var1, var2,
var3, var4;
Есть ли способ добиться этого?
Если его невозможно настроить для выравнивания, можете ли вы хотя бы настроить так, чтобы он оставался в покое, когда вы его пишете, как во втором примере?
Это не ответ, но вы можете добавить разрыв строки между double
и var1
.
@Wolfiwolf, как человек, просматривавший множество файлов кода, первое, что я делаю, это автоформатирую код. Таким образом, использование нестандартного формата непродуктивно в условиях компании. Вместо этого рассмотрите возможность использования более распространенного форматирования с помощью более популярных автоформатов.
@heapunderrun, я работаю во встроенной области, где стиль кодирования требует объявлять переменную поверх блока, где она будет использоваться (Linux, загрузочные драйверы)
Как сказано в heap underrun : не объявляйте переменные таким образом. Вы можете прочитать больше об этом, например. в BARR-C:2018 Правило 8:
символ * х, у; // Был ли y также задуман как указатель? Не делай этого.
Стоимость размещения каждой декларации в отдельной строке невелика. К напротив, риск того, что компилятор или сопровождающий непонимание ваших намерений высоко.
При этом: с Clang-Format невозможно делать то, что вы хотите. Еще. И, вероятно, никогда, из-за упомянутого дурного стиля.
Но поскольку вы также спрашивали, можно ли оставить все как есть, можно сделать следующее:
// clang-format off
double var1, var2,
var3, var4;
// clang-format on
Обратите внимание, что между этими двумя комментариями все форматирование будет отключено. И это будет трудоемко, если вы часто сталкиваетесь с такой ситуацией.
Подробнее об этом можно прочитать в разделе Параметры стиля Clang-Format.
Это не ответ, но я предлагаю объявлять каждую переменную в отдельной строке и как можно ближе к месту ее первого использования. Также не забудьте инициализировать, т. е.
double var1{};
.