用source insight宏自动加入或去除C注释

用source insight宏自动加入或去除C注释 收藏 
我们的项目是主要在linux下的存C开发,SI这个工具无疑是必须的。但是手工加入注释很不方便,网上都是C++的注释风格,自己写了一个C的,共享一下,有兴趣的拿去修改一下。

/*   
the info like:   
by guixue 2009-8-19   
*/   
macro getCommentInfo()   
{   
     szMyName = "guixue "  
     hbuf = GetCurrentBuf()   
     ln = GetBufLnCur(hbuf)   
     szTime = GetSysTime(1)   
     Hour = szTime.Hour   
     Minute = szTime.Minute   
     Second = szTime.Second   
     Day = szTime.Day   
     Month = szTime.Month   
     Year = szTime.Year   
     if (Day < 10)   
      szDay = "@"  
     else   
      szDay = Day   
     if (Month < 10)   
         szMonth = "@"  
     else   
      szMonth = Month   
        
     szDescription = "by"  
     szInfo ="@szDescription@ @szMyName@ @Year@-@szMonth@-@szDay@"  
     return szInfo   
}   
macro SingleLineComment()   
{   
    hbuf = GetCurrentBuf()   
    ln = GetBufLnCur(hbuf)   
    szInfo = getCommentInfo()   
    InsBufLine(hbuf, ln+1, "/* @szInfo@ */")   
}   
macro C_CommentBlock()   
{   
    hbuf = GetCurrentBuf();   
    hwnd = GetCurrentWnd();   
    sel = GetWndSel(hwnd);   
    /*   
    szLine = GetBufLine(hbuf, sel.lnFirst);   
    szLine = cat("/*", szLine);   
    PutBufLine(hbuf, sel.lnFirst, szLine);   
    */   
    szInfo = getCommentInfo()   
    szInfo = "/*    @szInfo@"  
    InsBufLine(hbuf, sel.lnFirst, szInfo)   
    InsBufLine(hbuf, sel.lnLast+2, "*/")   
    tabSize = 4;   
    sel.ichFirst = sel.ichFirst + tabSize;   
    sel.ichLim = sel.ichLim + tabSize;   
    SetWndSel(hwnd, sel);   
}   
macro C_UnCommentBlock()   
{   
    hbuf = GetCurrentBuf();   
    hwnd = GetCurrentWnd();   
    sel = GetWndSel(hwnd);   
    iLine = sel.lnFirst;   
    szLine = GetBufLine(hbuf, iLine);   
    szInfo = getCommentInfo()   
    szInfo = "/*    @szInfo@"  
       
    if (szLine[0] == "/" && szLine[1] == "*")   
    {   
        if(szInfo == szLine)   
        {   
            DelBufLine(hbuf, iLine)   
        }   
        else   
        {   
            return false;   
        }   
    }   
    else   
    {   
        return false;   
    }   
    iLine = sel.lnLast-1;   
    szLine = GetBufLine(hbuf, iLine);   
    len =strlen(szLine)   
    if(len <2)   
        return false;   
    if(szLine== "*/")   
    {   
        DelBufLine(hbuf, iLine)   
    }   
    else   
    {   
        return false;   
    }   
    SetWndSel(hwnd, sel);   
    return true;   
}   
macro C_Do_Comment()   
{   
    flag =C_UnCommentBlock()   
    if(flag==false)   
    {   
        C_CommentBlock()   
    }   
}


 

加入方法:

使用方法说明:

    1. Project->Open Project... 打开Base工程(该工程一般在"我的文档\Source Insight\Projects\Base"中);
    2. Project->Add and Remove Project Files... 加入宏文件(也可以把代码加到已有文件中,如Utils.em文件中);
    3. Options->Menu Assignments 打开Menu Assignments窗口, 在Command中输入Macro, 选中要使用的宏, 添加到合适的菜单中.

还可以自定义快捷键;

SI官方的宏库:http://www.sourceinsight.com/public/macros/

source insight常用宏

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/oncoding/archive/2009/08/19/4463830.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值