VS2010编写自定义宏注释

一部分引自:http://blog.csdn.net/ajioy/article/details/8483011

这里所说的宏可不是指#define PI 3.14159之类的,而是按下Alt + 1,Alt + 2之类的键盘组合之后可以方便地插入一大串自定义的内容,如:

[cpp]  view plain copy
  1. /******************************************************************* 
  2. * 函数名称: 
  3. * 功    能: 
  4. * 参    数: 
  5. * 返 回 值:void 
  6. * 创 建 人:Ajioy 
  7. * 博    客:blog.csdn.net/ajioy 
  8. * 电子邮箱:ajioy1206@gmail.com 
  9. * 日    期:2013.1.8 21:18 
  10. *******************************************************************/  


这在团队开发中显得尤为重要,当然,在网络上发布源代码时也起到一个简单地版权声明作用,而不需要人为地花时间编写及排版,减少了许多繁琐而不必要的工作。

简单地了解一下,这里谈的宏(Macro)是开发工具VS2010(或VS的其它版本)自带的,一种方便开发人员进行注释、版权声明或者执行其他若干琐碎工作的“小机器人”。重复、不辞劳苦地为我们做一些不可缺少的小事。总之,有它的存在,生活更美好。

怎样自己写一个宏?

1.打开VS2010(或VS的其它版本),“Tools” -->  "Macros"--->"Macros IDE...(Alt + F11)" 打开宏IDE

2.在宏IDE的工具栏中"Project"->"Add Module"(或Add New Item)->Name:AjioyMacros--->"Add"

3.将初始内容替换成以下代码

[cpp]  view plain copy
  1. Imports System  
  2. Imports EnvDTE  
  3. Imports EnvDTE80  
  4. Imports EnvDTE90  
  5. Imports EnvDTE90a  
  6. Imports EnvDTE100  
  7. Imports System.Diagnostics  
  8. Imports System.Text  
  9. Imports System.Text.RegularExpressions  
  10. Imports System.IO  
  11. Imports System.Collections.Specialized  
  12.   
  13. Public Module AjioyMacros'这里要与保存的Module名保持一致,不然无法调用宏  
  14.     Sub AddMessageBox()  
  15.         'DESCRIPTION 增加对话框  
  16.         ActiveDocument.Selection.Text = "MessageBox("""",""提示"");" + vbNewLine + "system(""pause"");"  
  17.     End Sub  
  18.     Sub AddStartComment()  
  19.         'DESCRIPTION 注释开始  
  20.         ActiveDocument.Selection.Text = "system(""pause"");"  
  21.     End Sub  
  22.     Public Sub FileSign()  
  23.         'DESCRIPTION 文件签名  
  24.         Dim Description As New StringBuilder  
  25.         Dim BlankLine As String  
  26.         BlankLine = "//" + vbNewLine  
  27.         With Description  
  28.             .AppendFormat("//Copyright (c) 2013 Ajioy All Rights Reserved{0}",vbNewLine)  
  29.             .AppendFormat("/*********************************************************************************************{0}", vbNewLine)  
  30.             .AppendFormat("*文件名:{0}{1}{2}", vbTab, DTE.ActiveDocument.Name, vbNewLine)  
  31.             .AppendFormat("*说明:{0}{1}{2}", vbTab, "", vbNewLine)  
  32.             .AppendFormat("*创建日期:{0}{1}{2}", vbTab, Date.Today.ToString("yyyy-MM-dd"), vbNewLine)  
  33.             .AppendFormat("*作者:{0}{1}{2}", vbTab, "Ajioy", vbNewLine)  
  34.             .AppendFormat("*版本:{0}{1}{2}", vbTab, "1.0", vbNewLine)  
  35.             .AppendFormat("*----------------------------------------------------------------------------------------------{0}", vbNewLine)  
  36.             .AppendFormat("*修改记录:{0}", vbNewLine)  
  37.             .AppendFormat("*日期{0}版本{1}修改人{2}修改内容{3}", New String(vbTab, 3), vbTab, vbTab, vbNewLine)  
  38.             .AppendFormat("*{0}{1}", Date.Today.ToString("yyyy-MM-dd"), vbNewLine)  
  39.             .AppendFormat("********************************************************************************************/{0}", vbNewLine)  
  40.             .Append(vbNewLine)  
  41.         End With  
  42.         '插入cs文件头部  
  43.         Dim objSel As TextSelection  
  44.         objSel = CType(DTE.ActiveDocument.Selection, TextSelection)  
  45.         DTE.UndoContext.Open("FileSign")  
  46.         objSel.StartOfDocument(False)  
  47.         objSel.Insert(Description.ToString())  
  48.         DTE.UndoContext.Close()  
  49.     End Sub  
  50.     Sub FunctionSign()  
  51.         'DESCRIPTION 文件签名  
  52.         Dim obj  
  53.         obj = Now()  
  54.         Dim DocSel As EnvDTE.TextSelection  
  55.         DocSel = DTE.ActiveDocument.Selection  
  56.         DocSel.NewLine()  
  57.         DocSel.Text = "/*******************************************************************"  
  58.         DocSel.NewLine()  
  59.         DocSel.Text = "* 函数名称:"  
  60.         DocSel.NewLine()  
  61.         DocSel.Text = "* 功    能:"  
  62.         DocSel.NewLine()  
  63.         DocSel.Text = "* 参    数:"  
  64.         DocSel.NewLine()  
  65.         DocSel.Text = "* 返 回 值:"  
  66.         DocSel.NewLine()  
  67.         DocSel.Text = "* 创 建 人:Ajioy"  
  68.         DocSel.NewLine()  
  69.         DocSel.Text = "* 博    客:blog.csdn.net/ajioy"  
  70.         DocSel.NewLine()  
  71.         DocSel.Text = "* 电子邮箱:ajioy1206@gmail.com"  
  72.         DocSel.NewLine()  
  73.         DocSel.Text = "* 日    期:" + CStr(Year(obj)) + "." + CStr(Month(obj)) + "." + CStr(Day(obj)) + " " + CStr(Hour(obj)) + ":" + CStr(Minute(obj)) 'System.DateTime.Now.ToLongDateString()  
  74.         DocSel.NewLine()  
  75.         DocSel.Text = "*******************************************************************/"  
  76.     End Sub  
  77.     Sub AddModify()  
  78.         'DESCRIPTION 增添修改  
  79.         Dim obj  
  80.         obj = Now()  
  81.         ActiveDocument.Selection.Text = "//Ajioy" + CStr(Year(obj)) + "." + CStr(Month(obj)) + "." + CStr(Day(obj))  +" " + CStr(Hour(obj)) + ":" + CStr(Minute(obj)) + " 修改"  
  82.     End Sub  
  83.     Sub AddStartSymbol()  
  84.         'DESCRIPTION 开始注释  
  85.         ActiveDocument.Selection.Text = "/*"  
  86.     End Sub  
  87.     Sub AddEndSymbol()  
  88.         'DESCRIPTION 结束注释  
  89.         ActiveDocument.Selection.Text = "*/"  
  90.     End Sub  
  91. End Module  

简单实现功能,该部分引自:http://www.xuebuyuan.com/630353.html

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module MyNote

    Sub DocumentFileHeader()

        Dim DocSel As EnvDTE.TextSelection
        DocSel = DTE.ActiveDocument.Selection
        DocSel.NewLine()
        DocSel.Text = "'************************************************"
        DocSel.NewLine()
        DocSel.Text = "'◇作者:吴利昌"
        DocSel.NewLine()
        DocSel.Text = "'◇小组:无"
        DocSel.NewLine()
        DocSel.Text = "'◇说明:"
        DocSel.NewLine()
        DocSel.Text = "'◇版本号:V1.0"
        DocSel.NewLine()
        DocSel.Text = "'◇创建日期:" + System.DateTime.Now.ToLongDateString
        DocSel.NewLine()
        DocSel.Text = "'*************************************************"

    End Sub

End Module


保存后关闭宏IDE

4.回到VS2010主界面,"Tools"--->"Options"--->"Environment"--->"Keyboard"--->在Show commands containing:下的编辑框中输入FunctionSign(所有带括号的那些名称,如AddStartSymbol()...),会看到有"Macros.Macros(或Samples).AjioyMacros.FunctionSign"的项,选中它,在Press shortcut keys:下自定义快捷键,建议用Alt +  数字0-9和-+键组合,以免与编译环境快捷键发生冲突,之后"Assign",最后确定。

接下来我们可以随便验证一下,打开一个.cpp文件,按下Alt + 数字,产生自定义注释。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值