Astyle編程語言格式化工具的中文說明


Artistic Style(Astyle) 概述

Artistic Style是一個開源的源代碼格式化工具。

主頁地址:http://astyle.sourceforge.net/,它可以應用在C、C++、Objective-C、C#、Java等程序語言中。

說明文檔:http://astyle.sourceforge.net/astyle.html中為對使用它的詳細介紹。

WIN版本: http://sourceforge.net/projects/astyle/files/ 下載windows下文件,直接解壓就可使用

常用選項參數說明:(詳見官方文檔)

基本設定如下,詳細設定請再往下翻閱

 -s4 : 表示縮進4個空格,默認配置;
 -S: 表示switch中case語句的縮進;
 -N: 表示命名空間namespace內的縮進;
 -U: 表示括號內的兩頭的參數和括號之間不留空格;
 -H: 表示”if”、”for”、”while”等關鍵字右邊增加一個空格;
 -k1: *和&在表示指針和引用類型時,和類型名稱並緊,和變量名之間留空格;
 -p: 在運算符號(操作符)左右加上空格;
 -P: 在括號兩邊插入空格;-d只在括號外面插入空格,-D只在里面插入;
 -j: 給每個”if”、”for”、“while”增加大括號;
 -D: 在小括號邊上增加一個空格;
 -c: 將TAB替換成空格;
 -M: 對定義的參數和變量進行對齊;
 -w: 對宏進行對齊處理;
 --style=ansi: ANSI標准的文件格式,對”{”、”}”另啟一行;
 --indent=spaces=4: 縮進采用4個空格;
 --add-brackets: 對”if”、”for”、“while”單行的語句增加括號;
 --convert-tabs: 強制轉換TAB為空格;
 --indent-preprocessor: 將preprocessor(#define)等這類預定義的語句,如果有多行時前面填充對齊(是對單語句多行進行填充);
 --align-pointer=type: *、&這類字符靠近類型;
 --align-pointer=name: *、&這類字符靠近變量名字;
 --pad-oper: 在操作符號兩邊增加空格字符;
 --pad--header: 在關鍵字”if”、”for”、”while”等后面增加空格;
 --indent-switches: switch case的代碼也按照標准縮進方式縮進;
 --indent-col1-comments: 如果函數開始后面(“{”后面)第一行是注釋,也進行縮進;
 --indent=tab: 顯示說明使用Tab;

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.

風格:

--style=allman  OR  --style=bsd  OR  -A1
allman風格
Allman style formatting/indenting.
Broken brackets.

--style=java  OR  -A2
java風格
Java style formatting/indenting.
Attached brackets.

--style=k&r  OR  --style=k/r  OR  -A3
k&r風格
Kernighan & Ritchie style formatting/indenting.
Linux brackets.

--style=stroustrup  OR  -A4
stroustrup風格
Stroustrup style formatting/indenting.
Stroustrup brackets.

--style=whitesmith  OR  -A5
whitesmith風格
Whitesmith style formatting/indenting.
Broken, indented brackets.
Indented class blocks and switch blocks.

--style=banner  OR  -A6
banner風格
Banner style formatting/indenting.
Attached, indented brackets.
Indented class blocks and switch blocks.

--style=gnu  OR  -A7
gnu風格
GNU style formatting/indenting.
Broken brackets, indented blocks, indent is 2 spaces.

--style=linux  OR  -A8
linux風格
GNU style formatting/indenting.
Linux brackets, indent is 8 spaces.

Tab and Bracket Options:

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.

Indentation options:

--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.

Formatting options:

--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.

Other options:

--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.

Default options file:

Artistic Style looks for a default options file in the
following order:
1. The contents of the ARTISTIC_STYLE_OPTIONS environment
   variable if it exists.
   從ARTISTIC_STYLE_OPTIONS環境變量讀取選項
2. The file called .astylerc in the directory pointed to by the
   HOME environment variable ( i.e. $HOME/.astylerc ).
   從/home文件夾中的.astylerc文件讀取選項
3. The file called astylerc in the directory pointed to by the
   USERPROFILE environment variable ( i.e. %USERPROFILE%\astylerc ).
   從USERPROFILE下的astylerc文件讀取選項信息
If a default options file is found, the options in this file
will be parsed BEFORE the command-line options.
Long options within the default option file may be written without
the preliminary '--'.

--options的用法:

我的在source insight中的設置為 AStyle.exe --options=D:\TOOLS\AStyle\astyle.cfg %f

astyle.cfg內容為:

-s4 -SKFxpUcnlaC
#井號表示是注釋
#-s4 行縮進用4個空格
#-S  switch 與case不同列,case縮進
#-K  縮進case下面的語句
#-F  空行分隔無關塊
#-x  刪除多余空行
#-p  操作符兩端出入空格
#-U  移除括號兩端多余空格
#-c  tab轉空格
#-n  不做備份
#-l  處理定義和函數中的大括號
#-a  大括號保留在上一行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM