是否有一个选项为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
解决方法
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