• 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 ""
    }

  • 相关阅读:
    显示Unicode 字节的对应字符的小技巧
    apktool 打包解包apk的总结
    Android Studio下载新的AVD映像把C盘给占满了
    微信开发记录
    node.js版本升级
    Cordova+FrameWork7开发简单教程
    centos安装 Falcon+
    centos7安装 go
    bash: /home/aprilpeng/.bashrc: Permission denied
    git push问题 objects/pack/tmp_pack_XXXXXX': Permission denied
  • 原文地址:https://www.cnblogs.com/muban/p/5032076.html
Copyright © 2020-2023  润新知