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>

这样的代码段还有许多不足,现在作者是写死的,创建时间需要再插入代码段之后再进行手动修改, 我希望能够自动生成作者和当前日期, 作者写死的问题不大,因为这个代码段只我一个人使用,直接写死反而更方便,这里使用一个变量方便进行修改, 关键是当前日期没有办法获取到,查阅了很多资料,代码段并不支持直接插入当前日期,stackoverflow 上有人讨论过这个问题,解决方案是利用宏自动生成当前日期,但是文中提到的解决方案不可用,不过倒给了我解决问题的思路——利用宏去插入当前日期。

  • 3.宏插入当前日期 我在 VS 的 扩展与更新 中下载了一个 管理宏的插件—— Macros for Visual studio

你也可以直接在visualstudio的market市场下载,地址:
https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.MacrosforVisualStudio

这有一个官方示例动图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sJTvlKof-1599781545174)(https://www.z01.com/cli/images/Macros0.gif)]

这是在visual studio中下部署环境:

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xLwtSnRO-1599781545179)(https://www.z01.com/cli/images/Macros2.png)]

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fcqv4XKK-1599781545184)(https://www.z01.com/cli/images/Macros4.png)]

如果你像我一样不喜欢默认的日期格式,可以在对应项上右键选择“打开”,进行编辑,里面是 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插件给代码添加注释、时间和以及自动脚本相关推荐

  1. 在Visual Studio中使用T4 Templates 生成代码

    在没有看过Hilton Giesenow(How Do I: Create and Use T4 Templates.)的视频之前,我还没意识到在Visual Studio 2008 中使用T4是何等 ...

  2. 在Visual Studio中编写Epicor10的BPM代码

    1.搭建Visual Studio编写BPM的环境 a.共享或复制服务端Server文件 BPM是运行在Epicor服务器上的,因此编写BPM代码是需要服务端文件支持的, 所以需要把服务端Server ...

  3. Qt中的ui文件是c语言文件吗,c-Qt-UI文件未在Visual Studio中更新

    我最近开始使用Qt(某种速成课程)并将其与Visual Studio集成(如here所述),现在由于某种原因,在进行了以下更改后,文件似乎没有使用保存的.ui文件进行更新. Qt设计器. 该文件正在正 ...

  4. 如何在Visual Studio中直接使用示例代码浏览器搜索下载和管理代码示例

    今天微软一站式示例代码库团队发布了示例代码浏览器的Visual Studio 扩展.有了它,开发人员就可以在Visual Studio 2010里直接通过Alt+F1快捷键搜索示例代码,并方便地对示例 ...

  5. 在Visual Studio中使用C#脚本(CSX脚本)生成代码

    目录 介绍 C#脚本(CSX文件) CSX脚本示例 MyProgram.cs MyScript.csx 使用C#REPL(CSI.EXE)运行CSX脚本 程序集引用 NuGet软件包 从PowerSh ...

  6. 如何在Visual Studio中自动格式化代码?

    我知道Visual Studio可以自动格式化以使我的方法和循环正确缩进,但是我找不到该设置. #1楼 对于Visual Studio 2010/2013/2015/2017 设置文档格式( Ctrl ...

  7. 在Visual Studio中使用Git [关闭]

    作为一个长期的Visual SourceSafe用户(和仇恨)我正在讨论与同事转换到SVN ; 他建议改用Git . 显然,它可以在没有中央服务器的情况下用作点对点(我们是一个3开发团队). 我无法找 ...

  8. Visual Studio 字体抗锯齿插件 Text Sharp

    mac用多了胃口是会被养屌不少,系统字体光mactype渲染还不够,今天终于找到了Visual Studio中可以使用的代码字体抗锯齿插件,效果很爽. 用Consolas字体举例: 惨不忍睹. 特效半 ...

  9. 详解在Visual Studio中使用git版本系统 [转]

    详解在Visual Studio中使用git版本系统    作者:掷鸡蛋者 , 发布于2012-6-21   这篇教程的预期,是希望没有任何版本使用基础的新手也可以掌握,所以细节较多,不当之处,欢迎指 ...

最新文章

  1. 五年12篇顶会论文综述!一文读懂深度学习文本分类方法
  2. python 正则表达式 查找 替换 文本
  3. python如何读取txt文件-如何在python中读取文件夹中的txt文件列表
  4. js:封装获取当前元素的所有的哥哥元素节点
  5. 国内网络安全这门行业人才会不会饱和呢?
  6. 《Python3网络爬虫开发实战(第二版)》上市了!!!!
  7. Flash播放控件属性详解
  8. 面向对象之多态,魔法函数
  9. matlab时频分析工具箱安装_科研小班 | 加州大学伯克利分校 | 物理、电子工程:MATLAB信号和数据处理课题...
  10. Ubuntu18.04 orb-slam3编译出现的错误 undefined reference to symbol ‘_ZN3MPI8Datatype4FreeEv‘ libmpi_cxx.so
  11. 190310每日一句
  12. idea 新建java类 乱码,Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)
  13. Java学习笔记——网络编程
  14. 由一本书看一个行业 -- 网上购书之比较
  15. 世界各国(地区)货币名称及其进位制
  16. 入射波反射波和驻波的特性推导
  17. 关于在JS中引入JS文件的JQ方法
  18. lpl夏季赛2021赛程表出炉,用当贝投影F3百吋大屏看比赛!
  19. iphone5信号无服务器,iPhone手机信号这么强,原因是开启了“它”,果粉:有救了...
  20. Redis数据结构底层设计

热门文章

  1. error: #109: expression preceding parentheses of apparent call must have (pointer-to-) function typ
  2. 从零开始 教你如何搭建Discuz!4.1论坛(图)
  3. 如何获取目标基因的转录因子
  4. LLVM 与 Clang 介绍
  5. 计算机网考里操作题发邮件,计算机网考操作题题型.doc
  6. 配置管理和变更管理_想要改善变更管理,消除对它的需要
  7. 大数据集群搭建所遇问题(最重要的是各个组件必须版本匹配)
  8. 权限和归属——基本权限和特殊权限
  9. 机器学习之ID3算法(小白入门级别)
  10. C语言编程-----求s=a+aa+aaa+aaaa+aa...a的值