【Source Insight 快捷功能:多行注释和反注释、add、modify、delete、#if0_#endif】

Source Insight 快捷功能:多行注释和反注释、#if0_#endif、add、modify、delete

Source Insight (SI)快捷功能:

  1. 多行注释和反注释

  2. #if0_#endif

  3. add

  4. modify

  5. delete

第一步:

关闭所有SI project。然后点击 Project --> open project --> 选择Base,添加代码。
在这里插入图片描述

第二步

然后点击 Option --> Menu Assignments --> 找到新添加的名字,例Add_Comment,后点击选择Menu,如下图所示:
在这里插入图片描述

第三步:

最后再次选择打开项目,选择你之前建立的工程项目,添加完成如下图所示:在这里插入图片描述

下面是code源码

多行注释

在文件末尾添加如下代码

/*注释多行代码的函数*/
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)  //取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)  
}  

#if0_#endif

//#if0_#endif
macro Add_if_0_endif_Comment()
{
    hwnd=GetCurrentWnd()  
    sel=GetWndSel(hwnd)  
    lnFirst=GetWndSelLnFirst(hwnd)  
    lnLast=GetWndSelLnLast(hwnd)  
    hbuf=GetCurrentBuf()  
    
    if(LnFirst == 0) {  
            szIfStart = ""  
    }else{  
            szIfStart = GetBufLine(hbuf, LnFirst - 1)  
    }  
    szIfEnd = GetBufLine(hbuf, lnLast + 1)  
    if(szIfStart == "#if 0" && szIfEnd == "#endif") {  
            DelBufLine(hbuf, lnLast + 1)  
            DelBufLine(hbuf, lnFirst - 1)  
            sel.lnFirst = sel.lnFirst - 1  
            sel.lnLast = sel.lnLast - 1
    }else{  
            InsBufLine(hbuf, lnFirst, "#if 0")  
            InsBufLine(hbuf, lnLast + 2, "#endif")  
            sel.lnFirst = sel.lnFirst + 1  
            sel.lnLast = sel.lnLast + 1  
    }  

    SetWndSel( hwnd, sel )  
}

add

//add
macro Add_Comment()  
{  
 	hwnd=GetCurrentWnd()  
    sel=GetWndSel(hwnd)  
    lnFirst=GetWndSelLnFirst(hwnd)  
    lnLast=GetWndSelLnLast(hwnd)  
    hbuf=GetCurrentBuf()  
    
	if(lnFirst != lnLast ) //多行add
	{
	    if(LnFirst == 0) 
	    {  
	            szIfStart = ""  
	    }
	    else
	    {  
	            szIfStart = GetBufLine(hbuf, LnFirst - 1)  
	    }  
	    szIfEnd = GetBufLine(hbuf, lnLast + 1)  
	    if(szIfStart == "//add_start_msw_000" && szIfEnd == "//add_end_msw_000")
	    {  
	            DelBufLine(hbuf, lnLast + 1)  
	            DelBufLine(hbuf, lnFirst - 1)  
	            sel.lnFirst = sel.lnFirst - 1  
	            sel.lnLast = sel.lnLast - 1
	    }
	    else
	    {  
	            InsBufLine(hbuf, lnFirst, "//add_start_msw_000")  
	            InsBufLine(hbuf, lnLast + 2, "//add_end_msw_000")  
	            sel.lnFirst = sel.lnFirst + 1  
	            sel.lnLast = sel.lnLast + 1  
	    }  
	}
	else  //单行add
	{
	    buf = GetBufLine(hbuf, lnFirst)  
	              
        if(StrMid(buf,0,1) != "/")         //需要添加注释  
        { 
			PutBufLine(hbuf, lnFirst, Cat(buf,"//add_msw_000")) //单行add
        }  
	}
	
    SetWndSel( hwnd, sel )  

}  

modify

//modify 
macro Modify_Comment()
{
    hwnd=GetCurrentWnd()  
    sel=GetWndSel(hwnd)  
    lnFirst=GetWndSelLnFirst(hwnd)  
    lnLast=GetWndSelLnLast(hwnd)  
    hbuf=GetCurrentBuf()  
    
	if(lnFirst != lnLast ) //多行修改
	{
	    if(LnFirst == 0) 
	    {  
	            szIfStart = ""  
	    }
	    else
	    {  
	            szIfStart = GetBufLine(hbuf, LnFirst - 1)  
	    }  
	    szIfEnd = GetBufLine(hbuf, lnLast + 1)  
	    if(szIfStart == "//modify_start_msw_000" && szIfEnd == "//modify_end_msw_000")
	    {  
	            DelBufLine(hbuf, lnLast + 1)  
	            DelBufLine(hbuf, lnFirst - 1)  
	            sel.lnFirst = sel.lnFirst - 1  
	            sel.lnLast = sel.lnLast - 1
	            flag = 1
	    }
	    else
	    {  
	            InsBufLine(hbuf, lnFirst, "//modify_start_msw_000")              
	            InsBufLine(hbuf, lnLast + 2, "//modify_end_msw_000")  
	            sel.lnFirst = sel.lnFirst + 1  
	            sel.lnLast = sel.lnLast + 1  
	            flag = 0

	    }  
	}
	else  									//单行修改
	{
	    buf = GetBufLine(hbuf, lnFirst)  
	              
        if(StrMid(buf,0,1) != "/")         //需要添加注释  
        { 
			PutBufLine(hbuf, lnFirst, Cat(buf,"//modify_msw_000")) //单行修改 
        }  
	}
	
    SetWndSel( hwnd, sel )   
}

delete

//Delete
macro Delete_Comment()
{
    hwnd=GetCurrentWnd()  
    sel=GetWndSel(hwnd)  
    lnFirst=GetWndSelLnFirst(hwnd)  
    lnLast=GetWndSelLnLast(hwnd)  
    hbuf=GetCurrentBuf()  

    if(LnFirst == 0) 
    {  
            szIfStart = ""  
    }
    else
    {  
            szIfStart = GetBufLine(hbuf, LnFirst - 1)  
    }  
    szIfEnd = GetBufLine(hbuf, lnLast + 1)  
    if(szIfStart == "//delete_start_msw_000" && szIfEnd == "//delete_end_msw_000")
    {  
            DelBufLine(hbuf, lnLast + 1)  
            DelBufLine(hbuf, lnFirst - 1)  
            sel.lnFirst = sel.lnFirst - 1  
            sel.lnLast = sel.lnLast - 1
            flag = 1
    }
    else
    {  
            InsBufLine(hbuf, lnFirst, "//delete_start_msw_000")  
            
            InsBufLine(hbuf, lnLast + 2, "//delete_end_msw_000")  
            sel.lnFirst = sel.lnFirst + 1  
            sel.lnLast = sel.lnLast + 1  
            flag = 0

    }  

	Ln = lnFirst  
    buf = GetBufLine(hbuf, Ln)  
    len = strlen(buf)  
   
    while(Ln <=  (lnLast+1) )
    {  
        buf = GetBufLine(hbuf, Ln)  //取Ln对应的行  
        if(buf == ""){                    //跳过空行  
            Ln = Ln + 1  
            continue  
        }  
        
        if(StrMid(buf,0,1) != "/")         //需要添加注释  
        { 
			if(flag == 0) PutBufLine(hbuf, Ln, Cat("//",buf)) //delete_code 
        }  
        Ln = Ln + 1  
    }  

    SetWndSel( hwnd, sel )  
}

有更好的功能欢迎留言。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值