芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 7609|回复: 6

【工具教程】方便好用的代码格式化软件与使用方法

[复制链接]
  • TA的每日心情
    开心
    2020-1-6 12:29
  • 19

    主题

    37

    帖子

    543

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    543
    发表于 2018-10-16 20:37:01 | 显示全部楼层 |阅读模式
        本论坛注册非常方便,使用微信扫码即可注册,欢迎大家注册

    程序员很多时候会谈到代码风格。当我们在一起开发的时候,统一的代码风格确实很重要。
        不过,每个人都有不同的喜好,按照别人的方式写代码都会不爽,所以今天介绍一个神器,Artistic Style,自动化代码格式工具。
        有了这个工具,我们可以在拿到别人的代码的时候,运行一下,将代码格式化为自己喜欢的格式。
        当我们需要将代码给到别人时,运行下,将代码再格式化为大家统一的风格。


          Artistic Style的官网是 http://astyle.sourceforge.net/
          下面介绍如何使用这个工具。
    一、安装
          AStyle的安装很简单。在windows下面,我们只需将下载的压缩包解压缩,再设置下环境变量就Ok。
    二、使用
          这样的工具一般是没有图形化界面的,所以设置好环境变量后,可以在cmd环境中运行。
          1 - 切换到需要修改的代码的目录。
          2 - 里面有hello.c文件,内容如下:
          

    原始内容

    原始内容

          
          3 - 我们运行如下命令
          astyle --style=allman hello.c
          会输出如下
          格式化 hello.c
          现在文件内容变为:
           2.jpg
          现在代码已经被格式化了,使用的是一个基础样式allman。astyle还有很多其他的样式,比如linux,kr之类的,详情请查看官方帮助文档。
    但是我们可以看到,现在的代码格式还有些怪,因为基础样式,只是做了基础的处理。我们可以额外加一些参数。
          
           4 - 使用额外参数
           我们使用rtthread官方推荐的参数,
          

    1. 参数:--style=allman
    2.       --indent=spaces=4
    3.       --indent-preproc-block
    4.       --pad-oper
    5.       --pad-header
    6.       --unpad-paren
    7.       --suffix=none
    8.       --align-pointer=name
    9.       --lineend=linux
    10.       --convert-tabs
    11.       --verbose
    复制代码

                 对代码进行格式化,内容会变为如下:
                 3.jpg
             这已经是可以接受的代码风格啦。里面参数具体含义可以到官网查看帮助信息,或者直接就拿来使用。


    三、编写成.bat脚本
           每次都进入cmd还是太麻烦了,所以我们可以将命令编写到一个.bat文件中,每次双击下,自动运行就好啦。至于文件名,可以使用--recursive *.c,h这样的格式,会格式化当前目录下所有的文件。
      
           希望大家以后都不必为格式这样的东西纠结,专注敲代码。但是代码命令风格之类的,还是需要自己注意,现在还没工具能帮你自动修改函数名。不过人工智能可能可以,哈哈哈。。。


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-6 12:29
  • 19

    主题

    37

    帖子

    543

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    543
     楼主| 发表于 2018-10-16 20:37:54 | 显示全部楼层
    虽然这一两行代码格式化看起来没啥,但是一个工程文件很多的时候,工具还是很方便的。自己一行一行改风格会吐血的。

    点评

    风格自己慢慢养成,靠工具不大好  发表于 2018-10-16 21:25
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-6-29 15:57
  • 13

    主题

    246

    帖子

    3625

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    3625
    发表于 2018-10-16 21:24:50 | 显示全部楼层
    直接右键,选格式化,很爽的,又快又好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 422

    主题

    780

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15848
    QQ
    发表于 2018-10-17 09:40:58 | 显示全部楼层
    好奇有没有对Verilog语法的支持。
    另外Eclipse直接自带format功能。
    notepad++也有代码格式化插件,我一直在用,挺好用的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-6 12:29
  • 19

    主题

    37

    帖子

    543

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    543
     楼主| 发表于 2018-10-17 12:00:14 | 显示全部楼层
    纵情随心 发表于 2018-10-16 20:37
    虽然这一两行代码格式化看起来没啥,但是一个工程文件很多的时候,工具还是很方便的。自己一行一行改风格会 ...

    linux的代码风格就是和rtthread的风格不一样,FreeRTOS也是另一种风格。当需要团队合作的时候,还是需要这样的工具的。平时选择一个自己喜欢的标准风格,不要乱来就好。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-12-19 15:44
  • 1

    主题

    3

    帖子

    14

    积分

    新手入门

    Rank: 1

    积分
    14
    发表于 2018-12-19 16:08:48 | 显示全部楼层
    我之前用过一个代码格式化的工具,就是把代码一级一级的分清楚,就是把代码放整齐,感觉哪个比较好,对于我这种代码放置不规范的人来说
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-4-20 13:31 , Processed in 0.126870 second(s), 39 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表