原创 Astyle源码格式化工具及ICCAVR编辑器集成

2010-9-7 14:37 3312 11 11 分类: MCU/ 嵌入式

Artistic Style

http://astyle.sourceforge.net

最近发现写代码 空格多点是挺好看的,问题是我个懒人,写的时候压根就没这个意识,可以去写的话,速度慢了不说,有的地方有空格,有的地方有忘记了,更难看了,特意上网搜了这个东西,用来格式化代码

建议大家在发布自己软件包含源码的时候,最好也能把代码格式化下,方便别人观看,特别那些刚刚学c/c++,java的新手,没缩进,没什么的,你自己也许不觉得,给别人看的时候是个很难受的事情

一般是切到文件夹下面直接执行下面命令

for /R .\ %f in (*.cpp) do astyle --style=ansi -f -p "%f"

for /R .\ %f in (*.h) do astyle --style=ansi -f -p "%f"

风格说明:

--style=ansi

ANSI style formatting/indenting. Brackets are broken, indentation is 4 spaces. Namespaces, classes, and switches are NOT indented.

namespace foospace

{

int Foo()

{

    if (isBar)

    {

        bar();

        return 1;

    }

    else

        return 0;

}

}

--style=gnu

GNU style formatting/indenting. Brackets are broken, blocks are indented, and indentation is 2 spaces. Namespaces, classes, and switches are NOT indented.

namespace foospace

  {

    int Foo()

      {

        if (isBar)

          {

            bar();

            return 1;

          }

        else

          return 0;

      }

  }

--style=kr

Kernighan & Ritchie style formatting/indenting. Brackets are attached, indentation is 4 spaces. Namespaces, classes, and switches are NOT indented.

namespace foospace {

int Foo() {

    if (isBar) {

        bar();

        return 1;

    } else

        return 0;

}

}

--style=linux

Linux style formatting/indenting. All brackets are linux style, indentation is 8 spaces. Namespaces, classes, and switches are NOT indented.

namespace foospace

{

int Foo()

{

        if (isBar) {

                bar();

                return 1;

        } else

                return 0;

}

}

--style=java

Java style formatting/indenting. Brackets are attached, indentation is 4 spaces. Switches are NOT indented.

class foospace {

    int Foo() {

        if (isBar) {

            bar();

            return 1;

        } else

            return 0;

    }

}

比较有用的参数 这个也是看别人blog的

(1) -f

在两行不相关的代码之间插入空行,如import和public class之间、public class和成员之间等;

(2) -p

在操作符两边插入空格,如=、+、-等。

如:int a=10*60;

处理后变成int a = 10 * 60;

(3) -P

在括号两边插入空格。另,-d只在括号外面插入空格,-D只在里面插入。

如:System.out.println(1);

处理后变成System.out.println( 1 );

(4) -U

移除括号两边不必要的空格。

如:System.out.println( 1 );

处理后变成System.out.println(1);

(5) -V

将Tab替换为空格。 

具体看它自己的

这里以我自己的操作为例:

一、把AStyle.exe复制到X:\icc\bin目录下。

二、在X:\icc\bin目录下新建astylerc.txt,文件内容如下:

style=ansi 

#---------------indent options----------------- 

indent=spaces=4 

indent-preprocessor 

indent-namespaces 

max-instatement-indent=80 

min-conditional-indent=0 

pad=oper 

unpad=paren 

#------------- breack options -------------------- 

one-line=keep-statements 

one-line=keep-blocks 

#Add extra indentation to namespace blocks 

suffix=none 

errors-to-stdout 

三、编辑器集成 :

    打开ICCAVR在 “tools”---“configure tool”弹出的图框中按下图设置参数:

wps_clip_image-21801 wps_clip_image-14336

四、 打开一个C文档,   

wps_clip_image-25097

然后点击 “tools”---“AStyle”,AStyle就会对C文档进行格式化:

wps_clip_image-20659

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条