• AStyle2.02在VS2008下的使用


          在共同探讨C++代码编写风格的帖子里,看到有个提到使用AStyle工具可以自动格式化代码风格,想过我用ctrl+K,ctrl+F的痛苦日子,我决定尝试一个这个软件。

          软件下载到了,但如何使用与配置,还得有人教。上网找了一下,找到http://blog.csdn.net/akof1314/article/details/6453666这篇文章写得不错,引用如下。


           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
    参数:--style=linux --suffix=none  -M -p -H -U -k1 $(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

    作者:wqvbjhc
    出处:https://www.cnblogs.com/wqvbjhc/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
  • 相关阅读:
    gauss消元
    POJ1229 域名匹配
    HDU3487 play with chain
    POJ1185 炮兵阵地
    POJ2411
    sgu233 little kings
    树形DP初步-真树1662
    树形DP初步-二叉树1661
    c++——string类用法
    UVa1354 ——天平难题
  • 原文地址:https://www.cnblogs.com/wqvbjhc/p/2465084.html
Copyright © 2020-2023  润新知