您的位置:首页 > 编程语言

AStyle代码格式工具在source insight中的使用

2014-11-22 00:17 267 查看
一、AStyle下载路径

  Astyle为开源项目,支持C/C++和java的代码格式化

  Home Page: http://astyle.sourceforge.net/

  Project Page: http://sourceforge.net/projects/astyle/

  下载最新Windows版本的AStyle,解压到你指定位置,笔者解压到D:\program files下的。

二、Source Insight中安装Astyle工具

  如:增加Astyle命令,格式化C/C++文件

  1. 打开source insight中的一个工程,选择Options--Custom Commands命令



         2. 点击add,添加新的命令Astyle。

            1)ansi C 格式化当前文件的命令为

        其中,Run中输入astyle的命令参数:"D:\program files\AStyle\bin\AStyle.exe" --style=ansi-s4 -S -N -L -m0 -M40 --convert-tabs --suffix=.pre %f



 

            2)ansi C 格式化某个目录下所有文件的命令为:

            "D:\program files\AStyle\bin\AStyle.exe" Z:\LocalProject\DEZHOU3716/*.c Z:\LocalProject\DEZHOU3716/*.h --style=ansi -s4 -S -N -L -m0 -M40 --recursive --convert-tabs --suffix=.pre %f



3. 添加menu菜单,点击“menu”,选择menu--View,然后INSERT。这样就可以在菜单栏View上多一个命令选项。



4. 添加快捷键,点击"Assigh New Key",输入快捷键:Ctrl+Alt+C。以后格式化C/C++文件,就可以直接使用快捷键了。

 



同理,新建java格式化命令,Astyle参数为

  C:\AStyle\bin\AStyle.exe --style=java -s4 -S -N -L -m0 -M40 --suffix=none --convert-tabs %f

三、其他常用的参数:

-C
类中public,pretected,private关键字,一个tab的缩进
-S
switch中case关键字,一个tab的缩进
-K
switch中case关键字,无缩进
-N
被namespace包含的block,一个tab的缩进
-w
格式化多行的宏定义
-c
将tab转化为对应个数的空格
--mode=c
格式化的是C/C++的源文件或者头文件(缺省值)
--mode=java
格式化的是JAVA的源文件
--suffix=####
将原始文件保存为“####”后缀,而不是“orig”
--suffix=none
不保存原始文件
--exclude=####
优化时不包含“####”文件或目录
-Z
修改后保持文件的修改时间不变
-X
将错误信息输出到标准输出设备(stdout),而不是标准错误设备(stderr)
-Q
只显示格式化前后发生变化的文件
-q
不输出任何信息
-z1
使用windows版本的回车符(CRLF)
-z2
使用linux版本的回车符(LF)
--help
显示帮助信息
-v
显示版本信息
 

基于V2.02版本,astyle主要支持的参数有:

Style-格式配置:

最常用的就是ansi或或kr格式,实际上,kr,stroustrup和linux这三种格式是非常接近的了,试了好几个文件,只有非常微小的区别,可以忽略不计。

stype

选项
--style=allman

--style=ansi

--style=bsd

--style=break

-A1
--style=java

--style=attach

-A2
--style=kr

--style=k&r

--style=k/r

-A3
--style=stroustrup

-A4
--style=whitesmith

-A5
--style=banner

-A6
代码风格
int Foo()

{

    if (isBar)

    {

        bar();

        return 1;

    }

    else

    {

        return 0;

    }

}
int Foo() {

    if (isBar) {

        bar();

        return 1;

    } else {

        return 0;

    }

}
int Foo()

{

    if (isBar) {

        bar();

        return 1;

    } else {

        return 0;

    }

}
int Foo()

{

    if (isBar) {

        bar();

        return 1;

    } else {

        return 0;

    }

}
int Foo()

    {

    if (isBar)

        {

        bar();

        return 1;

        }

    else

        {

        return 0;

        }

    }
int Foo() {

    if (isBar) {

        bar();

        return 1;

        }

    else {

        return 0;

        }

    }
stype

选项
--style=gnu

-A7
--style=linux

-A8
--style=horstmann

-A9
--style=1tbs

-A10
--style=pico

-A11
--style=lisp

-A12
代码风格
int Foo()

{

    if (isBar)

        {

            bar();

            return 1;

        }

    else

        {

            return 0;

        }

}
int Foo()

{

    if (isBar) {

        bar();

        return 1;

    } else {

        return 0;

    }

}
int Foo()

{   if (isBar)

    {   bar();

        return 1;

    }

    else

    {   return 0;

    }

}
int Foo()

{

    if (isBar) {

        bar();

        return 1;

    } else {

        return 0;

    }

}
int Foo()

{   if (isBar)

    {   bar();

        return 1; }

    else

        return 0; }
int Foo() {

    if (isBar) {

        bar();

        return 1; }

    else

        return 0; }

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  AStyle