让VS自动添加注释.docx
- 文档编号:3742655
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:15
- 大小:36.29KB
让VS自动添加注释.docx
《让VS自动添加注释.docx》由会员分享,可在线阅读,更多相关《让VS自动添加注释.docx(15页珍藏版)》请在冰豆网上搜索。
让VS自动添加注释
VS自动添加注释
2011-07-1612:
41171人阅读评论
(1)收藏举报
From:
现在大多数公司都规定程序员在程序文件的头部加上版权信息,这样每个人写的文件都可以区分开来,如果某个文件出现问题就可以快速的找到文件的创建人,用最短的时间来解决问题,常常是以下格式:
//======================================================================
// Allrightsreserved
//
// description:
//
// createdbyUser
//======================================================================
有些人使用Copy和Paste的方式,这样即浪费时间,效果又不是很好,就说上面的时间你就无法去Paste,哈哈,下面我就教大家怎样去添加这些信息,使我们的代码更有个性.
1.在visualstudio2010的安装路径下
如:
[盘符]:
\Programfiles\MicrosoftVisualStudio8\Common7\IDE\ItemTemplatesCache
2.找到文件夹如图所示:
里面可以为各种语言进行修改.如果对WinForm中的类进行修改可以打开\CSharp\2052\Class.zip.其中\CSharp\2052\包括了所有WinForm文件类型的模板.
打开Class.zip里面有一个Class.cs文件,我们对其进行修改,当我们在WinForm中添加类文件的时候,类文件就会自动添加上我们的信息.
如下:
//======================================================================
//
// Allrightsreserved
//
// filename:
$safeitemrootname$
// description:
//
// createdbyUserat $time$
//
//======================================================================
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespace$rootnamespace$
{
class$safeitemrootname$
{
}
}
$rootnamespace$为生成类的命名空间的名字,$safeitemrootname$为生成类的类名.
可以看到我们在版权信息中加入了$time$,它就可以直接给我们加入创建的时间.我们可以对\CSharp\2052中所有的模板进行修改,切忌不要轻易修改系统那些代码,以免影响我们的正常的使用.
对于做Web开发的人员来说可以在ItemTemplatesCache\Web\CSharp\2052里进行修改.
新建一个类文件就可以实现了插入我们自定义的版权信息.
//======================================================================
//
// Allrightsreserved
//
// filename:
NewClass
// description:
//
// createdbyUserat
//
//======================================================================
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
///
///NewClass的摘要说明
///
publicclassNewClass
{
publicNewClass()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
}
哈哈,是不是很酷呀!
赶快个性一下你的代码吧!
这个是扩展参数
参数
描述
clrversion
当前系统CLR版本号
GUID[1-10]
生成全局唯一标识符,可以生成10个 (例如:
guid1)
itemname
打开添加新建项时输入的文件名称
machinename
当前机器的名称(如:
pc1)
registeredorganization
注册的组织名
rootnamespace
命名空间名
safeitemname
保存的文件名
time
当前系统时间,格式:
DD/MM/YYYY00:
00:
00.
userdomain
用户所在的域
username
当前系统用户名
year
当前系统时间 YYYY.
上面提供了部分的参数(希望有人继续补充),已经经本人在VS2010下测试,可以通过
/*小补充-Start
另外,类库Web或Winform都是不同的(Web的在WebClass.zip下面的Class.cs中,各种不同的类型,在的位置也不同)
种类也各有不用,分别为Class.zip、Interface.zip、Form.zip等添加注释(我们是以Class.zip为例,也就是以类为基础)
此外:
这里$var$都是系统的变量,模板参数是要区分大小写的,大家需要注意。
系统提供的可用的参数如下:
参数 说明
clrversion
公共语言运行库(CLR)的当前版本。
GUID[1-10]
用于替换项目文件中的项目GUID的GUID。
最多可以指定10个唯一的GUID(例如,guid1))。
itemname
用户在添加新项对话框中提供的名称。
machinename
当前的计算机名称(例如,Computer01)。
projectname
用户在新建项目对话框中提供的名称。
registeredorganization
HKLM/Software/Microsoft/WindowsNT/CurrentVersion/RegisteredOrganization中的注册表项值。
rootnamespace
当前项目的根命名空间。
此参数用于替换正向项目中添加的项中的命名空间。
safeitemname
用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。
safeprojectname
用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。
time
以DD/MM/YYYY00:
00:
00格式表示的当前时间。
userdomain
当前的用户域。
username
当前的用户名。
year
以YYYY格式表示的当前年份。
小补充-End*/
模板
/*****************************************************************************
* filename:
$safeitemrootname$
* 描述:
*
* 创建者User
* CLR版本:
$clrversion$
* 新建项输入的名称:
$itemname$
* 机器名称:
$machinename$
* 注册组织名:
$registeredorganization$
* 命名空间名称:
$rootnamespace$
* 文件名:
$safeitemname$
* 创建系统时间:
$time$
* 创建年份:
$year$
*
/*****************************************************************************/
程序注释的重要性毋庸置疑,一个大型的项目通常情况下都是几个软件工程师合作出来的成果,假如该项目中的代码注释不全,那会给将来的维护者带来无穷无尽的隐患。
通用的办法是给自己工程里面的函数添加注释——使用宏。
1.打开VisualStudio2008(2005一样适用)开发工具,单击“工具→宏→新建宏项目”,然后按照步骤建立注释宏,添加如下代码并保存。
2.打开菜单–>工具–>选项–>键盘,在列表框中选择刚才添加的Macro,然后在按快捷键中输入快捷键,点击”分配”。
注释宏的代码如下:
SubAddFunComment()
DimDocSelAsEnvDTE.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="*返回值:
"
DocSel.NewLine()
DocSel.Text="*作 者:
TankyWoo"
DocSel.NewLine()
DocSel.Text="*博 客:
(1)www.WuTianQ|
(2)www.TankyW"
DocSel.NewLine()
DocSel.Text="*电子邮箱:
admin@TankyW"
DocSel.NewLine()
DocSel.Text="*日 期:
"+System.DateTime.Now.ToLongDateString()
DocSel.NewLine()
DocSel.Text="*******************************************************************/"
EndSub
宏代码示例2:
OptionExplicitOff
OptionStrictOff
ImportsSystem
ImportsEnvDTE
ImportsEnvDTE80
ImportsEnvDTE90
ImportsEnvDTE90a
ImportsEnvDTE100
ImportsSystem.Diagnostics
ImportsVSLangProj
ImportsSystem.IO
ImportsSystem.Text
ImportsSystem.Collections.Generic
ImportsSystem.Runtime.InteropServices
ImportsSystem.Windows.Forms
PublicModuleModuleName
'Youcanjustdefinethevariable
DimdocumentAsDocument=DTE.ActiveDocument
DimselectionAsTextSelection=DTE.ActiveDocument.Selection
DimheaderTextAsString
DimfilenameAsString=document.Name
DimpathnameAsString=document.Path.ToString()
DimprojectnameAsString=document.ProjectItem.ContainingProject.Name
PublicSubAddFileHeader()
Try
'Mustsetvalueagainbecausethereissingletonmoduleinstance
document=DTE.ActiveDocument
selection=DTE.ActiveDocument.Selection
filename=document.Name
pathname=document.Path.ToString()
projectname=document.ProjectItem.ContainingProject.Name
selection.StartOfDocument()
'deleteExistComment()
insertComment()
Finally
Application.DoEvents()
EndTry
EndSub
PrivateSubdeleteExistComment()
selection.StartOfDocument()
DTE.ExecuteCommand("Edit.Find")
DTE.Windows.Item(filename).Activate()
DTE.Find.FindWhat="usingsystem"
DTE.Find.Target=vsFindTarget.vsFindTargetCurrentDocument
DTE.Find.MatchCase=False
DTE.Find.MatchWholeWord=False
DTE.Find.Backwards=False
DTE.Find.MatchInHiddenText=True
DTE.Find.PatternSyntax=vsFindPatternSyntax.vsFindPatternSyntaxLiteral
DTE.Find.Action=vsFindAction.vsFindActionFind
If(DTE.Find.Execute()=vsFindResult.vsFindResultNotFound)Then
Return
EndIf
DTE.Windows.Item(filename).Activate()
DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn)
DTE.ActiveDocument.Selection.LineUp(True,100)
DTE.ActiveDocument.Selection.Delete()
DTE.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Close()
EndSub
PrivateSubinsertComment()
'selection.StartOfDocument()
selection.Insert("#region(C)HeaderRegion@"+Date.Today.Year.ToString())
selection.NewLine()
selection.Insert("//==============================================================")
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.Insert("//TheHerderRegion@"+Date.Today.Year.ToString())
selection.NewLine()
selection.Insert("//Copyright(C)2010-"+Date.Today.Year.ToString()+".Allrightsreserved.")
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.Insert("//File:
")
selection.NewLine()
selection.Insert("// "+filename)
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.Insert("//Description:
Whydoyoucreatethisfile")
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.Insert("//==============================================================")
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.Insert("//$History:
"+document.FullName.Substring(document.FullName.IndexOf(":
")+1)+"$")
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.Insert("//******************Version1******************")
selection.NewLine()
selection.Insert("//User:
Who Time:
"+Date.Now.ToLocalTime().ToString())
selection.NewLine()
selection.Insert("//Updatedin:
"+projectname+"Project")
selection.NewLine()
selection.Insert("//Comments:
Whatdoyouwanttodo")
selection.NewLine()
selection.Insert("//")
selection.NewLine()
selection.NewLine()
selection.Insert("#endregion")
selection.NewLine()
selection.NewLine()
EndSub
EndModule
================================================================
以下的宏定义可以拿来作为学习宏操作之用
From:
创建过程:
1.新建Macro工程
打开菜单-->工具-->宏-->新建宏项目...,根据向导提示建立工程。
2.编辑Macro工程
打开菜单-->工具-->宏-->宏资源管理器,在红资源管理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VS 自动 添加 注释
![提示](https://static.bdocx.com/images/bang_tan.gif)