小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Artistic Style(AStyle)でC++のコードをきれいに整形する

はじめに

Artistic Styleというツールを使うと、コマンドラインから指定した.cppファイルのインデントなどを整形することができます。
この記事では、Artistic Style(AStyle)の使い方を紹介します。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
Dustin Boswell Trevor Foucher
オライリージャパン
売り上げランキング: 1,208

Artistic Styleの入手

以下のサイトからArtistic Styleをダウンロードできます。

Artistic Styleの使い方

1.AStyle_2.xx_windows.zipを解凍し、binフォルダを開きます。
2.アドレスバーに"cmd"と入力し、Enterキーを叩くとコマンドプロンプトでbinフォルダを開きます。

3.以下の形式でコマンドを叩くと、指定したソースコードを整形することができます。

astyle "hello world.cpp"

整形前のソースファイルは、.origという拡張子がついた状態で同じフォルダに保存されています。

複数のファイルを一気に整形する

以下のように*を指定することで、ワイルドカードで複数のファイルを整形することができます。

astyle *.cpp
オプションファイル

Artistic Styleには多くのオプションが用意されていて、整形する際のルールを細かく指定できるようになっています。

これらのオプションは、astyleコマンドの引数としても指定できますが、オプションファイルをあらかじめ用意しておくことで、そのオプションファイルに記載したルールに従って整形してくれます。

オプションファイルは、astylercというファイル名で作成します。Windowsでは%USERPROFILE%配下に格納すると、実行時に自動的に読みにいってくれます。

以下にオプションファイルに記載するルールをいくつか紹介します。

言語タイプを指定する(mode)

mode=cとすると、指定されたソースファイルをC言語*1として認識してくれます。その他に、mode=cs*2とmode=javaをサポートしています。

インデントスタイル(style)

style=ansiとすると、以下のような{}で1行を要するコーディングスタイルになります。他にもk&rやjavaスタイルがありますので、詳しくはドキュメントを参照してください。


タブインデントとスペースインデント

indent=tab=4とすると、4つ半角スペースを1つのタブでインデントします。
反対に、indent=spaces=4を指定すると、半角スペースを4つ使ってインデントします。

Switch、Caseでインデント

indent-switches
indent-cases
と指定すると、Switch文でインデントし、さらにCase文でもう一段インデントします。

空行の挿入

break-blocksを指定すると、if文、for文, while文の前後に強制的に空行を挿入します。

空白の挿入

pad-operを指定すると、if文の評価式内に空白を挿入します。

制御文への空白挿入

pad-headerを指定すると、if文、for文, while文の(の前に空白を挿入します。

{}の省略された文へ{}をつける

add-one-line-bracketsを指定すると、{}の省略された文に{}が付加されます。

まとめ
  • Artistic Styleを使うと、指定した.cppファイルのインデントなどを整形することができます。
  • オプションファイルを用意することで、プロジェクトごとに細やかなルールを作って運用することができます。
  • ワイルドカードを使えば、複数のファイルを一気に整形することもできます。

*1:C, C++, C++/CLI, and Objective-Cを含みます。

*2:C#