Astyle格式化C++代码
1、Astyle简介
AStyle是artistic style的简称,用于格式化程序代码,便于保持统一的编码风格,从而提升代码的可读性和可维护性。
2、Astyle安装
2.1、vscode插件安装
2.2、vistual studio插件安装
下载AStyleExtension2019.vsix;
双击AStyleExtension2019.vsix,选择相应的VS安装版本;
重启Visual Studio 2019,然后打开“工具 -> 选项”,如果有“AStyle Formatter”选项则表示已经安装成功;
配置AStyle格式化参数,勾选Format on save(保存前自动规范化);
AStyle的格式化参数设置提供了两种方式,可视化界面设置和命令行设置两种方式,选择其中一种即可,如下图所示。
2.3、下载AStyle.exe
Artistic Style - Browse Files at SourceForge.net
下载AStyle_3.1_windows.zip,解压AStyle.exe到C:\Windows\System32
3、AStyle配置
3.1、visual studio配置选项
将以下配置选项复制到AStyle Formatter中保存即可。
--style=allman --convert-tabs --indent=spaces=4 --attach-namespaces --attach-extern-c --attach-closing-while --indent-switches --indent-labels --indent-continuation=4 --indent-preproc-block --indent-preproc-define --indent-preproc-cond --indent-col1-comments --min-conditional-indent=0 --break-blocks --pad-oper --pad-comma --unpad-paren --align-pointer=type --align-reference=type --break-one-line-headers --add-braces --attach-return-type-decl --remove-comment-prefix --max-code-length=120 --break-after-logical --mode=c
3.2、vscode配置选项
设置->扩展->Astyle configuration->Cmd_options
"astyle.cmd_options": [
"--style=allman", "--convert-tabs", "--indent=spaces=4",
"--attach-namespaces", "--attach-extern-c", "--attach-closing-while",
"--indent-switches", "--indent-labels", "--indent-continuation=4",
"--indent-preproc-block", "--indent-preproc-define", "--indent-preproc-cond",
"--indent-col1-comments", "--min-conditional-indent=0", "--break-blocks",
"--pad-oper", "--pad-comma", "--unpad-paren", "--align-pointer=type",
"--align-reference=type", "--break-one-line-headers", "--add-braces",
"--attach-return-type-decl", "--remove-comment-prefix",
"--max-code-length=120", "--break-after-logical", "--mode=c"
],
3.3、配置选项说明
3.3.1、--style=allman
3.3.2、--convert-tabs
将tab转换为空格,默认为四个。
3.3.3、--indent=spaces=4
缩进默认为4个空格;
3.3.4、--attach-namespaces
通常命名空间有多个层级,为避免缩进层级过多,namespace将设置为不缩进;
3.3.5、--attach-extern-c
3.3.6、--attach-closing-while
3.3.7、--indent-switches
3.3.8、--indent-labels
3.3.9、--indent-continuation=4
3.3.10、--indent-preproc-block
3.3.11、--indent-preproc-define
3.3.12、--indent-preproc-cond
3.3.13、--indent-col1-comments
3.3.14、--min-conditional-indent=0
3.3.15、--break-blocks
在if、for、while等前后添加空行;
3.3.16、--pad-oper
在操作符前后添加空格;
3.3.17、--pad-comma
3.3.18、--unpad-paren
3.3.19、--align-pointer=type
3.3.20、--align-reference=type
3.3.21、--break-one-line-headers
一行只写一条语句;
3.3.22、--add-braces
if、for、while等后面必须带上{};
3.3.23、--attach-return-type-decl
3.3.24、--remove-comment-prefix
3.3.25、--max-code-length=120 --break-after-logical
现在屏幕都比较大,每一行超过120个字符将自动换行即可(sonar规定是不超过160个字符);
3.3.26、--mode=c
用于指定格式化C类型的文件,例如C、C++、Objective-C等;
3.4、特殊配置说明
3.4.1、禁止格式化语句块
若要禁止格式化某一段代码,需要在段首添加注释“// *INDENT-OFF*”,段尾添加注释“// *INDENT-ON*”;
3.4.2、禁止格式化语句行
若要禁止格式化某一行代码,需要在行尾添加注释“// *NOPAD*”;
Astyle格式化C++代码相关推荐
- Astyle 一键格式化项目代码
代码格式化差异问题: 一个团队有多个开发,因开发习惯不同,开发时少添加了空格.换行等. 格式化代码时,一般会将整个文档格式化,代码提交时会发现未知的修改项. Astyle格式化工具 官网下载地址:Ar ...
- vim+Vundle+vim-autoformat+astyle格式化代码
Vundle是vim插件管理工具,用来管理vim插件,vim-autoformat是代码格式化插件 1.安装Vundle(参考点击打开链接) $ git clone https://github.co ...
- qt 使用插件astyle_使用astyle格式化代码
一.基本命令 astyle --style=ansi main.cs (ansi/linux:使用ansi/linux风格格式化main.cs) 了解上面的命令就可以格式化一个文件了,下面来看如何格式 ...
- 辅助开发: Keil中使用Aystyle 快速格式化所有代码
辅助开发: Keil中使用Aystyle 快速格式化所有代码 开始 添加菜单到KEIL 我使用的参数 部分参数定义参考 官方参数参考 Usage: Options: Option Files: Dis ...
- 利用AStyle对C++代码进行自动化风格规范管理
利用AStyle对C++代码进行自动化风格规范管理 一.Visual Studio 中使用AStyle 1)下载AStyle插件: https://marketplace.visualstudio.c ...
- 如何使用Sublime Text 2重新格式化HTML代码?
本文翻译自:How do I reformat HTML code using Sublime Text 2? I've got some poorly-formatted HTML code tha ...
- pycharm:格式化python代码
pycharm:格式化python代码 格式化快捷键: Ctrl+Alt+L 自定义格式化: pycharm 菜单 File->Settings: 我个人不喜欢一个函数有多个参数,对每个参数进行 ...
- python代码自动格式化_代码的自动格式化
代码格式化是一个在软件开发过程中值得一提的话题. 所谓代码格式化就是说,程序员在书写代码的过程中或者完成代码开发后对代码书写格式排版的调整,使得已经完成的代码变的更美观整洁也更具有可读性,也能增加完成 ...
- js时间对象:获取当前时间(格式化)- 代码篇
js获取当前时间(格式化)- 代码篇 两种方式: Vue.prototype.method1 = function (){ var currentTime = new Date();var YY,MM
最新文章
- kafka+zookeeper搭建步骤kafka问题
- 【SQL Server数据迁移】链接服务器、分布式查询
- linux程序重读分区表,重读分区表, 求教~~, 系统是 Cent6.5,
- 打印给定字符串中字符的所有排列
- mysql使用索引为什么查询速度变快很多?
- vue - blog开发学习1
- SAP Spartacus名为Configuration的injection token
- 第一次马拉松_成为数据科学家是一场马拉松而不是短跑
- day01_初识python
- android studio : clang++.exe: error: invalid linker name in argument '-fuse-ld=bfd
- SAP JCo的Server/Client编程实例
- 带sex的net域名_中华网--科技频道
- android图片布局填冲满,Android的布局图像填充宽度
- python系统学习_【Python系统学习】基础篇
- Ubuntu16.04安装teamver14.1.3
- ASP.NET 路由实现页面静态化
- UIFont 字体族
- spring开发工具STS下载
- 恒生电子笔试、面试经历
- gps测试软件怎么算正常,完整的GPS测试和经济实用的解决方案
热门文章
- MATLAB中数据相关性所求相关系数的有关内容(2)
- 【Python环境】使用WSL +MobaXterm 在windows系统上使用Linux应用
- tomcat,java,jdk verson match
- html5点击梅花,梅花什么时候开?最早在2月,最晚可到5月
- MySQL中按年、季度、月、周、天等查询SQL
- 智能门锁行业,未来发展的大趋势
- Mysql 批量插入大量数据的两种方案以及优缺点(分别是 5W 条数据和 10W 条数据)
- 有什么古装特效照片软件?建议收藏这些软件
- TCP协议---三次握手和四次挥手详解 (不看后悔系列)
- HOG+SVM进行行人检测(github代码解读)