astyle 全稱為 Artistic Style, 官方網站是 http://astyle.sourceforge.net
astyle不但可以對C/C++進行格式優化,還可以處理Java和C#。
astyle 是一個命令行程序,簡單的使用方法是直接使用astyle加上你要格式化的程序的源文件。
astyle支持不同的代碼風格,也有不同的參數來設置自己想要的效果
通過命令“astyle -V”可以查詢版本信息
通過命令“astyle --help”可以獲取所有參數的介紹
下載最新版本 : http://sourceforge.net/projects/astyle
astyle是一個命令行工具,命令語法很簡單:
astyle [options] < original > Beautified
astyle [options] Foo.cpp Bar.cpp [...]
可以用通配符指定要處理的文件,用 -r 遞歸處理子目錄
下面的命令可以一次性格式化某個目錄(包含子目錄)下所有的源文件和頭文件
for /R %f in (*.cpp;*.c;*.h) do astyle --style=ansi "%f"
下面的命令將格式化foo.c文件,更改其風格為ANSI,並將原始文件備份到foo.c.orgin。
astyle --style=ansi foo.c
astyle包含了以下幾種預定義風格,只需在參數中簡單指定即可使用
ansi, kr, linux, gnu, java
http://biancheng.dnbcw.info/linux/254469.html
設置選項
By default, astyle is set up to indent C/C++/C#/Java files,
with 4 spaces per indent, a maximal indentation of 40 spaces inside continuous statements,and NO formatting.
Option's Format:
----------------
Long options (starting with '--') must be written one at a time.
Short options (starting with '-') may be appended together.
Thus, -bps4 is the same as -b -p -s4
tab選項: 默認tab是4個空格.
--indent=spaces=# OR -s# 默認行縮進為4個空格,可以將#替換為縮進量
--indent=tab OR --indent=tab=# OR -t OR -t# 行縮進用tab, 默認tab長度與4個空格相等
--indent=force-tab=# OR -T# 優先采用空格縮進
大括號選項: If no brackets option is set, the brackets will not be changed.
--brackets=break OR -b 大括號與前一塊隔開為兩行 Break brackets from pre-block code (i.e. ANSI C/C++ style).
--brackets=attach OR -a 大括號前一個與上一行在同一行 Attach brackets to pre-block code (i.e. Java/K&R style).
--brackets=linux OR -l 定義塊 和 函數塊中的大括號都被處理 Break definition-block brackets and attach command-block brackets.
--brackets=stroustrup OR -u 只處理函數中的大括號 Attach all brackets except function definition brackets.
縮進選項:
--indent-classes OR -C 縮進類定義中的public private protected標簽.
Indent 'class' blocks, so that the inner 'public:','protected:' and 'private:
headers are indented in relation to the class block.
--indent-switches OR -S 縮進switch中的case塊,case和switch不在同一列
Indent 'switch' blocks, so that the inner 'case XXX:' headers are indented in relation to the switch block.
--indent-cases OR -K 縮進case下面的語句
Indent case blocks from the 'case XXX:' headers.
Case statements not enclosed in blocks are NOT indented.
--indent-blocks OR -G 縮進塊, 包括大括號
Add extra indentation entire blocks (including brackets).
--indent-brackets OR -B 縮進大括號
Add extra indentation to '{' and '}' block brackets.
--indent-namespaces OR -N 縮進命名空間定義行
Indent the contents of namespace blocks.
--indent-labels OR -L 縮進標簽
Indent labels so that they appear one indent less than the current indentation level,
rather than being flushed completely to the left (which is the default).
--indent-preprocessor OR -w 縮進多行宏定義
Indent multi-line #define statements.
--max-instatement-indent=# OR -M# 跨行縮進,比如函數定義中的參數處在多行,那么參數縮進到同一列
Indent a maximal # spaces in a continuous statement, relative to the previous line.
--min-conditional-indent=# OR -m#
Indent a minimal # spaces in a continuous conditional belonging to a conditional header.
格式化選項:
--break-blocks OR -f 空行分隔沒有關系的塊,類,標簽(不包括函數塊)
Insert empty lines around unrelated blocks, labels, classes, ...
--break-blocks=all OR -F 空行分隔無關系的塊,包括else catch等
Like --break-blocks,
except also insert empty lines around closing headers (e.g. 'else', 'catch', ...).
--break-closing-brackets OR -y else catch左邊的大括號與else catch分隔
Break brackets before closing headers (e.g. 'else', 'catch', ...).
Use with --brackets=attach, --brackets=linux, or --brackets=stroustrup.
--break-elseifs OR -e else if()分隔為兩行
Break 'else if()' statements into two different lines.
--delete-empty-lines OR -x 刪除多余空行
Delete empty lines within a function or method.
It will NOT delete lines added by the break-blocks options.
--pad-oper OR -p 操作符兩端插入一個空格
Insert space paddings around operators.
--pad-paren OR -P 括號內外都插入空格
Insert space padding around parenthesis on both the outside and the inside.
--pad-paren-out OR -d 括號外部插入空格
Insert space padding around parenthesis on the outside only.
--pad-paren-in OR -D 括號外部插入空格
Insert space padding around parenthesis on the inside only.
--unpad-paren OR -U 移除括號兩端多余空格
Remove unnecessary space padding around parenthesis.
This can be used in combination with the 'pad' options above.
--keep-one-line-statements OR -o 一行中的多個申明不分隔 int x;int y;int z 不被分為3行
Don't break lines containing multiple statements into multiple single-statement lines.
--keep-one-line-blocks OR -O 大括號中的單行語句不被拆分
Don't break blocks residing completely on one line.
--convert-tabs OR -c tab轉換為空格
Convert tabs to the appropriate number of spaces.
--fill-empty-lines OR -E 塊間空行的換行符前插入一個空格
Fill empty lines with the white space of their previous lines.
--mode=c 處理c文件
Indent a C or C++ source file (this is the default).
--mode=java 處理jave文件
Indent a Java source file.
--mode=cs 處理c#文件
Indent a C# source file.
其他選項:
--suffix=#### 指定備份文件的后綴
Append the suffix #### instead of '.orig' to original filename.
--suffix=none OR -n 不備份文件
Do not retain a backup of the original file.
--options=#### 指定從####文件讀取選項信息
Specify an options file #### to read and use.
--options=none 禁止從文件讀取選項信息
Disable the default options file.
Only the command-line parameters will be used.
--recursive OR -r OR -R 遞歸處理子目錄
Process subdirectories recursively.
--exclude=#### 排除不處理的文件夾
Specify a file or directory #### to be excluded from processing.
--errors-to-stdout OR -X
Print errors and help information to standard-output rather than
to standard-error.
--preserve-date OR -Z 不修改時間
The date and time modified will not be changed in the formatted file.
--verbose OR -v 輸出詳細處理信息
Verbose mode. Extra informational messages will be displayed.
--formatted OR -Q 輸出信息中只包括被修改的文件信息
Formatted display mode. Display only the files that have been formatted.
--quiet OR -q 忽略所有錯誤
Quiet mode. Suppress all output except error messages.
--version OR -V 輸出astyle版本
Print version number.
--help OR -h OR -? 幫助信息
Print this help message.
Artistic Style for Windows is a C, C++, C#, and Java source code indenter and formatter that uses Artistic Style as the indenting and formatting engine. It is a simple, easy to use, intuitive graphic user interface (GUI) that is fully integrated, not a separate front-end program. The Scintilla editing component is used as the editor and allows for unrestricted selective formatting of a document. Everything done in the editor is undo-able, including formatting of the entire document. Documents can be reviewed and, if necessary, reformatted using different options. It can be executed from most development environments and will open the currently selected document.
A wide range of options allow for customized document formatting. An Options Dialog box contains a user friendly preview window showing the effects of each option as it is selected. Search capabilities allow for review of selected code segments, such as classes, switches, or case statements. File backup capability is provided.
Artistic Style for Windows is absolutely free. For further information see the Downloads page.
Features
- Uses Artistic Style 2.03
- Fully integrated GUI
- Unrestricted selective formatting
- Undo capability
- Executable from development environments
- Syntax highlighting
- Option preview window
- Search capability
- Backup/restore capability