Bootstrap

source insight 宏注释宏定义

source insight 宏注释宏定义

Source Insight(SI)中有一个Base工程,是安装完SI后自动生成的一个工程,该工程里只有一个Utils.em文件,该文件是常用编辑宏的一个集合。
通过修改或添加宏就可以让宏实现我们想要在编辑文本时添加的内容。
文件注释

macro InsertFileHeader()  
{  
    //get crrunt time
    szTime = GetSysTime(1)
    Day = szTime.Day
    Month = szTime.Month
    Year = szTime.Year

    hbuf = GetCurrentBuf()
    filename = GetBufName(hbuf) 
    InsBufLine(hbuf, 0, " /**")
    InsBufLine(hbuf, 1, "***************************************************************************")
    InsBufLine(hbuf, 2, "* \@文件名称:  @filename@") 
    InsBufLine(hbuf, 3, "* \@描述   :  alw  ")
    InsBufLine(hbuf, 4, "* \@时间	    :  @Year@-@Month@-@Day@")
    InsBufLine(hbuf, 5, "* \@版本	    :")
    InsBufLine(hbuf, 6, "* \@创建人 :")
    InsBufLine(hbuf, 7 , "**************************************************************************")
    InsBufLine(hbuf, 8, " */")
}

函数注释

macro InsertFunctionHeader()
{
    hwnd = GetCurrentWnd()
    lnFirst = GetWndSelLnFirst(hwnd)
        // Get current time  
    szTime  = GetSysTime(1)  
    Day     = szTime.Day  
    month   = szTime.Month  
    Year    = szTime.Year  
    if (Day < 10)  
        szDay = "0@Day@"  
    else  
        szDay = Day    

    hbuf = GetCurrentBuf()
    InsBufLine(hbuf, lnFirst, "/*")
    InsBufLine(hbuf, lnFirst+1, "*\@ 描述	     :")
    InsBufLine(hbuf, lnFirst+2, "*\@ 描述      :")
    InsBufLine(hbuf, lnFirst+3, "*\@ 注意      :")
    InsBufLine(hbuf, lnFirst+4, "*\@ 输入      :")
    InsBufLine(hbuf, lnFirst+5, "*\@ 返回      :")
    InsBufLine(hbuf, lnFirst+6, "*\@ 时间      :  @Year@-@month@-@Day@") 
    InsBufLine(hbuf, lnFirst+7, "*/")

}

多行注释

macro MultiLineComment()
{
    hwnd = GetCurrentWnd()
    selection = GetWndSel(hwnd)
    LnFirst =GetWndSelLnFirst(hwnd)      
    LnLast =GetWndSelLnLast(hwnd)     
    hbuf = GetCurrentBuf()
    if(GetBufLine(hbuf, 0) =="//magic-number:tph85666031")
    {
        stop
    } 
    Ln = Lnfirst
    buf = GetBufLine(hbuf, Ln)
    len = strlen(buf)
    while(Ln <= Lnlast) {
        buf = GetBufLine(hbuf, Ln)  
        if(buf =="")
        {                   
            Ln = Ln + 1
            continue
        }
        if(StrMid(buf, 0, 1) == "/")
        {       
            if(StrMid(buf, 1, 2) == "/")
            {
                PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
            }
        } 
        if(StrMid(buf,0,1) !="/")
        {   
            PutBufLine(hbuf, Ln, Cat("//", buf))
        }
        Ln = Ln + 1
    }
    SetWndSel(hwnd, selection)
}

设置快捷键
Options --> Key Assigmengts -->Command (输入需要映射命 Macro: MultiLineComment)–> Assign New Key
设置到菜单栏中
Options --> Key Assigmengts -->Command (输入需要映射命 Macro: MultiLineComment)–>menu (选择菜单栏命令))–> Menu contents(选择设置命令) -->ok

;