ソースリスト整形ソフト
ソースリスト整形ソフトで、iP6 Plus とか整形したいです。有名なのは、Clang-Format というのらしいです。どのフォーマットにするのがいいのでしょうか?
それにしても、オプションが多すぎます。。
とりあえず、下記を実現してほしいです。
これを、
if( hoge == 123)
{
printf("hogehoge");
}
これにしてほしい
if( hoge == 123) {
printf("hogehoge");
}
他にも、コメント書いてないのを書くようにするとかもありますが。。
ただ、clang-format は、Macには入っているのを確認しましたが、Windowsは入ってませんでした。(MSYS2 + mingw には入ってませんでした。)
→llvm を入れる必要性があるそうです
Visual Studioのコード整形にClang Formatを適用してみた | ぺんぎんや
*****************************************************************
追記1
Windows のMsys2 で使う場合は、
% pacman -S mingw-w64-x86_64-clang
で入れるようです。
うーん。
Windows (Msys2)でclang-formatを使う | うどんコード
*****************************************************************
追記2
どうしても、下記のよう(関数の後は改行して、制御ぶんの後は、改行入れない)にならなかったのですが、
int func1(void)
{
func2();
if( true) {
....
}
}
下記のページを見てようやくわかりました。
"BreakBeforeBraces: Custom" が必要なようです。
# { } の位置 # "BreakBeforeBraces: Custom" の場合に有効となる # true なら独立行にする BraceWrapping: AfterControlStatement: false # 制御文の後 AfterEnum: true # enumの後 (単一行にしないため) AfterFunction: true # 関数の後 AfterStruct: true # structの後 (単一行にしないため) AfterUnion: true # unionの後 (単一行にしないため) AfterExternBlock: false # externの後 BeforeCatch: false # catchの前 BeforeElse: false # elseの前 # { } の位置をカスタム設定する BreakBeforeBraces: Custom
Visual Studio Code で clang-format を使用する - suimin-busoku
とはいえ、ある程度形ができてしまっている、某 iP6 Plus に適用するのは問題がありますね。。もしやるなら、いじり出した2002年頃、最初にやるべきでした。。
二つ問題があります。一つは、バグが出た場合、普通はいじったところを見るわけですが、今から整形ソフトを全部適用すると、どこが原因か分かりにくくなる。。。
それから、clang-format だけではできないことがあって、たとえば、下記のformat 変更をしてほしいのですが、
(こうなっているのを)
if( true) // comments
{
.....
}
(こういうのにしてほしい)
if( true) { // comments
.....
}
clang-format では、語句の入れ替えとかはしてくれないので、変化なしになります。
つまり、上記の変更をしたい場合は、手作業で全部書き換えるとかになります。。。汗
一部は変更したのですが、(buffer.c とか)基本的には、今後の課題ということになりますね。。。汗 今度から気をつけましょうということでしょうか。。。