C++ clang格式是否可以在单行if语句中添加大括号等

C++ clang格式是否可以在单行if语句中添加大括号等,c++,clang,clang-format,C++,Clang,Clang Format,是否有一个clang format选项,可以向所有if()/do/while语句等添加大括号 乙二醇 ClangTidy可以使用FIXITS对代码进行语法更改 clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -- COMPILE_OPTIONS 更新: ClangTidy在这方面有点重要,因为它需要编译选项来解析文件,遗憾的是,ClangFormat(从v3.9开始)不会添加大括号 COM

是否有一个clang format选项,可以向所有if()/do/while语句等添加大括号

乙二醇


ClangTidy可以使用FIXITS对代码进行语法更改

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

ClangTidy在这方面有点重要,因为它需要编译选项来解析文件,遗憾的是,ClangFormat(从v3.9开始)不会添加大括号

COMPILE\u选项将是编译文件时使用的包含路径等,即
-std=c++14-stdlib=libc++-O2-I.

如果您有来自CMake的
compile\u options.json
文件,则可以将包含该文件的目录路径传递到clang tidy,它将查找该文件的适当编译选项:

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

在对@BaummitAugen的快速扫描中,我没有找到任何选项,我也找不到,但对某些选项的描述非常模糊,无法找到一种搜索常见的不带大括号的单行的方法。你无法弥补这一点。他们格式化了一切。。。。。。除此之外,是否可以在不创建编译数据库的情况下运行此功能?假设我只想运行可读性检查,而不寻找编译错误。我这样做是因为我想编辑独立于整个项目的单个文件。当我尝试这样做时,我在加载编译数据库时遇到了
错误,并且
运行时没有标记。
我想这意味着它忽略了可读性检查,因为它没有像我希望的那样添加大括号。举个具体的例子,假设我的文件有
#include./header.h”
但我正在父目录中没有
header.h
的目录中编辑文件。在这种情况下,是否仍然可以使用clang-tidy?我已经用额外的信息更新了我的答案,因为它不能很好地放在评论中。我不确定我能想到哪些编译器标志可以获得您的特定示例,其中一个文件被相对包含引用,正在工作。clang-tidy实际上只是静态分析器的前端。它确实需要成为构建过程的一部分。
$ clang-format --version
clang-format version 3.6.0
clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -- COMPILE_OPTIONS
clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -p COMPILE_OPTIONS_DIR