Artistic Style(AStyle)

概要:
C, C++, C++/CLI, C#, と Java のソースコードの為の
フリーで高速、かつ小型の自動フォーマッター
類似ツール:ClangFormat

イントロダクション

概要:AStyle.exe は、ソースコードの整形を行うプログラムです。
Artistic Style(AStyle)はマルチバイト文字列に対応してないので、ascii文字のみで実行するか、
UTF-8(with BOM)か、UTF-16(with BOM)に、変換してから実行して対応します。(UTF‑32 不可)
ただし、確認しながら作業を行う場合など、無視してツールを実行してしまうのも手段の一つです。
> astyle sjis.cpp
> Cannot convert to multi-byte string, reverting to English

クイックスタート

概要:Artistic Style(AStyle)の使い方

例1.整形前の内容を、 example.cpp.orig にコピーして、 example.cpp を整形する。

> astyle --style=1tbs -t4YpHUk1 example.cpp

注釈

その他の実行例

例2.example.cpp のフォーマットを整形する。(バックアップファイルを作成しない)

> astyle --style=1tbs -t4YpHUk1n example.cpp

例3. input.cpp の内容を整形して、 output.cpp として出力する。

> astyle -A10 --indent=tab=4 -Y -M80 -pHUj < input.cpp > output.cpp

例4.再帰的にすべての .cpp.h ファイルを整形する。

> astyle -A10t4YpHUk1n --recursive /path/to/*.cpp /path/to/*.h

引数の概要(オプションはショート名とロング名があり、同じ意味を持ちます)
ショート名 ロング名 概要
-A10 --style=1tbs 波括弧{}のスタイル(Artistic Style(AStyle) の スタイルオプション(Bracket Style) 参照)
-t4 --indent=tab=4 インデントにタブ、継続行の位置合わせのためのスペースを使ってインデント
-Y --indent-col1-comments C++の1行コメントをコードに合わせてインデントする
-M80 --max-instatement-indent=80 継続行をインデントするスペースの最大値を設定
-p --pad-oper 演算子(+ - * / など)の前後に空白を挿入
-H --pad-header 括弧()のヘッダー(例. ‘if’, ‘for’, ‘while’...)の後ろに空白を挿入
-U --unpad-paren 括弧()の内側の空白を削除
-j --add-brackets 波括弧{}無しのifなどに、波括弧{}をつける(--style=1tbs はこれを含む)
-k1 --align-pointer=type ポインタと参照(* & ^)を型側へ(例. int* p;)
-n --suffix=none 元のファイルのバックアップを保持しない

注釈


Artistic Style との統合

概要:エディターで選択範囲に対して、Artistic Style を適用したい

for サクラエディター

詳細は、 サクラエディターArtistic Style との統合 を参照


for Vim

手っ取り早くVimで「AStyle.exe」を試す場合は、パスを通して以下の手順を参照。

1..vimrcを設定

vmap <C-F> :!AStyle.exe<CR>

2.実行

(1.の例だと)ヴィジュアルモード(Shift + V)にて、
Artistic Styleを適用したい範囲を選択し、Ctrl + Fを押す。

for TextWrangler, BBEdit

詳細は、 Artistic Style Scriptsastyle.pl (Mac Perl script) を参照


ツール

Artistic Style Scripts

概要:Artistic Style を補助するスクリプト群

注釈

astyle-clean.bat (Windows用のスクリプト)

astyle-clean.batは別のディレクトリーにArtistic Styleのバックアップファイルを移動することで、
ディレクトリツリーをきれいにする、Windowsのバッチファイル。

UniversalIndentGUI

概要:さまざまなコード整形ツールをビジュアルで確認できるツール