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就有很多个版本的去广告外挂,很多游戏也有用于扩展功能或者作弊的工具,其中很多也是以外挂的形式提供的.外挂和插件的区别在于插件通常依赖于程序的支持,如果程序不支持插 ...
随机推荐
- 内存管理cpuset,mempolicy[原理]
介绍cpuset,mbind,set_mempolicy在内存管理上的应用 change log :确定先从mempolicy的man 手册翻译开始研究,计划如下 .先从man手册入手,通过实现mem ...
- [视频]K8飞刀 WordPress XSS添加管理员 & GetShell 教程
[视频]K8飞刀 WordPress XSS添加管理员 & GetShell 教程 https://pan.baidu.com/s/1hq4LsmK
- java开发,年薪15W的你和年薪50W的他的差距
在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 . 一些独角 ...
- Java高并发之线程池详解
线程池优势 在业务场景中, 如果一个对象创建销毁开销比较大, 那么此时建议池化对象进行管理. 例如线程, jdbc连接等等, 在高并发场景中, 如果可以复用之前销毁的对象, 那么系统效率将大大提升. ...
- kafka+elk
安装elasticsearch 下载:http://www.elastic.co/downloads/elasticsearch 下载后解压 修改配置文件,xxx是自定义目录 vi elasticse ...
- 从零开始学 Web 之 CSS(四)CSS初始化、定位、overflow、标签规范
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...
- Turbine——Hystrix集群监控
上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command.当我们有很多个服务的时候,这就需要聚合所有服务的Hystrix Dashboard的数据了.这就 ...
- vue-02-安装-指令
1, vue安装 1), 安装vue-cli npm install -g cnpm --registry=https://registry.npm.taobao.org 之后可以用 淘宝的npm镜像 ...
- SpringMVC4集成ehcache
前言 使用SpringMVC4集成ehcache来缓存服务器数据. 开发环境 SpringMVC4.ehcache2.6. 项目结构 SpringMVC 集成ehcache 1.pom.xml //除 ...
- Shell 示例:将指定的文件内容转换为大写
程序代码如下: #!/bin/bash # 将一个指定的输入文件内容转换为大写 E_FILE_ACCESS=70 E_WRONG_ARGS=71 if [ ! -r "$1" ] ...