使用Astyle 帮助整理代码
Astyle 的全称是Artistic Style,某种程度是目前最好用的代码整理工具,很多所谓的代码整理工具其实都是拿这个东东改进,开发的。其网址在,http://astyle.sourceforge.net/,最新版本是2.02,基本已经稳定,最近升级很少了。
Astyle好在那儿呢,一方面他支持大部分代码格式,一方面他支持C, C++, C#, and Java等语言,一方面他可以编译成LINUX版本,直接用命令行方式,一方面也可以和大部分IDE环境集成。所以其是编写代码处理的利器。
另外,虽然很多IDE环境有自己的一些代码格式化方法,比如visual studio下选择代码,快捷键Ctrl +KF(或者Alt +F8,Ctrl+E,F,Ctrl+E,D之类),就可以格式化整理代码。但是还是术有专攻,visual studio的代码格式化不会自动帮我将代码中间的旧有tab 替换成空格,在分析某些稍微复杂的语法(特别是模版)时,经常会出现换行对齐错误的问题,而且visual studio不同版本下,自己默认的某些对齐方式也有所不同。
所以我个人还是推荐定期用Astyle整理一下自己的代码,可以让自己的代码更加养眼。从网站下载回来的Astyle有Windows编译版本,也有源代码。在Linux下你可以自己编译。整日骇客帝国的兄弟也可以使用。
我们先介绍一下Astyle如何集成到IDE开放工具中,
如果单独是命令行,Astyle的使用比较简单,我一般都将选项放入到配置文件里面。当然如果你记忆力超凡,可以直接输入参数另说。
astyle --options=astyle.conf 文件名称 [生成文件名称]
如果你和我一样,虽然喜欢用visual studio基础环境,你可以打开菜单Tools\External Tools。打开外部工具设置界面。

你可以根据你自己的喜好一次格式化一个文件,配置如下:
Title: AStyle File
【说明:任意输入】
Command: F:\MyTools\Astyle\bin\AStyle.exe
【说明:绝对路径】
Arguments: --options=F:\MyTools\Astyle\bin\astyle.conf $(ItemFileName)$(ItemExt)
【说明:选项文件也用绝对路径,$(ItemFileName)$(ItemExt) 表示当前要处理的文件】
Initial directory: $(ItemDir) 表示处理文件的目录
【说明:在那个目录进行处理,一般选择$(ItemDir)】
Use Output window: 勾选
【说明:将astyle的输出放到output窗口】
也可以一次将Porject下所有的文件全部格式化了。配置如下:
Title: AStyle Project
【说明:任意输入】
Command: F:\MyTools\Astyle\bin\AStyle.exe
【说明:绝对路径】
Arguments: --options=F:\MyTools\Astyle\bin\astyle.conf *.h *.cpp *.hpp *.c
【说明:选项文件也用绝对路径,一次将所有的文件都进行处理掉】
Initial directory: $(ItemDir) 表示处理文件的目录
【说明:在那个目录进行处理,一般选择$(ItemDir)】
Source insight的配置也大同小异。主要就是run这个地方配置成
F:\MyTools\Astyle\bin\AStyle.exe --options=F:\MyTools\Astyle\bin\astyle.conf %f
其中%f表示当前正在处理的文件。

下面简单介绍一下我使用的选项配置说明,,大家有兴趣自己阅读,说明文档http://astyle.sourceforge.net/astyle.html,也很简短的说。
#指定文件处理模式,C/C++模式,其他选择还有cs,java
--mode=c
#ANSI标准的文件格式,就是{另启一行,}另启一行的那种,其他选择很多,不介绍了
--style=ansi
#缩进采用4个空格
--indent=spaces=4
#对于单行的语句增加括号
#Add brackets to unbracketed one line conditional statements (e.g. 'if', 'for', 'while'...).
--add-brackets
#强制转换TAB为空格
--convert-tabs
#将preprocessor (#define) 这类预定的语句,如果有多行时前面填充对齐,(是对单语句(多行)进行填充呀)
--indent-preprocessor
#Attach a pointer or reference operator (* or &) to either the variable type (left) or variable name (right), or place it between the type and name.
#*,&这类字符靠近类型
#--align-pointer=type
#*,&这类字符靠近变量名字,目前选择这个,
--align-pointer=name
#在操作符号两边增加空格字符 ==
--pad-oper
#在几个关键字后面增加空格
#insert space padding after paren headers only (e.g. 'if', 'for', 'while'...).
--pad-header
#在if,for,while等代码段前后增加空行,这个其实挺好,但如果你不喜欢,可以关闭
#Pad empty lines around header blocks (e.g. 'if', 'for', 'while'...).
--break-blocks
#去掉括号两边多余的空格,
#暂时放弃,不是特别喜欢这个
#Remove extra space padding around parenthesis on the inside and outside.
#--unpad-paren
#备份文件的后缀,默认是.orig,=none表示不进行备份,
#放弃备份文件,以Astyle的版本,目前做这个没有什么差别。而且备份文件会影响你的代码
--suffix=none
#行结束用什么文件格式,UNIX的还是Windows的,
#--lineend=windows
#后台开放统一用UNIX的方式
--lineend=linux
#switch case的代码也按照标准缩进方式缩进
--indent-switches
#如果函数开始后面({后面)第一行是注释,也进行缩进
--indent-col1-comments
#namespace class内部的public,等我没有选择缩进
#--indent-namespaces
#--indent-classes
#多行条件语句如何进行缩进,=0表示和(对齐,=1表示缩进一次,=2表示缩进两次,=3缩进一个半
#MS visual studio的默认格式化是缩进一个,
--min-conditional-indent=1
#最大的缩进对齐长度,默认40,最大120,超过这个长度的多行()内语句不进行缩进,考虑到现在语句都较长
--max-instatement-indent=80
Astyle是一款强大的代码格式化工具,支持C, C++, C#, Java等多种语言,能方便地在命令行或IDE中使用。它可以替换旧有的tab为空格,解决复杂语法的换行对齐问题,使代码更规范。本文介绍了如何将Astyle集成到Visual Studio和Source Insight中,以及一些常用的配置选项,如--style=ansi、--indent=spaces=4等,以提升代码的可读性和一致性。"
75195851,7053312,卡尔曼滤波公式推导:基于射影定理的解析,"['卡尔曼', '滤波理论', '状态空间模型', '线性随机系统']
5661

被折叠的 条评论
为什么被折叠?



