Windows (Msys2)でclang-formatを使う
Windows (Msys2) 環境でclang-formatを使う方法
インストール
Msys2での導入は簡単。pacman
コマンドで一発
% pacman -S pacman -S mingw-w64-x86_64-clang
設定
基本はgoogle style guideにならいます。-style=google
で指定できるけど、毎回設定するのは面倒なのでプロジェクトのトップフォルダに.clang-formatファイルを置いておきます。設定ファイルは遡って検索してくれるので便利です
% clang-format -style=google -dump-config > .clang-format
% vi .clang-format #好みに合わせて微調整
@@ -50,12 +50,12 @@
-ColumnLimit: 80
+ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
-ConstructorInitializerIndentWidth: 4
-ContinuationIndentWidth: 4
+ConstructorInitializerIndentWidth: 2
+ContinuationIndentWidth: 2
実行
実際の整形はファイルを指定してclang-format
を実行するだけです。オプションなしで実行すると、結果を標準出力に表示します。-i
オプションでファイルを上書きしてくれます。上書きする前にはgit add
で一時保存しておくといいと思います
// clang_format.cc 元コード
#include <string>
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Hello World! (number of option:" << argc << ")" << std::endl;
if (argc>1) {
return -1;
} else {
return 0;
}
}
% clang-format -i clang_format.cc
% git diff clang_format.cc
--- a/clang_format.cc
+++ b/clang_format.cc
@@ -1,10 +1,10 @@
-#include <string>
#include <iostream>
+#include <string>^M
int main(int argc, char** argv) {
std::cout << "Hello World! (number of option:" << argc << ")" << std::endl;
-if (argc>1) {
+ if (argc > 1) {^M
return -1;
} else {
return 0;
最近のコメント