赞
踩
从VS2010微软就不再支持Macros功能后,想要自己编写宏完成一些重复度极高的垃圾操作变得很不方便。例如为函数添加注释头,我们知道添加注释很重要,不管是自己维护还是给别人读,函数头带个注释都会使工作变得轻松起来。
而最近再编写代码的时候被添加注释的重复工作搞得很烦,很怀念VS2010的Macro功能,上网查了一查找到了一个VS插件:Marcos for Visual Studio。成功把Macros功能带回来了。
但是一进去插件却发现居然用的是Javascript,菜鸡没学过JS只能对着VB脚本慢慢改,参考了网上的大部分代码。最终改出一个能用的脚本。
请各路大神不要嘲笑。
VS版本:VS 2017 社区版
Marcos for Visual Studio下载链接:
Marcos for Visual Studio.
或者直接在扩展中搜索:Marcos
Macros for Visual Studio基本操作很简单,重复动作可以录制脚本然后分配快捷键播放。
下面直接上代码。
/*获取系统时间*/ var date = new Date(); var year = date.getYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hours = date.getHours(); var minutes = date.getMinutes(); var funct; var fName; var fPara; var Params = []; var fretrun; var flag1; var flag2; var flag3; month = month < 10 ? ("0" + month) : ("" + month); day = day < 10 ? ("0" + day) : ("" + day); hours = hours < 10 ? ("0" + hours) : ("" + hours); minutes = minutes < 10 ? ("0" + minutes) : ("" + minutes); var doc = dte.ActiveDocument; /*全选光标所在行*/ doc.Selection.SelectLine(); /*获取光标所在行的字符数据*/ funct = doc.Selection.Text; flag1 = funct.indexOf("("); flag2 = funct.indexOf(")"); flag3 = funct.indexOf(" "); /*获取函数返回类型*/ fretrun = funct.substr(0, flag3); /*获取函数参数内容*/ fpara = funct.substr(flag1 + 1, flag2-flag1-1 ); /*对参数内容进行分割,获得每个参数名 */ Params = fpara.split(','); /*获得代码段的函数名*/ var codeElement = doc.Selection.ActivePoint.CodeElement(2); if (codeElement != null) { fName = codeElement.Name; } /*在光标上一行输出内容*/ doc.Selection.LineUp(); /*第一项*/ doc.Selection.NewLine(); doc.Selection.Text = "//*******************************************************************"; /*第二项:函数名*/ doc.Selection.NewLine(); doc.Selection.Text = "//Fuction Name:" + fName; /*第三项:函数描述*/ doc.Selection.NewLine(); doc.Selection.Text = "//Summary:"; /*第四项:参数表*/ doc.Selection.NewLine(); if (Params.length != 0) { doc.Selection.Text = "//Params: " + Params[0]+"-"; for (var i = 1; i < Params.length; i++) { doc.Selection.NewLine(); doc.Selection.Text = "// " + Params[i].replace(/^\s*/g, '')+"-"; } } else { doc.Selection.Text = "//Params: None" ; } /*第五项:返回类型*/ doc.Selection.NewLine(); if (fretrun == "void") { doc.Selection.Text = "//retrun:None"; } else { doc.Selection.Text = "//retrun type:" + fretrun; } /*第六项:作者*/ doc.Selection.NewLine(); doc.Selection.Text = "//Author:Name"; /*第七项:时间*/ doc.Selection.NewLine(); doc.Selection.Text = "//Date:" + year + "-" + month + "-" + day + " " + hours + ":" + minutes; /*第八项*/ doc.Selection.NewLine(); doc.Selection.Text = "//********************************************************************" doc.Selection.EndOfLine();
给脚本分配快捷键之后,将光标停留在函数者定义所在行,按下快捷键即可快速创建注释模板,函数参数和函数名以及建立时间自动导入,只需手动输入函数描述和各个参数说明即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。