当前位置:编程学堂 > vs2010中如何批量评论_VS2010批量评论快捷键

vs2010中如何批量评论_VS2010批量评论快捷键

  • 发布:2023-10-07 10:47

批量评论快捷键:Ctrl+K+C

批量取消注释快捷键:Ctrl + K + U

批量评论快捷键:Ctrl + K + C

批量取消注释快捷键:Ctrl + K + U

转载于:https://www.sychzs.cn/nangongyibin/p/10433526.html

在敲代码的过程中,需要对类和函数进行注释,但是一遍又一遍地复制粘贴非常麻烦。我终于找到了一个很好的解决方案:使用宏。

? ?所谓宏就是组织在一起的一组命令,作为单个命令来完成特定的任务。在日常办公环境中,无论是Office还是Foxmail、VS甚至我们使用的输入法,都具有宏功能。 VS2010中的宏不仅可以记录模块,还可以记录类和代码文件。通过设置编辑宏,然后为设置的宏添加特定的快捷键,您可以轻松地将设置的注释块添加到VS2010代码编辑器中的任何位置。实现过程如下:

???

? ? 1、打开“工具”→“宏”→“宏IDE”,进入如下界面,右键“MyMacros”,添加模块

? ?命名模块:

? 2.添加代码并保存

? ?双击添加的模块进入编辑状态,添加如下代码:

进口系统

导入 EnvDTE

进口EnvDTE80

进口EnvDTE90

进口EnvDTE90a

进口EnvDTE100

导入系统.诊断

公共模块功能说明

子文档文件头()

Dim DocSel As EnvDTE.TextSelection

DocSel = www.sychzs.cnion

DocSel.NewLine()

DocSel.Text =“/******************************************** ******”

DocSel.NewLine()

DocSel.Text = "* &名称:"

DocSel.NewLine()

DocSel.Text = "* &函数:"

DocSel.NewLine()

DocSel.Text = "* ¶m[in]:"

DocSel.NewLine()

DocSel.Text = "* &返回:"

DocSel.NewLine()

DocSel.Text = "* &作者:rk"

DocSel.NewLine()

DocSel.Text = "* &版本:V1.0"

DocSel.NewLine()

DocSel.Text = "* &日期:" + System.DateTime.Now.ToLongDateString

DocSel.NewLine()

DocSel.Text = "********************************************* ******/“

结束子

终端模块

注意:设置快捷键之前,最好先运行一下宏,确定宏的能正确执行后再添加快捷键,

在“工具”→“宏”→“宏资源管理器”中可以找到新添加的FunctionNotes下的DocumentFileHeader,右键运行即可

看看是否有效。

如果不起作用,可能是因为这个:点击打开链接

? 3. 设置快捷键

? ?打开“工具”→“选项”,选择“键盘”,进行以下设置?

???

? 4.效果

/**************************************************** **

* &姓名:

* &功能:

* &参数[输入]:

* &返回:

* &作者:rk

* &版本:V1.0

* &日期:2016 年 1 月 5 日,星期二

**************************************************** ****** */

这只是一个相对简单的宏,向您展示如何使用它。如果您有兴趣编写更强大的宏,

可以参考以下代码:

进口系统

导入 EnvDTE

进口EnvDTE80

进口EnvDTE90

进口EnvDTE90a

进口EnvDTE100

导入系统.诊断

公共模块模块1

私人功能版权所有()

版权所有 = CStr(日期.今天.年份) + "技术保留"

结束功能

私有函数 EMailAddress()

邮箱地址 = "support@www.sychzs.cn"

结束功能

私有函数 AuthorName()

作者姓名=“rk”

结束功能

函数产品名称()

产品名称 = ""

结束功能

私有函数 GenGUIDString() 作为字符串

将 sGUID 调暗为字符串

sGUID = System.Guid.NewGuid.ToString()

sGUID = UCase(sGUID.Replace("-", "_"))

GenGUIDString = sGUID

结束功能

私有函数FileString(ByVal文件名作为字符串)作为字符串

FileString = UCase(文件名.Replace(".", "_"))

UCase(左(www.sychzs.cn, Len(www.sychzs.cn) - 2))

结束功能

子 HeaderFileTemplate()

如果 ActiveDocument.Language = EnvDTE.Constants.dsCPP 则 ' C++

If UCase(Right(www.sychzs.cn, 2)) = ".H" then '头文件

暗淡 sGUID = GenGUIDString()

Dim sFile = FileString(www.sychzs.cn)

调暗镜头 = 0

昏暗的strDesc =“/******************************************** *************************************” + vbLf + _

“*版权(C)”+版权()+vbLf+_

"* 文件名: " + www.sychzs.cn + vbLf + _

"* 当前版本:" + "1.0.0.1" + vbLf + _

"* 作者:" + 作者姓名() + " (" + 电子邮件地址() + ")" + vbLf + _

"* 设计日期: " + FormatDateTime(www.sychzs.cn, 1) + vbLf + _

“*摘要:”+ vbLf + _

"* 修改记录:" + vbLf + _

“*日期版本修饰符修改摘要”+vbLf+vbLf+_

“**************************************************** ** **************************************/" + vbLf + _

“”+vbLf+_

"/**************************************** 头文件********* * **************************/" + vbLf + _

“”+vbLf+_

"/**************************************** 常量和宏******** **** *************************/" + vbLf + _

“”+vbLf+_

"/************************************* 数据类型 ********* *************************/” + vbLf + _

“”+vbLf+_

"/**************************************** 函数声明******** ** *************************/" + vbLf + _

“”+vbLf+_

"/**************************************** 类别定义 ********* **************************/” + vbLf + _

“”+vbLf+_

ActiveDocument.Selection.StartOfDocument(0)

ActiveDocument.Selection.text() = strDesc

结束如果

结束如果

结束子

子 ImplFileTemplate()

如果 ActiveDocument.Language = EnvDTE.Constants.dsCPP 则 ' C++

昏暗格式1 = UCase(Right(www.sychzs.cn, 2))

昏暗格式2 = UCase(Right(www.sychzs.cn, 4))

如果 format1 = ".C" 或者 format2 = ".CPP" 或者 format2 = ".CXX" 那么 ' 实现文件

暗淡描述=“/******************************************** *************************************” + vbLf + _

"*版权(C) " + Copyright() + vbLf + _

"* 文件名: " + www.sychzs.cn + vbLf + _

"* 当前版本:" + "1.0.0.1" + vbLf + _

"* 作者:" + 作者姓名() + " (" + 电子邮件地址() + ")" + vbLf + _

"* 设计日期: " + FormatDateTime(www.sychzs.cn, 1) + vbLf + _

“*摘要:”+ vbLf + _

"* 修改记录:" + vbLf + _

“*日期版本修饰符修改摘要”+vbLf+vbLf+_

“**************************************************** ** **************************************/" + vbLf + _

"/******************************** 条件编译选项和头文件************ ********* ******************/" + vbLf + _

“”+vbLf+_

"/**************************************** 宏、常量****** ** ****************************/" + vbLf + _

“”+vbLf+_

"/************************************* 数据类型 ********* *************************/” + vbLf + _

“”+vbLf+_

"/**************************************** 变量************ ******************************/” + vbLf + _

“”+vbLf+_

"/**************************************** 功能实现******** ** *************************/" + vbLf + _

“”+vbLf+_

"/**************************************** 类实现****** ** **************************/" + vbLf + _

“”+vbLf

ActiveDocument.Selection.StartOfDocument(0)

ActiveDocument.Selection.text = 描述

结束如果

结束如果

结束子

调暗 ParamArr()

功能 StripTabs(ByVal MyStr)

在 InStr(MyStr, vbTab) 时执行<> 0

MyStr = Right(MyStr, Len(MyStr) - InStr(MyStr, vbTab))

循环

StripTabs = 修剪(MyStr)

结束功能

子函数描述()

昏暗retTp

昏暗的雷蒂

如果 ActiveDocument.Language = EnvDTE.Constants.dsCPP 则 ' C++

暗淡标题 = 修剪(ActiveDocument.Selection.text)

'获取函数返回类型。

如果标题 <>“”则

Reti = InStr(标题, " ")

Dim Loc = InStr(标题, "(")

如果 Reti < Loc 那么

retTp = StripTabs(左(标题,Reti))

标头 = 右(标头、Len(标头)- Reti)

结束如果

'获取函数名称。

Loc = InStr(标题, "(") - 1

Dim Loc2 = InStr(标题, ")")

如果 Loc > 0 并且 Loc2 > 0 那么“确保有一个 '(' 和 ')”

Dim fcName = 左(标题,位置)

标头 = 右(标头,Len(标头)- Len(fcName))

'返回类型上有存储类型吗?

修剪(fcName)

如果 InStr(fcName, " ") <> 0 那么

retTp = retTp + Left(fcName, InStr(fcName, " "))

fcName = Right(fcName, Len(fcName) - InStr(fcName, " "))

结束如果

'获取函数参数。

暗淡 iPrm = 0

暗淡 iPrmA = 0

暗淡 prms = 标头

'计算参数数量。

在 InStr(prms, ",") 时执行 <> 0

iPrm = iPrm + 1

prms = 右(prms, Len(prms) - InStr(prms, ","))

循环

'将参数列表存储在数组中。

如果 iPrm > 0 那么 ' 如果有多个参数。

iPrm = iPrm + 1

iPrmA = iPrm

重新调暗参数 (iPrm)

Do While InStr(标题, ",") <> 0

ParamArr(iPrm) = Left(标题, InStr(标题, ",") - 1)

'从第一个参数中删除大括号。

如果 InStr(ParamArr(iPrm), " (") <> 0 则

ParamArr(iPrm) = 右(ParamArr(iPrm), _

Len(ParamArr(iPrm)) - InStr(ParamArr(iPrm), " ("))

修剪(ParamArr(iPrm))

结束如果

标题 = 右(标题,Len(标题)- InStr(标题,“,”))

iPrm = iPrm - 1

循环

ParamArr(iPrm) = 标头

'删除最后一个参数的尾部大括号。

如果 InStr(ParamArr(iPrm), ")") <> 0 则

ParamArr(iPrm) = 左(ParamArr(iPrm), _

InStr(ParamArr(iPrm), ")") - 1)

修剪(ParamArr(iPrm))

结束如果

Else '可能是一个参数。

重新调暗参数 (1)

Header = Right(Header, Len(Header) - 1) ' 去掉第一个大括号。

修剪(标头)

ParamArr(1) = StripTabs(标题)

如果 InStr(ParamArr(1), ")") <> 1 则

ParamArr(1) = 左(ParamArr(1), InStr(ParamArr(1), ")") - 1)

修剪(ParamArr(1))

iPrMA = 1

结束如果

结束如果

'将光标定位在所选文本上方一行。

ActiveDocument.Selection.LineUp()

ActiveDocument.Selection.LineDown()

ActiveDocument.Selection.StartOfLine()

'www.sychzs.cnion = vbLf

暗淡描述=“/******************************************** *************************************” + vbLf + _

"* 函数名称 : " + fcName + vbLf + _

"* 功能描述 : "

'打印参数列表。

最后变暗 = iPrmA

在 iPrmA 的同时进行 <> 0

'从任何参数中删除换行符。

如果 InStr(ParamArr(iPrmA), vbLf) <> 0 则

ParamArr(iPrmA) = 右(ParamArr(iPrmA), _

(Len(ParamArr(iPrmA))-_

InStr(ParamArr(iPrMA), vbLf)))

修剪(ParamArr(iPrmA))

结束如果

ParamArr(iPrmA) = StripTabs(ParamArr(iPrmA))

'如果有2个以上参数,第一个参数将

'have a '(' prepended to it, remove it here:

If iPrmA = Last And Last <> 1 Then

ParamArr(iPrmA) = Right(ParamArr(iPrmA), _

Len(ParamArr(iPrmA)) - 1)

End If

Descr = Descr + vbLf + "* 参  数 : " + _

ParamArr(iPrmA)

iPrmA = iPrmA - 1

Loop

Descr = Descr + vbLf + _

"* 返 回 值 : " + retTp + vbLf + _

"* 作  者 : " + AuthorName() + vbLf + _

"* 设计日期 : " + FormatDateTime(www.sychzs.cn, 1) + vbLf + _

"* 修改日期 修改人 修改内容" + vbLf + _

"*******************************************************************************/" + vbLf

ActiveDocument.Selection.text = Descr

End If

End If

End If

End Sub

End Module

? ? 。

相关文章