一些Source Insight常用宏
来源:互联网 发布:vscode 网页预览 编辑:程序博客网 时间:2024/06/05 03:44
2011-02-12 09:50 86人阅读 评论(0) 收藏 举报
- /*******************************************************************************
- * Copyright (C), 2000-2010, Electronic Technology Co., Ltd.
- * 文件名: utils.em
- * 作 者: shangwx
- * 版 本:
- * 日 期: 2010-3-12 //完成日期
- * 说 明: 用于Source Insight的宏。
- *
- * 修订历史:
- * 1. 时间: 2010-3-12
- * 修订者: shangwx
- * 修订内容: 创建
- * 2.
- * 其它: 请将本文件复制到 我的文档/Source Insight/Projects/Base,覆盖原有的文件。
- *******************************************************************************/
- /*******************************************************************************
- * 函数名称: InsertSysTime
- * 说明: 插入当前系统时间
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 时间格式如:2010-3-12 9:42:44
- *******************************************************************************/
- macro InsertSysTime()
- {
- hbufCur = GetCurrentBuf();
- LocalTime = GetSysTime(1)
- Year = LocalTime.Year
- Month = LocalTime.Month
- Day = LocalTime.Day
- Time = LocalTime.time
- SetBufSelText (hbufCur, "@Year@-@Month@-@Day@ @Time@")
- }
- /*******************************************************************************
- * 函数名称: CloseFileWindows
- * 说明: 关闭所有已打开的文件
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 无
- *******************************************************************************/
- macro CloseFileWindows()
- {
- cwnd = WndListCount()
- iwnd = 0
- while (1)
- {
- hwnd = WndListItem(0)
- hbuf = GetWndBuf(hwnd)
- SaveBuf(hbuf)
- CloseWnd(hwnd)
- iwnd = iwnd + 1
- if(iwnd >= cwnd)
- {
- break
- }
- }
- }
- /*******************************************************************************
- * 函数名称: InsertIf
- * 说明: 在所选代码块插入#if 0 / #endif
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 屏蔽所选代码块
- *******************************************************************************/
- macro InsertIf()
- {
- ProgEnvInfo = GetProgramEnvironmentInfo ()
- Editor = ProgEnvInfo.UserName
- hwnd = GetCurrentWnd()
- lnFirst = GetWndSelLnFirst(hwnd)
- lnLast = GetWndSelLnLast(hwnd)
- LocalTime = GetSysTime(1)
- Year = LocalTime.Year
- Month = LocalTime.Month
- Day = LocalTime.Day
- Time = LocalTime.time
- hbuf = GetCurrentBuf()
- InsBufLine(hbuf, lnFirst, "#if 0")
- InsBufLine(hbuf, lnLast+2, "#endif /* if 0. @Year@-@Month@-@Day@ @Time@ @Editor@ */")
- }
- /*******************************************************************************
- * 函数名称: InsertIfdef
- * 说明: 在所选代码块插入#ifdef XXX / #endif
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 无
- *******************************************************************************/
- macro InsertIfdef()
- {
- sz = Ask("Enter ifdef condition:")
- if (sz != "")
- IfdefSz(sz);
- }
- /*******************************************************************************
- * 函数名称: InsertIfndef
- * 说明: 在所选代码块插入#ifndef XXX / #endif
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 无
- *******************************************************************************/
- macro InsertIfndef()
- {
- sz = Ask("Enter ifdnef condition:")
- if (sz != "")
- IfndefSz(sz);
- }
- // Wrap ifdef <sz> .. endif around the current selection
- macro IfdefSz(sz)
- {
- ProgEnvInfo = GetProgramEnvironmentInfo ()
- Editor = ProgEnvInfo.UserName
- hwnd = GetCurrentWnd()
- lnFirst = GetWndSelLnFirst(hwnd)
- lnLast = GetWndSelLnLast(hwnd)
- LocalTime = GetSysTime(1)
- Year = LocalTime.Year
- Month = LocalTime.Month
- Day = LocalTime.Day
- Time = LocalTime.time
- hbuf = GetCurrentBuf()
- InsBufLine(hbuf, lnFirst, "#ifdef @sz@")
- InsBufLine(hbuf, lnLast+2, "#endif /* ifdef @sz@.@Year@-@Month@-@Day@ @Time@ @Editor@ */")
- }
- macro IfndefSz(sz)
- {
- ProgEnvInfo = GetProgramEnvironmentInfo ()
- Editor = ProgEnvInfo.UserName
- hwnd = GetCurrentWnd()
- lnFirst = GetWndSelLnFirst(hwnd)
- lnLast = GetWndSelLnLast(hwnd)
- LocalTime = GetSysTime(1)
- Year = LocalTime.Year
- Month = LocalTime.Month
- Day = LocalTime.Day
- Time = LocalTime.time
- hbuf = GetCurrentBuf()
- InsBufLine(hbuf, lnFirst, "#ifndef @sz@")
- InsBufLine(hbuf, lnLast+2, "#endif /* ifndef @sz@.@Year@-@Month@-@Day@ @Time@ @Editor@ */")
- }
- /*******************************************************************************
- * 函数名称: InsertComment
- * 说明: 插入注释
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 格式如:/* ABCDEFG */
- *******************************************************************************/
- macro InsertComment()
- {
- sz = Ask("Enter Comment:")
- if (sz != "")
- CommentSz(sz);
- }
- macro CommentSz(sz)
- {
- hbufCur = GetCurrentBuf();
- SetBufSelText (hbufCur, "/*@sz@*/")
- }
- // Delete the current line and appends it to the clipboard buffer
- macro KillLine()
- {
- hbufCur = GetCurrentBuf();
- lnCur = GetBufLnCur(hbufCur)
- //hbufClip = GetBufHandle("Clipboard")
- //AppendBufLine(hbufClip, GetBufLine(hbufCur, lnCur))
- hwnd = GetCurrentWnd ()
- SelRec = GetWndSel (hwnd)
- Cnt = SelRec.lnLast - SelRec.lnFirst + 1
- while(Cnt--)
- {
- DelBufLine(hbufCur, SelRec.lnFirst)
- }
- SaveBuf (hbufCur)
- }
- /*******************************************************************************
- * 函数名称: InsertFileHeader
- * 说明: 在当前文件上插入文件头注释
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 无
- *******************************************************************************/
- macro InsertFileHeader()
- {
- hbuf = GetCurrentBuf()
- ProgEnvInfo = GetProgramEnvironmentInfo ()
- Author = ProgEnvInfo.UserName
- LocalTime = GetSysTime(1)
- Year = LocalTime.Year
- Month = LocalTime.Month
- Day = LocalTime.Day
- szBufName = GetBufName (hbuf)
- Len = strlen(szBufName)
- FileName = ""
- if( 0 != Len)
- {
- cch = Len
- while ("//" != szBufName[cch])
- {
- cch = cch - 1
- }
- while(cch < Len)
- {
- cch = cch + 1
- FileName = Cat(FileName, szBufName[cch])
- }
- }
- lnFirst = 0
- InsBufLine(hbuf, lnFirst++, "/*******************************************************************************")
- InsBufLine(hbuf, lnFirst++, "* Copyright (C), 2000-@Year@, Electronic Technology Co., Ltd.")
- InsBufLine(hbuf, lnFirst++, "* 文件名: @FileName@")
- InsBufLine(hbuf, lnFirst++, "* 作 者: @Author@")
- InsBufLine(hbuf, lnFirst++, "* 版 本:")
- InsBufLine(hbuf, lnFirst++, "* 日 期: @Year@-@Month@-@Day@ //完成日期")
- InsBufLine(hbuf, lnFirst++, "* 说 明: // 用于详细说明此程序文件完成的主要功能,与其他模块")
- InsBufLine(hbuf, lnFirst++, "* // 或函数的接口,输出值、取值范围、含义及参数间的控")
- InsBufLine(hbuf, lnFirst++, "* // 制、顺序、独立或依赖等关系")
- InsBufLine(hbuf, lnFirst++, "* 修订历史: // 修改历史记录列表,每条修改记录应包括修改日期、修改")
- InsBufLine(hbuf, lnFirst++, "* // 者及修改内容简述")
- InsBufLine(hbuf, lnFirst++, "* 1. 时间: @Year@-@Month@-@Day@")
- InsBufLine(hbuf, lnFirst++, "* 修订者: @Author@")
- InsBufLine(hbuf, lnFirst++, "* 修订内容: 创建")
- InsBufLine(hbuf, lnFirst++, "* 2.")
- InsBufLine(hbuf, lnFirst++, "* 其它: // 其它内容的说明(选填)")
- InsBufLine(hbuf, lnFirst++, "*******************************************************************************/")
- SetBufIns (hbuf, lnFirst,0)
- Len = strlen(FileName)
- if(("h" == tolower(FileName[Len-1])) && ("." == FileName[Len-2]))
- {
- FileName = toupper(FileName)
- FileName[Len-2] = "_"
- szDef = "_"
- szDef = Cat(szDef,FileName)
- szDef = Cat(szDef,"_")
- ProgEnvInfo = GetProgramEnvironmentInfo ()
- Editor = ProgEnvInfo.UserName
- hwnd = GetCurrentWnd()
- lnFirst = GetWndSelLnFirst(hwnd)
- LocalTime = GetSysTime(1)
- Year = LocalTime.Year
- Month = LocalTime.Month
- Day = LocalTime.Day
- Time = LocalTime.time
- hbuf = GetCurrentBuf()
- InsBufLine(hbuf,lnFirst++,"#ifndef @szDef@")
- InsBufLine(hbuf,lnFirst++,"#define @szDef@")
- InsBufLine(hbuf,lnFirst++,"")
- InsBufLine(hbuf,lnFirst++,"")
- InsBufLine(hbuf,lnFirst++,"")
- InsBufLine(hbuf,lnFirst++,"#endif /* ifndef @szDef@.@Year@-@Month@-@Day@ @Time@ @Editor@ */")
- }
- SaveBuf (hbuf)
- }
- /*******************************************************************************
- * 函数名称: InsertFunctionHeader
- * 说明: 插入函数的头注释
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 无
- *******************************************************************************/
- macro InsertFunctionHeader()
- {
- hbuf = GetCurrentBuf()
- lnFirst = GetBufLnCur(hbuf)
- FuncName = GetCurSymbol()
- /*
- szLine = GetBufLine (hbuf, lnFirst)
- Len = strlen(szLine)
- FuncName = ""
- if( 0 != Len)
- {
- cch = 0
- while ("(" != szLine[cch])
- {
- cch = cch + 1
- }
- while((" " == szLine[cch-1]) || (" " == szLine[cch-1]))
- {
- cch = cch - 1
- }
- cch = cch - 1
- ichLast = cch
- while((" " != szLine[cch]) && (" " != szLine[cch]) && ("*" != szLine[cch]))
- {
- cch = cch - 1
- }
- ichFirst = cch
- while(ichFirst < ichLast)
- {
- ichFirst = ichFirst + 1
- FuncName = Cat(FuncName, szLine[ichFirst])
- }
- }
- */
- InsBufLine(hbuf, lnFirst++, "/*******************************************************************************")
- InsBufLine(hbuf, lnFirst++, "* 函数名称: @FuncName@ // 函数名称。")
- InsBufLine(hbuf, lnFirst++, "* 说明: // 函数功能、性能等的描述。")
- InsBufLine(hbuf, lnFirst++, "* 输入参数: // 输入参数说明,包括每个参数的作。 ")
- InsBufLine(hbuf, lnFirst++, "* // 用、取值说明及参数间关系。 ")
- InsBufLine(hbuf, lnFirst++, "* 输出参数: // 对输出参数的说明。")
- InsBufLine(hbuf, lnFirst++, "* 返回值: // 函数返回值的说明。")
- InsBufLine(hbuf, lnFirst++, "* 其它: // 其它说明(选填)。")
- InsBufLine(hbuf, lnFirst++, "*******************************************************************************/")
- SaveBuf (hbuf)
- }
- /*******************************************************************************
- * 函数名称: DelPpIf
- * 说明: 删除预处理指令if/ifndef/ifdef ... endif
- * 输入参数: 无
- * 输出参数: 无
- * 返回值: 无
- * 其它: 无
- *******************************************************************************/
- macro DelPpIf()
- {
- hbuf = GetCurrentBuf()
- lnFirst = GetBufLnCur(hbuf)
- lnIf = GetIfLine(hbuf,lnFirst)
- lnEndif = GetEndifLine(hbuf,lnFirst)
- // Msg("IF:@lnIf@,END:@lnEnd@")
- if((-1 == lnIf) || (-1 == lnEndif))
- {
- return 0
- }
- DelBufLine(hbuf,lnIf)
- DelBufLine(hbuf,lnEndif-1)
- }
- macro GetIfLine(hBuf,Ln)
- {
- Start = Ln
- Count = 1
- while(Ln > 0)
- {
- szLn = GetBufLine(hBuf,Ln)
- i = 0
- while((" " == szLn[i]) || (" " == szLn[i]))
- {
- i = i + 1
- }
- szRet = ""
- while("" != szLn[i])
- {
- szRet = Cat(szRet,szLn[i])
- i = i + 1
- }
- szLn = szRet
- if(4 > strlen(szLn))
- {
- Ln = Ln - 1
- continue
- }
- if(("#" == szLn[0]) && ("i" == szLn[1]) && ("f" == szLn[2]))
- {
- Count = Count - 1
- if(0 >= Count)
- {
- return(Ln)
- }
- }
- else
- {
- if(("#" == szLn[0]) && ("e" == szLn[1]) && ("n" == szLn[2]) && ("d" == szLn[3]))
- {
- if(Start != Ln)
- {
- Count = Count + 1
- }
- }
- }
- Ln = Ln - 1
- }
- return -1
- }
- macro GetEndifLine(hBuf,Ln)
- {
- Start = Ln
- Count = 1
- lnCnt = GetBufLineCount (hBuf)
- while(Ln < lnCnt)
- {
- szLn = GetBufLine(hBuf,Ln)
- i = 0
- while((" " == szLn[i]) || (" " == szLn[i]))
- {
- i = i + 1
- }
- szRet = ""
- while("" != szLn[i])
- {
- szRet = Cat(szRet,szLn[i])
- i = i + 1
- }
- szLn = szRet
- if(4 > strlen(szLn))
- {
- Ln = Ln + 1
- continue
- }
- if(("#" == szLn[0]) && ("e" == szLn[1]) && ("n" == szLn[2]) && ("d" == szLn[3]))
- {
- Count = Count - 1
- if(0 >= Count)
- {
- return(Ln)
- }
- }
- else
- {
- if(("#" == szLn[0]) && ("i" == szLn[1]) && ("f" == szLn[2]))
- {
- if(Start != Ln)
- {
- Count = Count + 1
- }
- }
- }
- Ln = Ln + 1
- }
- return -1
- }
为宏指定快捷键:
Step 1:将以上代码复制并保存为文件utils.em,然后将其复制到“我的文档/Source Insight/Projects/Base ”覆盖原有的文件。
Step 2:Option-〉Key Assignments
Step 3:在Command栏中找到需要的宏,点击 Assign New Key来指定快捷键。(在这里你可以为Source Insight中的所有命令指定快捷键)。
- 一些Source Insight常用宏
- 一些Source Insight常用宏
- source insight常用宏
- source insight的一些常用操作
- Source Insight常用宏块介绍
- source insight 常用快捷键
- source insight 常用快捷键
- source insight 常用快捷键
- Source Insight 常用设置
- source insight 常用快捷键
- source insight 常用快捷键
- source insight 常用快捷键
- source insight常用快捷键
- source insight常用设置
- source insight 常用快捷键
- Source insight 常用快捷键
- source insight 常用快捷键
- Source Insight常用快捷键
- 外围渗透测试的一些小领悟
- 在使用vector的push_back函数时,Release版下运行会出错的一个原因
- Eclipse调试断点的几种方法
- NetBeans IDE 7 中使用英文字体中文变方块的解决办法
- java equals与hashCode 两个重要方法的重写
- 一些Source Insight常用宏
- hausdorff distance and it's application to tile images classification
- delphi-requirement
- source insight整段代码注释
- 几种常用的排序算法
- iphone4教程之使用iTunes为iphone4设置铃声教程
- Oracle 数据导入方法比较
- Java正则表达式详解
- 实用的adb命令