zoukankan      html  css  js  c++  java
  • 介绍一个 C/C++ 、C#、JAVA 代码美化工具

    给大伙介绍一个开源工具 AStyle,支持C/C++、C#、JAVA等语言,按照不同的风格格式化代码,也可以称为美化代码。
    用这个工具格式化出来的代码与我自已的风格几乎一样,我很喜欢这个小工具,也可以很方便的集成到VS里面去。

     

    效果如下, 格式化前的代码:

        DWORD   dwThreadId;
        HANDLE hThread=CreateThread(NULL, 0, MyThreadFunction, 0, 0, &dwThreadId);  
        if (hThread!=NULL){
            WaitForSingleObject(hThread, INFINITE);
        } else {
            _tprintf(_T("CreateThread error %d\n"), GetLastError());
        }
    

    格式化后的代码:

        DWORD   dwThreadId;
        HANDLE hThread = CreateThread( NULL, 0, MyThreadFunction, 0, 0, &dwThreadId );
        if ( hThread != NULL )
        {
            WaitForSingleObject( hThread, INFINITE );
        }
        else
        {
            _tprintf( _T( "CreateThread error %d\n" ), GetLastError() );
        }

    如果你不喜欢格式化后的代码风格,也可以选择其它的风格,不一一举例说明了。

    参数的含义:

    AStyle.exe -A1 -s4 -M80 -p -j -D -H -c -w test.cpp

    -A1/--style=ansi ansi C风格代码 我个人喜欢用这个风格

            void Foo(bool isFoo)
            {
                if (isFoo)
                {
                    bar();
                }
                else
                {
                    anotherBar();
                }
            }

     

    --indent=spaces / --indent=spaces=# / -s# 强制使用空格作为缩进

    #代表要缩进的空格的个数如-s4 代表要缩进4个空格,强烈建议使用这个参数

    -p  在运算符号左右加上空格  视个人喜好

            if (foo==2)
                a=bar((b-c)*a,d--);
            becomes: 
    
            if (foo == 2)
                a = bar((b - c) * a, d—); 
        

    -j   给每个if增加大括号 视个人喜好

        if (isFoo)
            isFoo = false;
        becomes: 
    
        if (isFoo) {
            isFoo = false;
        }
    

    -D  在小括号边上增加上一个空格 视个人喜好

        if (isFoo(a, b))
            bar(a, b);
        becomes: 
        if ( isFoo( a, b ) )
            bar( a, b );
    

    -H 在c/c++ 关键字的后面增加一个空格 建议使用

        if(isFoo(a, b))
            bar(a, b);
        becomes: 
        if (isFoo(a, b))
            bar(a, b);
        
    

    -M# 对定义的参数和变量进行对齐 ,这个参数很有用,可以将零乱的参数对齐

        fooArray[] = { red,
             green,
             blue }; 
    
        fooFunction(barArg1,
                 barArg2,
                 barArg3);
        becomes (with larger value): 
    
        fooArray[] = { red,
                       green,
                       blue }; 
        
        fooFunction(barArg1,
                    barArg2,
                    barArg3);
    

     

    -c 把TAB字符替换成空格  强烈建议使用这个参数

    为什么要把TAB替换成空格?

    主要是因为各种不同的编辑器对TAB的解释不一样造成的。有的编辑器把TAB解释成4个空格,有的是8个,还有的是2个。

    这样会破坏原有的代码的对齐的结构,因此最好把TAB替换成空格,这样不管在任何编辑器下面代码都是以对齐的风格来显示。

     

    -w  对宏进行对齐处理 建议使用

        #define Is_Bar(arg,a,b) \
        (Is_Foo((arg), (a)) \
        || Is_Foo((arg), (b)))
        becomes: 
    
        #define Is_Bar(arg,a,b) \
            (Is_Foo((arg), (a)) \
             || Is_Foo((arg), (b)))

    看到上面这么多的美化代码的参数,真的很hi。

     

    AStyle.exe –A1 -s4 -M80 -p -j -D -H -c -w $(ItemFileName)$(ItemExt)
    这个参数是我自已用的,大伙可以根据自已的风格来设定, AStyle 还有很多的其它参数,我只是列出我自已常用到的参数,其它的参数详细信息请参与帮助文档。

     

    如果集成到VS当中呢?

    1. 把AStyle.exe 拷到 “C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\”目录下


    2. Tools –> External Tools


    如图增加一个外部工具配置

    0927_1

     

    在Tools菜单下面会多出一个Beautify点击它就可以来美化当前的文件 如下图:

     

    0927_2

     

    总体来说这个工具美化的效果还是很不错的,喜欢的人大家都可以试试。

    官方网站: http://astyle.sourceforge.net/

    官方下载:http://nchc.dl.sourceforge.net/project/astyle/astyle/astyle%202.02/AStyle_2.02_windows.zip

  • 相关阅读:
    scikit-learn一般实例之四:使用管道和GridSearchCV选择降维
    scikit-learn一般实例之四:管道的使用:链接一个主成分分析和Logistic回归
    scikit-learn一般实例之三:连接多个特征提取方法
    scikit-learn一般实例之一:保序回归(Isotonic Regression)
    scikit-learn一般实例之一:绘制交叉验证预测
    weblogic控制台定制不同权限的用户
    jquery给input域赋值和取值
    键盘对应的ASCII码
    js控制键盘只能输入数字和退格键,delete键
    mysql创建用户及授权相关命令
  • 原文地址:https://www.cnblogs.com/russinovich/p/2193689.html
Copyright © 2011-2022 走看看