title: Visual Studio中使用Macros插件给代码添加注释、时间和以及自动脚本
date: 2020-09-11
sidebarDepth: 2
tags:
- 代码
- Visual studio
- 时间
- 注释
- Macros
categories: - 开发
- 微软技术
- windows
Macros for Visual Studio插件是一款非常易用的自动脚本插件,支持visual studio各个版本,用来创建todo、时间备注以及文件头尾注释。
Macros for Visual Studio
插件是一款非常易用的自动脚本插件,支持visual studio各个版本,用来创建todo、时间备注以及文件头尾注释。
简介
什么是创建信息注释?
创建信息注释,类似于文件的创建信息,一般来说,至少要有创建人和创建时间。如果说有人修改了方法也应该添加一个更新信息注释。
为什么要添加创建信息注释?
可能在一个人编码的时候,创建信息注释并不太重要,但是如果许多人共同维护一个项目,并且经常会出现多个人修改同一个文件的代码 时,这就显得很重要了,哪里的代码出现了什么问题,可以直接责任到人,谁改的代码出现了问题就应该谁去修改代码。
虽然使用svn、git管理工具,可以有提交日志,可以方便的管理,但如果在代码中进行注释,则会更好的提升效率。
如果是在vs code中,则可以使用
Insert Date String
等插件,部署后使用ctrl+Shift+I就能插入当前时间,显然这对于visual stuido大型编程来说还不足。
创建信息注释
- 1.最初的想法是重写 VS 内置的文档注释,然而并没有找到这样的解决方案。找到的基本都是修改新建类或接口时模板文件从而添加注释,并没有在方法上加注释 的解决方案。
这个方案否定之后,尝试着使用自定义代码段来实现在生成注释的基础上再添加创建信息注释。
- 2.自定义代码段
自定义代码段参考示例:
<?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>
这样的代码段还有许多不足,现在作者是写死的,创建时间需要再插入代码段之后再进行手动修改, 我希望能够自动生成作者和当前日期, 作者写死的问题不大,因为这个代码段只我一个人使用,直接写死反而更方便,这里使用一个变量方便进行修改, 关键是当前日期没有办法获取到,查阅了很多资料,代码段并不支持直接插入当前日期,* 上有人讨论过这个问题,解决方案是利用宏自动生成当前日期,但是文中提到的解决方案不可用,不过倒给了我解决问题的思路——利用宏去插入当前日期。
- 3.宏插入当前日期 我在 VS 的 扩展与更新 中下载了一个 管理宏的插件——
Macros for Visual studio
你也可以直接在visualstudio的market市场下载,地址:
https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.MacrosforVisualStudio
这有一个官方示例动图:
这是在visual studio中下部署环境:
下载安装之后需要重启 VS ,重启之后在 菜单栏中的工具下就可以看到:
这个宏管理器自带了一些 Samples ,其中有一个可以插入日期的宏
选择 Assign Shortcut 进行设置快捷键就可以在 VS 中使用啦,默认的格式是 “mm/dd/yyyy”
如果你像我一样不喜欢默认的日期格式,可以在对应项上右键选择“打开”,进行编辑,里面是 js 代码,有一些 js 基础的话修改起来会 更方便,我修改了下代码,将日期格式修改为了“yyyy-MM-dd”格式。
- 4.完整操作流程
首先,在方法体上输入“///”,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就可以了
Visual Studio中使用Macros插件给代码添加注释、时间和以及自动脚本的更多相关文章
-
visual studio 中使用的插件介绍
Highlight all occurrences of selected word 高亮代码 Indent Guides 代码的开头结尾连接竖线..是代码更清洗 PHP Tools for visu ...
-
教程:在 Visual Studio 中开始使用 Flask Web 框架
教程:在 Visual Studio 中开始使用 Flask Web 框架 Flask 是一种轻量级 Web 应用程序 Python 框架,为 URL 路由和页面呈现提供基础知识. Flask 被称为 ...
-
教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...
-
在Visual Studio 中使用git——给Visual Studio安装 git插件(二)
在Visual Studio 中使用git--什么是Git(一) 第二部分: 给Visual Studio安装 git插件 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了, ...
-
如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...
-
[转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...
-
推荐一个可以直接在Visual Studio中看到complexity的插件CodeMaid
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:推荐一个可以直接在Visual Studio中看到complexity的插件CodeMaid.
-
【转】在Visual Studio中怎样快速添加代码段
原文网址:http://blog.csdn.net/yl2isoft/article/details/9735527 以前一直只知道,键入prop,再按两次tab键,会生成自动属性代码. 今天闲着无事 ...
-
Visual Studio中自定义代码段!
Visual Studio中自定义代码段! 第一步:在编辑器中进行快捷键的输入[ctrl + shift + p] 或者 点击 查看 第一个选项就是!请看下图 第二步:选择你要配置代码段的语言, 这里 ...
随机推荐
-
ESXi查询网卡的驱动和固件版本
~ # esxcfg-nics -lName PCI Driver Link Speed Duplex MAC Address MTU Description vmnic0 0000:01:00.00 ...
-
private + virtual in Java/C++
在Java中,private方法是隐式final的,就是说即使在子类中定义一个一模一样的方法,编译器认为这是两个没有联系的方法.private方法不参与运行时多态,这点和 final方法.static ...
-
xcode简介
Xcode 是苹果公司开发的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷方式.Xcode 具有统一的用户界面设计,编码.测试.调试都在一个简单的窗口内完成. Xcode前身是继承自N ...
-
ASP.NET自定义控件入门Demo
最近看了MSDN关于自定义控件的介绍,根据官方的文档,自己学着做了一个简单的Demo给需要的朋友参考. ASP.NET 源生的TextBox是不带Label标签的,这里我要实现的是创建一个带Label ...
-
关于Oracle表空间数据文件自增长的一些默认选项
昨天,一个同事请教了一些关于Oracle表空间数据文件自增长的问题,解答过程中顺便整理起来,以后其他同事有同样的疑问时可以直接查阅. 实验内容: 创建MYTEST表空间,默认不开启自增长. 给MYTE ...
-
ASP+MYSQL的配置及乱码解决
TempStr = "driver={MySQL ODBC 3.51 Driver};database="&strDB&";server="&a ...
-
安装appuim
一.作为一名软件测试人员,对工作习惯和品质的有要求,要有对问题的敏感度,遇到问题就不能轻易放过,提前保存一切可能对分析解决问题有帮助的资料,不怕麻烦,尽可能的全面详细,不漏重点.若神经大条,嫌麻烦,不 ...
-
【机器学习实战】第 10 章 K-Means(K-均值)聚类算法
第 10 章 K-Means(K-均值)聚类算法 K-Means 算法 聚类是一种无监督的学习, 它将相似的对象归到一个簇中, 将不相似对象归到不同簇中.相似这一概念取决于所选择的相似度计算方法.K- ...
-
网络基础tcp/ip协议五
传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率 ...
-
vue 路由嵌套高亮问题
正常路由嵌套是没有问题的,但是如果你已经在当前主路由页面了,然后再次点击主路由就会出现页面数据空白的情况 看代码: //主路由通过v-for循环出来 <div class="list- ...