Можно ли в формате clang добавить фигурные скобки в одну строку, если операторы и т. Д.

Есть ли возможность для clang-формата добавлять скобки ко всем операторам if () / do / while и т. Д.?

например

if( i == 42 )
std::cout << "You found the meaning of life\n";
else
std::cout << "Wrong!\n";

в

if( i == 42 )
{
std::cout << "You found the meaning of life\n";
}
else
{
std::cout << "Wrong!\n";
}

С помощью

$ clang-format --version
clang-format version 3.6.0

35

Решение

clang-tidy может вносить синтаксические изменения в ваш код, используя FIXITS

clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -- COMPILE_OPTIONS

Обновлено:

clang-tidy — немного тяжелый инструмент для этого, так как для анализа файла нужны опции компиляции, к сожалению, формат clang (начиная с версии 3.9) не добавляет фигурные скобки.

COMPILE_OPTIONS будут пути включения и т.д., которые вы используете для компиляции файла, т.е. -std=c++14 -stdlib=libc++ -O2 -I.

Если у тебя есть compile_options.json файл из CMake, затем вы можете передать путь к каталогу, в котором он содержится, в clang-tidy, и он найдет соответствующие параметры компиляции для файла:

clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -p COMPILE_OPTIONS_DIR
24

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


По вопросам рекламы [email protected]