clang格式可以为单行if语句等添加大括号

时间:2014-09-30 01:00:12

标签: c++ clang clang-format

是否有一个clang-format选项可以为所有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

1 个答案:

答案 0 :(得分:30)

clang-tidy可以使用FIXITS

对代码进行语法更改
clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -- COMPILE_OPTIONS

更新:

clang-tidy是一个重要的工具,因为它需要编译选项来解析文件,遗憾的是clang-format(从v3.9开始)不会添加大括号。

COMPILE_OPTIONS将是您用来编译文件的包含路径等,即-std=c++14 -stdlib=libc++ -O2 -I.

如果您有来自CMake的compile_options.json文件,那么您可以将其包含的目录的路径传递给clang-tidy,它将查找该文件的相应编译选项:

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