ソースリスト整形ソフト

ソースリスト整形ソフトで、iP6 Plus とか整形したいです。有名なのは、Clang-Format というのらしいです。どのフォーマットにするのがいいのでしょうか?

 

それにしても、オプションが多すぎます。。

とりあえず、下記を実現してほしいです。

 

これを、

if( hoge == 123)

{

     printf("hogehoge");

}

 

これにしてほしい

if( hoge == 123) {

     printf("hogehoge");

}

他にも、コメント書いてないのを書くようにするとかもありますが。。

 

ただ、clang-format は、Macには入っているのを確認しましたが、Windowsは入ってませんでした。(MSYS2 + mingw には入ってませんでした。)

llvm を入れる必要性があるそうです

 

Clang-Formatの書式について - Qiita

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 とか)基本的には、今後の課題ということになりますね。。。汗 今度から気をつけましょうということでしょうか。。。