在Visual Studio中使用AStyle
最近在做一个C++项目,我们使用了一个叫做AStyle的插件来做代码格式化。
下载方式1:通过Visual Studio下载
- 启动Visual Studio,以下简称VS;
- 英文版VS:VS主菜单 > Tools > Extension Manager…; 中文版VS:VS主菜单 > 工具 > 扩展和更新…;
- 左边选择Online Gallery(联机),输入关键字“AStyle”。
下载方式2:通过页面下载
下载页面:https://visualstudiogallery.msdn.microsoft.com/2f3f04cd-2866-4e47-a671-d1cc9cc3fb02
这个插件的安装和使用,在下载页面的“说明”部分已经讲得很详细了。
设置
按照以下操作可以调出设置界面:
- 英文版VS:VS主菜单 > Tools > Options > 左边目录树 > AStyle Formatter;
- 中文版VS:VS主菜单 > 工具 > 选项 > 左边目录树 > AStyle Formatter。

推荐参数
下面是我们项目在用的设置参数,在设置界面点“Edit”按钮粘贴进去就行:
--style=java --indent=spaces=4 --align-pointer=type --align-reference=type --attach-namespaces --attach-classes --attach-inlines --attach-extern-c --indent-cases --indent-col1-comments --pad-oper --pad-header --unpad-paren --close-templates --remove-brackets --convert-tabs --mode=c
以上参数的主要作用是:
1、排版风格以“Java Style”为基础,在其之上进行细微调整,减少设置的复杂度;
2、关闭掉一些可能会降低代码可读性的设置,比如:
- 不限定每行代码的最大长度,以免因为自动换行而破坏注释的排版;
- 不自动清除代码中的空行,以免破坏代码的段落布局。
3、调整{}的位置;
4、调整缩进,比如:
- 命名空间不缩进;
- 可见性关键字(public、protected和private)不缩进;
- 缩进统一使用4个空格代替制表符(Tab)。
5、调整空格,比如:
- 清理行末位多余的空格;
- 参数类型和名称之间的空格。
格式化代码
打开目标代码文件,通过菜单项来触发格式化:
- 英文版VS:VS主菜单 > Edit > Advanced > Format Document (AStyle);
- 中文版VS:VS主菜单 > 编辑 > 高级 > Format Document(AStyle)。
设置快捷键
VS默认没有给Asyle分配快捷键,需要手工来为Format Document菜单项分配快捷键:
- 英文版VS:VS主菜单 > Tools > Options > 左边目录树 > Environment > Keyboard;
- 中文版VS:VS主菜单 > 工具 > 选项 > 左边目录树 > 环境 > 键盘。

在Visual Studio中使用AStyle的更多相关文章
- 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
		开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ... 
- Visual Studio 中 Build 和 Rebuild 的区别
		因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ... 
- [No0000AE]在 Visual Studio 中调试 XAML 设计时异常
		在 Visual Studio 中进行 WPF, UWP, Silverlight 开发时,经常会遇到 XAML 设计器由于遭遇异常而无法正常显示设计器视图的情况.很多时候由于最终生成的项目在运行时并 ... 
- Visual Studio中创建混合移动应用程序解决方案Xamarin Portable Razor
		在Visual Studio中创建混合移动应用程序的一个解决方案是使用Xamarin Portable Razor工具,这是ASP.NET MVC API针对移动设备的一个轻量级实现.Xamarin编 ... 
- 对 Visual Studio 中的Resharper禁用对某种文件的检测
		原因:在Visual Studio中安装Reshaper后,就会对各种文件进行代码检测,但是因为Reshaper更新的速度不是很及时,所以有时会对Visual Studio中某些新功能误断,导致Cod ... 
- 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)
		在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ... 
- 在Visual Studio中使用正则表达式匹配换行和批量替换
		系统环境:Windows 8.1 Enterprise Update 2 x64 开发环境:Mircosoft Visual Studio Ultimate 2013 Update 2 RC 问题:如 ... 
- 利用Visual GDB在Visual Studio中进行Android开发
		转载请注明http://www.cnblogs.com/adong7639/p/4119467.html 无意中发现了Visual GDB这个工具,可以再Visual Studio中进行Android ... 
- [Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考、NuGet组件参考
		[Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考.NuGet组件参考 解决方案 目前Visual Studio中最新版本的Xamarin.iO ... 
随机推荐
- 刨根问底:对于 self = [super init] 的思考
			对象初始化有两种方式:[class new] 与 [[class alloc] init] 对于后者,有分配和初始化的过程,alloc 从应用程序的虚拟地址空间上为该对象分配足够的内存,并且将新对象的 ... 
- Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x01030200(转)
			反编译时遇到标题中的异常,根据描述,原因是找不到资源文件,最有可能的原因是apk中使用了系统资源. 解决办法如下: 从手机中导出framework-res.apk文件,该文件在/system/fram ... 
- 在Linux上怎么安装和配置Apache Samza
			samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ... 
- FineUI开发实践-目录
			点我订阅 目前所有博客的截图,方便离线观看,点图片 FineUI初学手册 下载,实例项目搭建 FineUI初学手册-部分JS整理 部分JS整理 ASP.NET-FineUI开发实践-1 实际开发环境是 ... 
- css.day01.eg
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- ASP.NET5中间件
			小的应用组件可以包含到Http请求管道当中,ASP.NET5 集成了中间件,被包在了应用程序的Configure方法当中. 1. 什么是中间件 中间件是一组被装到应用程序管道的请求和响应中的组件.每一 ... 
- repeater控件 + marquee标签 实现文字滚动显示
			各种信息网站.BBS等网站上的公告信息模块的实现 拖出一个repeater控件绑定数据库中要显示的信息 在repeater的 <ItemTemplate> ... </ItemTem ... 
- Asp.net 菜单控件
			本文介绍的菜单控件采用的css 和ul list来显示菜单,生成的html小,无需javascript支持,对大部分的浏览器都支持,除ie6要单独修改css也可以使其支持. 通过本文可以了解asp.n ... 
- 模仿qq音乐播放字母效果
			html <div class="cont"> <ul class="cont_ul" id="cont_ul"> ... 
- 『重构--改善既有代码的设计』读书笔记----Extract Method
			在编程中,比较忌讳的一件事情就是长函数.因为长函数代表了你这段代码不能很好的复用以及内部可能出现很多别的地方的重复代码,而且这段长函数内部的处理逻辑你也不能很好的看清楚.因此,今天重构第一个手法就是处 ... 
