ClangFormatではコメントも自動フォーマッティングの対象になるため、C++やObjective-CのコードにDoxygen形式でコメントを埋め込んでいる場合、Doxygenでドキュメントを生成した際にドキュメントが崩れてしまうことがあります。
例えば次のようなファイルがあったとします:
Hoe.cpp
/**
kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu?
*/
Hoe::Fuga()
{
...
}
これを例えば次のようなコマンドで自動フォーマットすると、コメントが崩れてしまいます:
$ clang-format -style=Google Hoe.cpp
/**
kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu?
kore wa daijoubu? kore wa daijoubu? kore wa daijoubu?
*/
Hoe::Fuga() {
...
}
これを避けるためには、ClangFormatのCommentPragmas
スタイルオプションを利用します。
例えばDoxygenコメントを「/**
」で開始しているなら、例えば次のようにすればOKです:
$ clang-format -style="{ BasedOnStyle: Google, CommentPragmas: '\*' }" Hoe.cpp
/**
kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu? kore wa daijoubu?
*/
Hoe::Fuga() {
...
}
CommentPragmas
には「/*
」の次に続く文字列にマッチする正規表現パターンを指定することに注意して下さい。