VAssistX使用小窍门

日常使用中的一些VAssistX使用小窍门,简单总结下

一,修改VAssistX默认缓存文件路径,防止默认C盘被占用空间过大

1、  打开注册表HKCU\Software\Whole Tomato,新建UserDataDir,数值为要修改的路径,如下图:

 

2、  C:\Users\{用户名称}\AppData\Roaming\VisualAssist\ 为AutoText目录,拷贝到新目录下

3、  C:\Users\{用户名称}\AppData\Local\VisualAssist\为符号表目录,拷不拷贝无所谓

4、  删除旧的AutoText和符号表目录,会发现C盘瞬间多了好几个G

 

 二,利用Visual AssistX的特性快速适应C++代码规范

Visual AssistX是一款功能非常强大的VC、VS插件,可以非常便利用其自动完成和着色的功能,让代码的输入速度和可读性大大的增强。在实际的开发过程当中,很多人只利用到了它的这两个功能,在下面我将介绍下,利用Visual AssistX实现按代码规范要求的文件头注释,函数注释,以及查找代码,代码重构的相功能。

快速的加入文件头注释:

例如有如下c++编程规范的要求,源文件头部应该进行注释,列出版权说明,文件名,修改日志等。具体示例如下:

[示例]:

/**   @file file.h

 *     @note XXX Technology Co., Ltd. All Right Reserved.

 *     @brief 这里填写本文件的摘要。

 *

*     @author           xxx

 *     @date               2004/02/14

 *

*     @note 下面的note和warning为可选项目

 *     @note 这里填写本文件的详细功能描述和注解

 *     @note 历史记录:

 *     @note V2.0.0  添加了一个导出接口

*

 *     @warning 这里填写本文件相关的警告信息

 */

 

 Visual AssistX自带的文件头注释和我们公司要求的格式有所不同,所以我们首先修改它的格式,在Viusal Studio的VAssistX菜单(前提是已经安装过这个软件)中,选择tools项中的Edit VA Snippets…项,如下图:

 

将弹出如下对话框:

 

左侧的树上如#d,#u代表着一些常用的快捷输入,比如输入#d就会自动弹出#define的候选输入,然后敲击回车便会自动补全相应的功能,我们就是加入我们的文件头的注释。

首先为代码头加入快捷输入前几个字符,我这里为了不和其实的有所冲突,便以“/***”做为快捷输入的字符,也就是说当输入“/***”时,就会弹出我们自定义的文件头注释。

  1. 点击工具栏的新建按钮 。
  2. 在右侧输入如下:                    

其中Title是这个Snippet的标题,这里写的是“File header detailed”,Shortcut就是你设置的快捷键,这里设置的是“/***”,Despcription就是你自已经对这个Snippet的详细描述。

  1. 在内容里输入如下:
    /**  @file        $FILE_BASE$.$FILE_EXT$

    *   @note  XXX Technology Co., Ltd. All Right Reserved.

    *   @brief   $Breif$

 *

    *   @author  $Author$

    *   @date    $YEAR$/$MONTH$/$DAY$

    *

 *   @note   detailed functional description of this document and comments

    *   @note   History

    *

    *   @warning warning message related to this document 

*/

大部分内容可以看的明白,有几处“$FILE_BASE$”,“$FILE_EXIT$等是Visual AssistX的保留字,$FILE_BASE$是不包括扩展名的文件头,$FILE_EXIT$是文件扩展名,当我们插入这些内容里,Visual AssistX会自动替换为文件名,$YEAR$/$MONTH$/$DAY$是如“2011/5/20” 的方式插入日期。你也可以自定义保留字,像此处$Breif$,$Author$是我们自己定义的,看英文的意思是文件简介和文件的作者,作用是,当你输入/***时,敲回车会弹出一个对话框,让你手动输入Breif和Author,看下图:

当输入/***时弹出你自定义的这个Snippets的标题,

 

直接敲回车:

 

Brief和Autor就是你自定义的保留字,你在这里边输入到你编写的这个C++文件的简介和作者,敲回车,就会自动加入文件头。如下图:

 

由于我把注释的颜色设置成灰色了,所以看不太清,实际如下:

/**  @file  WarnDlg.h

 *   @note  XXX Technology Co., Ltd. *            All Right Reserved.

 *   @brief  警告框

 *

 *   @author jiangxf

 *   @date   2011/5/27

 *

 *   @note   detailed functional description of this document *   @note   History

 *

 *   @warning warning message related to this document 

*/

以后每次就可以通过输入/***加入文件头了,避免每次都自己复制,一劳永逸。

 

加入函数注释:

我们的规范如下:

/**   @fn const char *TestClass::func1(char c,int n)

 *     @brief      <这里填写函数的摘要>

 *     @param c 参数描述.

 *     @param n 参数描述.

 *     @return  返回描述

 */

这个在Visual AssistX中已经有了,但是只是格式不同,我们首先在Viusal Studio的VAssistX菜单(前提是已经安装过这个软件)中,选择tools项中的Edit VA Snippets…项,在左侧找到Refactor Document Method。

 

然后在左侧的内容里输入

 

注意Title和Shortcut里的内容不要修改。使用函数注释按下面的方法:

在CPP的文件里找到你要加入注释的函数,将光标移到函数处,右键,选择Refactor菜单项里的Document Method,如下图:

 

因为我们定义注释里有个自定义的保留字$Brief$,所以在点击完Document Method时,会弹出对话框让你输入函数的概要。输入完点确定即可。

 

在Breif处输入函数简介。

 

/** @fn       CMutiroleDialog::ShowDialog

 *  @brief    显示对话框

 *  @param    QWidget * parent

 *  @param    QString & strTitle

 *  @return   void

 */

点击回车后生成上面的注释,其中$MethodArgs$会给你列出所有的函数参数,这当然也是自动生成的,你在每个参数后面加入参数的注释内容即可,这个当然不能自动完成,因为它也猜不出函数参数的意思~。

 

查找某个函数的功能:

Visual Studio的查找功能有些不太好用的地方,我现在介绍下这个插件的查找功能。

假如你要找一个函数在哪里被引用到,这个就非常方便了。

首先将鼠标移动到函数名称上,会出现一个倒三角号,

 

如果选择Find References,就可以显示在这个解决方案中,所以引用到这个函数的地方,如果选择Find Reference in File,它只用显示这个函数在当前的文件当中引用到的地方,查找的结果在:

 

会详细的显示出在哪个文件里,哪一行,还有哪个函数里引用到了这个函数,而且可以使用代码着色的功能显示,非常直观。

在上面的菜单当中,还可以直接选择重命名,这样就可以重命名所有引用到地方一起改变名称,这个可以自己试下。

 

自动加入函数实现的功能:

当你在头文件里写了一个函数时,每次都得到CPP文件中补上函数的实现,其实你可以在头文件的函数处,右键,选择Refactor,Create Implements的,这样,就会在C++中自加入函数的实现,而不用手动再去写。

 

如上图。

这个Refactor中,可以实现好多功能

  1. 可以加入类的成员变量
  2. 加入相似的函数
  3. 如果你先在CPP写好了函数,可以直接在.h中加入声明
  4. 如果一些函数和变量是其他头文件中的,而你还没有include,还可以自动include进来
  5. 改变名称
  6. 选中一块代码,可以把这块代码抽象成一个函数(就是加一个函数体将这块选中的代码包起来,使之成为一个独立的函数)
  7. 实现接口,如果你继承的父类有虚拟函数,他们的直接实现这些接口,并分别加入到头文件和CPP文件中。

 

包围功能

 

包围功能是这样的,当你选中一块代码,可以直接用{}或()包围起来,也可以在这块代码中加入if包起来。可以加的包围功能,如上图所示。它会直接在你选中的代码外面,加入你选择的东西。

转载于:https://www.cnblogs.com/widget90/p/6128590.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多个 gradle 文件夹 \.gradle\wrapper\dists\ 设置gradle不是每次都下载

韩梦飞沙 韩亚飞 313134555qq.com yue31313 han_meng_fei_sha 设置gradle不是每次都下载 \.gradle\wrapper\dists\ 在你导入项目的时候&#xff0c;有个选项的&#xff1a; 你要是选了Use default gradle mapper就会下载一次&#xff0c;Use local gradle distribution就会…

vb获取数组长度_如何实现数组的二分查找

二分查找是一种极其高效、简练的查找算法&#xff0c;它不仅简单&#xff0c;易用&#xff0c;而且还非常的高效。相对于顺序查找&#xff0c;二分查找在效率是呈现指数性提升&#xff0c;数据量越大&#xff0c;越能体现出二分查找法的优势。二分查找的查找过程是&#xff1a;…

所给服务器端程序改写为能够同时响应多个客户端连接请求的服务器程序_一文读懂客户端请求是如何到达服务器的...

点击上方“蓝色字体”&#xff0c;选择 “设为星标”关键讯息&#xff0c;D1时间送达&#xff01;互联网是人类历史上最伟大的发明创造之一&#xff0c;而构成互联网架构的核心在于TCP/IP协议。那么TCP/IP是如何工作的呢&#xff0c;我们先从数据包开始讲起。1、数据包一、HTTP…

消息服务器 推送技术,SSE服务器推送技术

SSE即 server send event 服务器发送事件&#xff0c;在在早期可能会使用ajax向服务器轮询的方式&#xff0c;使浏览器第一时间接受到服务器的消息&#xff0c;但这种频率不好控制&#xff0c;消耗也比较大。但是对于SSE来说&#xff0c;当客户端向服务端发送请求&#xff0c;服…

无线服务器密码让别人改了,wifi密码被改了怎么办_wifi密码被别人改了怎么办?-192路由网...

wifi密码被别人改了怎么办&#xff1f;wifi密码之所以被别人修改&#xff0c;是因为其他人知道了你路由器的登录密码。所以&#xff0c;如果发现自己wifi密码被别人修改了&#xff0c;应该立刻登录到路由器设置界面&#xff0c;修改路由器登录密码、修改wifi密码、并调整wifi加…

CentOS7 Firewall NAT 及端口映射

本节介绍用CentOS7的Firewalll来做NAT以及端口映射实验拓扑:因为我的环境里CentOS7上有KVM虚拟机需要共享网卡上网&#xff0c;所以我把网卡都添加到了桥里面&#xff0c;当然这里也可以不用桥&#xff0c;直接用物理网口&#xff1b;用nmcli创建桥&#xff0c;并添加网口到桥&…

JVM源码---教你傻瓜式编译openjdk7(JAVA虚拟机爱好者必看)

LZ经过一个星期断断续续的研究&#xff0c;终于成功的搞定了JDK的成功编译与调试。尽管网络上的教程也有不少&#xff0c;包括源码中也有自带的编译步骤说明&#xff0c;但真正自己动手的话&#xff0c;还是会遇到不少意料之外的错误。 为了方便各位猿友编译&#xff0c;LZ临时…

另一个域的cookie_一定要知道的第一方Cookie和第三方Cookie

Cookie 是您访问过的网站创建的文件&#xff0c;用于存储浏览信息&#xff0c;例如您的网站偏好设置或个人资料信息。共有两种类型的 Cookie&#xff1a;第一方 Cookie 是由地址栏中列出的网站域设置的 Cookie&#xff0c;而第三方 Cookie 来自在网页上嵌入广告或图片等项的其他…

苹果手机怎么连接不了无线网络连接服务器,苹果手机连接wifi显示无互联网连接怎么办?...

在开始对网络操作以后&#xff0c;也可尝试着把 iPhone 重新启动一下&#xff0c;按下 iPhone 电源键不放&#xff0c;直到出现关机选项并滑动关机&#xff0c;最后再开机。在 iPhone 的无线局域网列表中&#xff0c;当前连接的这个无线网络显示“无互联网连接”。此时可以通过…

git学习心得之从远程仓库克隆

现在&#xff0c;远程库已经准备好了&#xff0c;下一步是用命令git clone克隆一个本地库&#xff1a; $ git clone gitgithub.com:michaelliao/gitskills.git Cloning into gitskills... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) R…

2018-2019 20165208 网络对抗 Exp3 免杀原理与实践

目录 2018-2019 20165208 网络对抗 Exp3 免杀原理与实践实验内容基础问题回答实践过程记录任务一&#xff1a;正确使用免杀工具或技巧任务二&#xff1a;通过组合应用各种技术实现恶意代码免杀任务三&#xff1a;用另一电脑实测&#xff0c;在杀软开启的情况下&#xff0c;可运…

k均值例子 数据挖掘_人工智能、数据挖掘、机器学习和深度学习的关系

一、人工智能人工智能是计算机科学的一个分支&#xff0c;它企图了解智能的实质&#xff0c;并生产出一种新的能以人类智能相似的方式做出反应的智能机器。实际应用比如&#xff1a;机器视觉&#xff0c;指纹识别&#xff0c;人脸识别&#xff0c;视网膜识别&#xff0c;虹膜识…

软件系统换服务器地址,天正软件客户端修改服务器地址

天正软件客户端修改服务器地址 内容精选换一换如果IP经过NAT/WAF&#xff0c;则只能获取到NAT/WAF转化后的IP地址&#xff0c;无法获取到NAT/WAF前的IP地址。如果客户端为容器&#xff0c;只能获取到容器所在主机的IP地址&#xff0c;无法获取容器的IP。四层监听器(TCP/UDP)开启…

选中下拉列表显示全部数据_小白都能学会的多级下拉列表,让你的Excel效率提升百倍...

私信回复关键词【工具】&#xff0c;获取Excel高效小工具合集&#xff01;让你的Excel效率开挂~你有没有遇到过这样的场景&#xff1f;收集上来的各部门工作进度表&#xff0c;里面的答案五花八门。即使在表头上进行提示规范&#xff0c;手动输入也十分低效。有没有什么办法能够…

lightgbm 数据不平衡_不平衡数据下的机器学习(下)

本文从不平衡学习的基础概念和问题定义出发&#xff0c;介绍了几类常见的不平衡学习算法和部分研究成果。总体来说&#xff0c;不平衡学习是一个很广阔的研究领域&#xff0c;但受笔者能力和篇幅的限制&#xff0c;本文仅对其中部分内容做了简单概述&#xff0c;有兴趣深入学习…

netty实现高性能文件服务器,通用文件服务组件(Netty实现版本)

本文所述文件服务组件在笔者此前一篇文章中已有阐述(基于netty的文件上传下载组件)&#xff0c;不过本文将基于之前这个实现再次进行升级改造&#xff0c;利用基于注解的方式进行自动装配。1. 简介1.1 Netty简介Netty是一个异步事件驱动的网络应用程序框架&#xff0c;用于快速…

PHP 小数点保留两位【转】

最近在做统计这一块内容&#xff0c;接触关于数字的数据比较多&#xff0c; 用到了三个函数来是 数字保留小数后 N 位&#xff1b; 接下来简单的介绍一下三个函数&#xff1a; 1、number_format echo number_format("5000000")."<br>"; echo number_…

华为杯数学建模2020获奖名单_我校在2020年全国大学生数学建模竞赛中再获佳绩(内附获奖名单)...

# 近日&#xff0c;从全国大学生数学建模竞赛组委会获悉&#xff0c;我校在2020年全国大学生数学建模竞赛中获得5项国家二等奖。国家奖获奖数量在全国农林院校中并列排名第二。在黑龙江省高校中位居第三名。1你的喜悦&#xff0c;我们的欣慰# 2020年全国大学生数学建模竞赛于9月…

fn映射 mac 键盘_【新鲜评测】高颜值、低延迟、多模式跨平台办公神器-米物蓝牙键盘...

首先&#xff0c;要例行感谢糖纸众测&#xff0c;感谢麻麻酱给我这次评测机会。大家可以微信搜索【糖纸】小程序免费体验更多科技产品。小米旗下生态链公司米物最近出了一款蓝牙双模键盘&#xff0c;它作为一个85全键键盘&#xff0c;可以完成蓝牙和USB转换&#xff0c;以及PC和…

小程序 input 换行_小程序 input双向数据绑定

小程序 双向绑定数据&#xff08;单个&#xff09;<小程序 双向绑定数据&#xff08;多个&#xff09;<