AStyle(全称Artistic Style)是一个C、C++、C#和Java源代码缩进、格式化和美化工具。官方下载是命令行版程序,可以整合到开发IDE环境中去使用,甚至也可以整合到Notepad++之类的编辑器中。
官方地址:http://astyle.sourceforge.net/
本地下载:http://download.csdn.net/source/3323725
在这里介绍AStyle整合到VS2008的方法,以及如何使用。
1.首先下载AStyle,将其bin文件夹下的"AStyle.exe"解压到"D:/Program Files/Microsoft Visual Studio 9.0/Common7/Tools"文件夹下,具体路径根据所安装的VS路径进行更改,这是专门放置Visual Studio外部工具的文件夹;
2.打开Visual Studio 2008,在菜单栏→"工具"→"外部工具",点击"添加",在下面的编辑框里分别填入信息:
标题:AStyle格式化工具
命令:D:/Program Files/Microsoft Visual Studio 9.0/Common7/Tools/AStyle.exe
参数:-A1pNYk3 $(ItemFileName)$(ItemExt)
初始化目录:$(ItemDir)
√使用输出窗口
3.就可以在"工具"菜单栏下看到"AStyle格式化工具"选项了,要格式化文档前,先保存文档再调用"AStyle格式化工具"选项,这时,会弹出"是否要重新加载它"的询问框,可在"工具"→"选项"→"环境"→"文档"→"自动加载更改"打钩。
4.要为"AStyle格式化工具"选项设置快捷键的话,在"工具"菜单上选择"选项",从"环境"页中选择"键盘",在"显示命令包含"列表中键入"工具",在"命令名"列表中滚动到相应的"外部命令 n"项。在这里我是第9个外部命令项,所以找到"工具.外部命令9",在"按快捷键"处,键入要设置的快捷键,点击"分配"。如下图所示:
AStyle参数如下:
①Ansi/Allman/Bsd风格(格式缩进从下一行开始括号)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
②Java风格(格式缩进直接紧接后面括号)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
③Kernighan_Ritchie风格(格式缩进使用Linux方式括号)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
④Stroustrup风格(格式缩进使用stroustrup方式括号,缩进使用5个空格)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
⑤Whitesmith风格(格式缩进使用下一行且缩进的括号)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
⑥Banner风格(格式缩进使用直接紧接和缩进的括号)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
⑦GNU风格(格式缩进使用下一行括号,语句块括号缩进两个空格)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
⑧Linux风格(格式缩进使用Linux方式括号,语句块里面缩进8个空格)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
⑨Horstmann风格(格式缩进使用horstman方式,括号紧接语句块)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } |
⑩1tbs/otbs风格(格式缩进使用Linux方式括号,自动补全单行语句块括号)
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else { return 0; } } |
⑾pico风格
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; }
|
⑿lisp/python风格
int Foo(bool isBar) { if (isBar) { bar() return 1; } else return 0; }
|
也可以自定义格式化参数:
①制表和括号选项
参数命令 |
参数说明 |
default indent option |
默认4个空格 |
--indent=spaces / --indent=spaces=# / -s# |
指定#个空格,#在1~20之间 |
--indent=tab / --indent=tab=# / -t# |
使用制表符,指定#个空格(1~20) |
--indent=force-tab / --indent=force-tab=# / -T#
|
强制使用制表符,指定#个空格,#在1~20之间 |
default brackets option |
默认不改变括号
|
--brackets=break / -b |
括号改为下行( e.g. ANSI C / C++ style ) |
--brackets=attach / -a |
括号在语句后( e.g. Java / K&R style ) |
--brackets=linux / -l |
括号如linux风格 |
--brackets=stroustrup / -u |
括号如stroustrup风格 |
--brackets=horstmann / -g |
括号如horstmann 风格 |
②缩进选项
参数命令 |
参数说明 |
--indent-classes / -C |
缩进class和struct块后面的public等 |
--indent-switches / -S |
缩进switch块后面的case块 |
--indent-cases / -K |
缩进case块后面的括号 |
--indent-brackets / -B |
括号缩进 |
--indent-blocks / -G |
括号缩进,函数缩进
|
--indent-namespaces / -N |
命名空间后缩进 |
--indent-labels / -L |
额外的标签缩进 |
--indent-preprocessor / -w |
多行反斜杠定义缩进 |
--indent-col1-comments / -Y |
允许注释跟随代码一起缩进 |
--max-instatement-indent=# / -M# |
在连续声明中缩进最大#个空格(#小于80,默认为40) |
--min-conditional-indent=# / -m# |
在多行中设置最小缩进(#小于40,默认为当前两倍缩进) |
③填充选项
参数命令 |
参数说明 |
--break-blocks / -f |
在循环语句前后加空行 |
--break-blocks=all / -F |
在循环语句前后、else、catch前加空行 |
--pad-oper / -p |
运算符前后加空格 |
--pad-paren / -P
|
在括号内外都加上空格 |
--pad-paren-out / -d
|
在括号外加上空格 |
--pad-paren-in / -D
|
在括号内加上空格 |
--pad-header / -H
|
只在括弧头部添加一个空格 |
--unpad-paren / -U
|
移除括号内外的空格 |
--delete-empty-lines / -x
|
删除函数方法里多余的空行 |
--fill-empty-lines / -E
|
以空格对齐填充前一行空行 |
④格式化选项
参数命令 |
参数说明 |
--break-closing-brackets / -y
|
让else语句块下起一行 |
--break-elseifs / -e |
让else if 语句拆开缩进 |
--add-brackets / -j |
自动补充括号,默认在条件语句后紧接括号 |
--add-one-line-brackets / -J |
自动补充括号,并且保持括号与语句在一行 |
--keep-one-line-statements / -o
|
维持一行里的多条语句不变 |
--keep-one-line-blocks / -O |
不破坏一行里面的块 |
--convert-tabs / -c |
转换TAB 为空格 |
--align-pointer=type / -k1 --align-pointer=middle / -k2 --align-pointer=name / -k3 |
使指针或者引用符靠近变量类型 使指针或者引用符在变量类型和变量名称中间 使指针或者引用符靠近变量名称 |
--mode=c --mode=cs --mode=java |
指定为C/C++代码格式化 指定为C#代码格式化 指定为JAVA 代码格式化 |
参数命令样式,请参考Artistic Style 说明文档:
http://astyle.sourceforge.net/astyle.html
posted on 2011-10-11 15:50
老马驿站 阅读(956)
评论(0) 编辑 收藏 引用 所属分类:
c++