すべてのif()/ do/whileステートメントなどに中括弧を追加するためのclang-formatのオプションはありますか?
例えば
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形式(v3.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