VS中如何快捷地给自己的代码添加创建信息注释
VS中如何快捷地给自己的代码添加创建信息注释
Intro
以下讨论的都是没有使用 GIT 来管理源代码的情况,如果使用 GIT 管理源代码可直接使用VS的Git扩展就不需要考虑以下问题。
什么是创建信息注释?
创建信息注释,类似于文件的创建信息,一般来说,至少要有创建人和创建时间。如果说有人修改了方法也应该添加一个更新信息注释。
为什么要添加创建信息注释?
可能在一个人编码的时候,创建信息注释并不太重要,但是如果许多人共同维护一个项目,并且经常会出现多个人修改同一个文件的代码 时,这就显得很重要了,哪里的代码出现了什么问题,可以直接责任到人,谁改的代码出现了问题就应该谁去修改代码。
创建信息注释
找解决方案 最初的想法是重写 VS 内置的文档注释,然而并没有找到这样的解决方案。找到的基本都是修改新建类或接口时模板文件从而添加注释,并没有在方法上加注释 的解决方案。
这个方案否定之后,尝试着使用自定义代码段来实现在生成注释的基础上再添加创建信息注释。
自定义代码段
自定义代码段参考示例:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>cm</Title>
<Shortcut>cm</Shortcut>
<Description>新建代码注释 的代码片段</Description>
<Author>liweihan</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>Description</ID>
<ToolTip>方法描述</ToolTip>
<Default>方法描述</Default>
</Literal>
<Literal>
<ID>Author</ID>
<ToolTip>作者</ToolTip>
<Default>liweihan</Default>
</Literal>
<Literal>
<ID>CreateDate</ID>
<ToolTip>日期</ToolTip>
<Default>@@Today</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[/// <summary>
/// $Description$
/// @Author:$Author$
/// @CreateDate:$CreateDate$$end$
/// </summary>]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>这样的代码段还有许多不足,现在作者是写死的,创建时间需要再插入代码段之后再进行手动修改, 我希望能够自动生成作者和当前日期, 作者写死的问题不大,因为这个代码段只我一个人使用,直接写死反而更方便,这里使用一个变量方便进行修改, 关键是当前日期没有办法获取到,查阅了很多资料,代码段并不支持直接插入当前日期,stackoverflow 上有人讨论过这个问题,解决方案是利用宏自动生成当前日期,但是文中提到的解决方案不可用,不过倒给了我解决问题的思路——利用宏去插入当前日期。宏插入当前日期 我在 VS 的 扩展与更新 中下载了一个 管理宏的插件—— Macros for Visual studio

下载安装之后需要重启 VS ,重启之后在 菜单栏中的工具下就可以看到:

这个宏管理器自带了一些 Samples ,其中有一个可以插入日期的宏

选择 Assign Shortcut 进行设置快捷键就可以在 VS 中使用啦,默认的格式是 “mm/dd/yyyy”

如果你像我一样不喜欢默认的日期格式,可以在对应项上右键选择“打开”,进行编辑,里面是 js 代码,有一些 js 基础的话修改起来会 更方便,我修改了下代码,将日期格式修改为了“yyyy-MM-dd”格式。

完整操作流程
- 首先,在方法体上输入“///”,VS 会自动生成默认的文档注释,先写好注释
- 复制
<summary>部分的注释,选中<summary>部分,参数及返回信息保留,输入定义好的代码段快捷键,双击 Tab 键插入代码段 - 将复制的注释粘贴到
方法描述处,添加注释 - 按 Tab 键切换到 当前日期,在
@@Today处,按设置的插入当前日期的宏快捷键,VS 会自动插入当前日期
更新信息注释
更新信息代码段示例:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>up</Title>
<Shortcut>up</Shortcut>
<Description>更新代码注释 的代码片段</Description>
<Author>liweihan</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>Description</ID>
<ToolTip>更新描述</ToolTip>
<Default>更新描述</Default>
</Literal>
<Literal>
<ID>UpdatedBy</ID>
<ToolTip>更新人</ToolTip>
<Default>liweihan</Default>
</Literal>
<Literal>
<ID>UpdatedDate</ID>
<ToolTip>日期</ToolTip>
<Default>@@Today</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[/// $Description$ @UpdatedBy:$UpdatedBy$ @UpdatedDate:$UpdatedDate$$end$ ]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
将自定义代码段添加到 VS
- 在 VS 中打开代码段管理器


- 选择语言为 “CSharp”,选中“My Code Snippets”,选择“Visual C#”也可以,这里为了区分自己的代码段和系统代码段我选择了"My Code Snippets",复制位置中的路径,并在资源管理器中打开路径
- 将自定义的代码段(*.snippet)拷贝到上一步打开的目录中,重启VS就可以了
VS中如何快捷地给自己的代码添加创建信息注释的更多相关文章
- Visual Studio中使用Macros插件给代码添加注释、时间和以及自动脚本
title: Visual Studio中使用Macros插件给代码添加注释.时间和以及自动脚本 date: 2020-09-11 sidebarDepth: 2 tags: 代码 Visual st ...
- (30)odoo中的快捷标签
* 快捷标签 提供快捷标签是为了简化代码的编码,把复杂的工作封装化 * 找到封装化的源码: openerp/tools/convert.py xml_import self._ ...
- uboot中的快捷菜单的制作说明 【转】
转自:http://blog.chinaunix.net/uid-22030783-id-366971.html 在uboot中加入快捷操作菜单的方法非常简单,在论坛发布的uboot201003V ...
- uboot中的快捷菜单的制作说明
转:http://blog.chinaunix.net/uid-22030783-id-366971.html 在uboot中加入快捷操作菜单的方法非常简单,在论坛发布的uboot201003V1.1 ...
- “RazorEngine.Templating.TemplateCompilationException”类型的异常在 RazorEngine.NET4.0.dll 中发生,但未在用户代码中进行处理
错误信息: "RazorEngine.Templating.TemplateCompilationException"类型的异常在 RazorEngine.NET4.0.dll 中 ...
- 开始VS 2012中LightSwitch系列的第4部分:太多信息了!使用查询来排序和筛选数据
[原文发表地址] Beginning LightSwitch in VS 2012 Part 4: Too much information! Sorting and Filtering Data ...
- Scala 深入浅出实战经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark中应用
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)
如上图所示界面,当我们点击保存按钮时将会将表格中的数据保存到数据库中去,与数据库进行一个交互 第一步我们就是要获取到表格中的数据 string pwd = textpwd.Text; //获得第一次输 ...
- SQL中批量删除被注入的恶意代码的方法
下文将为您介绍SQL中批量删除被注入的恶意代码的方法,供您参考,如果您也遇到了这样的问题,不妨一看,相信对您会有所帮助. 1,如果你的数据表很少的话,那么写几条简单的sql就搞定了 对于表中的nvch ...
随机推荐
- JS动态生成的元素,其对应的方法不响应(比如单击事件,鼠标移动事件等)
主要原因:在页面给元素注册点击事件的时候[ $(function () { XXX }); ],JS动态生成的元素还尚未生成,所以click事件就没有生效 解决方法: 方案一:js动态生成元素后再给 ...
- c/c++多线程模拟系统资源分配(并通过银行家算法避免死锁产生)
银行家算法数据结构 (1)可利用资源向量Available 是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目.如果Available[j]=K,则表示系统中现有Rj类资源K个. (2) ...
- 连接 insance 到 vlan101 - 每天5分钟玩转 OpenStack(97)
前面我们创建了 vlan101,今天继续部署 instance 到该 vlan network, 并讨论 instance 之间的连通性. launch 新的 instance "cirro ...
- Oracle_多表查询
SQL多表查询 等值和不等值连接查询 从多个表中获取数据:如果在查询的时候,直接从多个表中获取数据.没有添加条件判断,会出现"笛卡尔积"错误 笛卡尔积错误 笛卡尔集会在下面条件下产 ...
- EntityFramework 7 smallint short 奇怪问题(已解决)
在使用 EF7 进行条件查询的时候,遇到一个很奇怪的问题,不知道 EF 其他版本有没有这种情况,怎么说呢?一句话描述不清楚,具体请看下面内容. 问题场景 BloggingContext 配置代码: u ...
- Java多线程系列目录(共43篇)
最近,在研究Java多线程的内容目录,将其内容逐步整理并发布. (一) 基础篇 01. Java多线程系列--“基础篇”01之 基本概念 02. Java多线程系列--“基础篇”02之 常用的实现多线 ...
- JavaWeb路径问题打包总结--小心出门右转404
话说,培训和自学就不是一个回事,两周讲完java基础,两天讲完jsp,两节课讲完servlet,还真不是一般人能受得了的,这两天学习jsp和servlet频繁被路径问题困扰,倒不是出错,只是各种act ...
- 30行代码让你理解angular依赖注入:angular 依赖注入原理
依赖注入(Dependency Injection,简称DI)是像C#,java等典型的面向对象语言框架设计原则控制反转的一种典型的一种实现方式,angular把它引入到js中,介绍angular依赖 ...
- Python_Day_03 list,dic,tuple方法总结
编程语言中最长见的几种数据类型,字典,列表,等.同样在Python中也有这些数据类型,只是有些表现形式不同.同时在Python中又多了一种叫做元组(tuple)的东西. list(列表) 初始化列表 ...
- .net程序部署(mono方式)
某一次 我同事用了这个词 ,说这样才显得够专业 擦.把某某项目 部署到服务器上 .擦 不就是拷个文件过去运行么.月亮 还是绵羊 我搞不清楚了 咱英文不好,绵羊叫的声音?.你就叫我山寨程序猿 随意 一 ...