Source Insight里头文件注释和函数头的注释
1.将下述代码拷贝入一个文件,扩展名为em
2.打开BASE工程,添加本文件,并重新同步
3.添加hh_InsertFuncHeader的快捷键,即为函数头注释,光标需要放在函数名那一行,否则无效
4.添加hh_InsertFileHeader的快捷键,即为文件头注释,且头文件(目前只是.h)和源文件(非.h文件)不同,头文件里有
macro hh_InsertFuncHeader()
{
hbuf = GetCurrentBuf()
szFunc = GetCurSymbol()
if (strlen(szFunc) == 0)
{
return
}
ln = GetSymbolLine(szFunc)
if (ln == "-1")
{
return
}
symbol = GetSymbolLocationFromLn(hbuf, ln)
if ((symbol == Nil) || (symbol.Type != "Function"))
{
return
}
szMyName = hh_get_author_name()
szTime = GetSysTime(1) 
Day = szTime.Day 
if (Day < 10)
{
Day = "0" # szTime.Day
}
Month = szTime.Month 
if (Month < 10)
{
Month = "0" # szTime.Month
}
Year = szTime.Year
funcLen = strlen(szFunc)
hsyml = SymbolChildren(symbol)
cchild = SymListCount(hsyml)
InsBufLine(hbuf, ln++, "/*****************************************************************************/")
InsBufLine(hbuf, ln++, "/**")
InsBufLine(hbuf, ln++, "* \author @szMyName@")
InsBufLine(hbuf, ln++, "* \date @Year@/@Month@/@Day@")
InsBufLine(hbuf, ln++, "* \brief ")
ichild = 0
while (ichild < cchild)
{
childsym = SymListItem(hsyml, ichild)
if (childsym.type == "Parameter")
{
symNameLen = strlen(childsym.symbol)
name = strmid(childsym.symbol, funcLen+1, symNameLen)
InsBufLine(hbuf, ln++, "* \param " # name)
}
ichild = ichild + 1
}
SymListFree(hsyml)
InsBufLine(hbuf, ln++, "* \return ")
InsBufLine(hbuf, ln++, "* \remarks ")
InsBufLine(hbuf, ln++, "******************************************************************************/")
// put the insertion point inside the header comment
SetBufIns(hbuf, ln, 0)
}
macro hh_InsertFileHeader()
{
hbuf = GetCurrentBuf()
fullfileName = GetBufName(hbuf)
fileName = hh_GetFileNameFromFull(fullfileName)
szMyName = hh_get_author_name()
ln = 0
szTime = GetSysTime(1) 
Year = szTime.Year
Month = szTime.Month
if (Month < 10)
{
Month = "0" # szTime.Month
}
Day = szTime.Day
if (Day < 10)
{
Day = "0" # szTime.Day
}
fileType = strmid(fileName, strlen(fileName)-2, strlen(fileName))
InsBufLine(hbuf, ln++, "/*****************************************************************************/")
InsBufLine(hbuf, ln++, "/**")
InsBufLine(hbuf, ln++, "* \file " # fileName)
InsBufLine(hbuf, ln++, "* \author " # szMyName)
InsBufLine(hbuf, ln++, "* \date @Year@/@Month@/@Day@")
InsBufLine(hbuf, ln++, "* \version V1")
InsBufLine(hbuf, ln++, "* \brief 文件描述")
InsBufLine(hbuf, ln++, "* \note Copyright (c) 2000-2020 XXXXX公司")
InsBufLine(hbuf, ln++, "* \remarks 修改日志")
InsBufLine(hbuf, ln++, "******************************************************************************/")
if (fileType == ".h")
{
ln = hh_InsertHeaderFileHeader(hbuf, fileName, ln)
}
else
{
ln = hh_InsertSourceFileHeader(hbuf, fileName, ln)
}
SetBufIns(hbuf, ln, 0)
}
macro hh_get_author_name()
{
var szMyName
szMyName = getenv(MYNAME)
if (szMyName == Nil)
{
szMyName = ask("What's your name?");
putenv(MYNAME, szMyName);
}
return szMyName
}
macro hh_InsertHeaderFileHeader(hbuf, fileName, ln)
{
hbuf = GetCurrentBuf()
szMyName = hh_get_author_name()
tmpFileName = toupper(fileName)
i=0
var upperFileName
while (i++ < strlen(tmpFileName))
{
ch = strmid(tmpFileName, i-1, i)
if (ch == ".")
{
upperFileName = cat(upperFileName, "_")
}
else
{
upperFileName = cat(upperFileName, ch)
}
}
upperFileName = cat("_", upperFileName)
upperFileName = cat(upperFileName, "_")
InsBufLine(hbuf, ln++, "#ifndef " # upperFileName)
InsBufLine(hbuf, ln++, "#define " # upperFileName)
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 头文件引用 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "#ifdef __cplusplus")
InsBufLine(hbuf, ln++, "extern \"C\"")
InsBufLine(hbuf, ln++, "{")
InsBufLine(hbuf, ln++, "#endif")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 常量定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 宏定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 全局数据类型定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 全局变量声明 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 全局函数声明 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "#ifdef __cplusplus")
InsBufLine(hbuf, ln++, "}")
InsBufLine(hbuf, ln++, "#endif")
InsBufLine(hbuf, ln++, "#endif")
InsBufLine(hbuf, ln++, "")
return ln
}
macro hh_InsertSourceFileHeader(hbuf, fileName, ln)
{
hbuf = GetCurrentBuf()
szMyName = hh_get_author_name()
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 头文件引用 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 局部常量定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 局部宏定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 局部数据类型定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 局部函数声明 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 局部变量定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 全局变量定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 全局函数定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
InsBufLine(hbuf, ln++, "/*****************************************************************************")
InsBufLine(hbuf, ln++, "* 局部函数定义 *")
InsBufLine(hbuf, ln++, "*****************************************************************************/")
InsBufLine(hbuf, ln++, "")
return ln
}
macro hh_GetFileNameFromFull(fullfileName)
{
len = strlen(fullfileName)
i = len
while (i-- > 0)
{
ch = strmid(fullfileName, i, i+1)
if (ch == "\\")
{
return strmid(fullfileName, i+1, len)
}
}
return ""
}
Source Insight里头文件注释和函数头的注释的更多相关文章
- VA中用文件头注释和函数头注释Suggestions
		写C++代码,不能不用VA,这里贴两个我最常用的注释Suggestions. [1.File Header 文件头注释] /*** @file $FILE_BASE$.$FILE_EXT$* ... 
- Visual Studio+VAssistX自动添加注释,函数头注释,文件头注释
		转载:http://blog.csdn.net/xzytl60937234/article/details/70455777 在VAssistX中为C++提供了比较规范注释模板,用这个注释模板为编写的 ... 
- Source Insight新建工程文件
		options->document options ->document type ->c source file 下 //添加 “.S”结尾的汇编语言支持 project -& ... 
- 代码阅读工具:Source Navigator和Source Insight
		(摘自http://www.cnblogs.com/yc_sunniwell/archive/2010/08/25/1808322.html) 一.Source Insight实用技巧: Source ... 
- 2016-10-17: source insight插件
		使用快捷键注释,单行注释,多行注释,#if 0注释 将文件 mycomment.em点此下载放到sourceinsight的Base工程的路径下(一般是在C:\Documents and Settin ... 
- source insight插件
		直使用sourceinsight编辑C/C++代码,sourceinsight是一个非常好用的编辑工具可以任意定位,跳转,回退,本人一直 使用该工具做C/C++开发,sourceinsight能够满足 ... 
- [SourceInsight].source insight 使用技巧
		转自:https://www.veryarm.com/140428.html 1 开胃菜-初级应用 1.1 选择美丽的界面享受工作 虽然不能以貌取人,但似乎从来没有人责备以貌取软件的.SI的华丽界 ... 
- 给Source Insight做个外挂系列之一--发现Source Insight
		一提到外挂程序,大家肯定都不陌生,QQ就有很多个版本的去广告外挂,很多游戏也有用于扩展功能或者作弊的工具,其中很多也是以外挂的形式提供的.外挂和插件的区别在于插件通常依赖于程序的支持,如果程序不支持插 ... 
- Source Insight 插件
		一提到外挂程序,大家肯定都不陌生,QQ就有很多个版本的去广告外挂,很多游戏也有用于扩展功能或者作弊的工具,其中很多也是以外挂的形式提供的.外挂和插件的区别在于插件通常依赖于程序的支持,如果程序不支持插 ... 
随机推荐
- H5拖动火狐自动打开新标签
			写在前面的话:<H5拖动火狐自动打开新标签>原因是为什么百度很多了我就不细说,本文章只说我自己的解决方法... 自定义数据里写个链接,如果火狐自动打开就跳到这个链接 这个页面就写一句话:关 ... 
- python函数练习——个人信息修改
			修改个人信息程序 在一个文件里存多个人的个人信息,如以下 1.输入用户名密码,正确后登录系统 ,打印 1. 修改个人信息 2. 打印个人信息 3. 修改密码 2.每个选项写一个方法 3.登录时输错3次 ... 
- 【xsy1303】生成树 乱搞
			题目大意:给你n个点,问这n个点构成的最小标准差生成树的值 这题题解里面写的都是什么代码?? 你用O(n^4)的复杂度,枚举出两条边,然后求平均数. 对于剩下的边,我们求出这些边与平均数的差,然后求最 ... 
- 解决Eclipse中DDMS一直打印输出Connection attempts的问题
			Eclipse/MyEclipse出现以下错误的解决方案: [2015-01-25 16:10:29 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个 ... 
- swaggerui集成oauth implicit
			swaggerui集成oauth implicit 添加引用 Swashbuckle.AspNetCore IdentityServer4.AccessTokenValidation 预先准备好Ide ... 
- python 多环境共存 基础
			正在学习python 使用的是3.3 但是由于种种原因吧 还得使用python2.7 所以记录一下 如何安装2个版本 假设 在windows 下面安装的python 版本 和路径 如下 python ... 
- SSE图像算法优化系列五:超高速指数模糊算法的实现和优化(10000*10000在100ms左右实现)。
			今天我们来花点时间再次谈谈一个模糊算法,一个超级简单但是又超级牛逼的算法,无论在效果上还是速度上都可以和Boxblur, stackblur或者是Gaussblur想媲美,效果上,比Boxblur来的 ... 
- 深入理解L1、L2正则化
			过节福利,我们来深入理解下L1与L2正则化. 1 正则化的概念 正则化(Regularization) 是机器学习中对原始损失函数引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称.也就是 ... 
- 将文件内容隐藏在bmp位图中
			首先要实现这个功能,你必须知道bmp位图文件的格式,这里我就不多说了,请看:http://www.cnblogs.com/xiehy/archive/2011/06/07/2074405.html 接 ... 
- java操作远程共享目录
			一.前言 根据客户反馈,在进行文件下载的时候,新增远程共享目录,下载对应的文件到远程共享目录,采用常用的IO操作模式,提示下载成功,但是客户去远程共享目录查看对应的下载文件,反馈说没有找到对应的文件. ... 
