用source insight宏自動加入或去除C注釋

來源:互聯網
上載者:User

我們的項目是主要在linux下的存C開發,SI這個工具無疑是必須的。但是手工加入注釋很不方便,網上都是C++的注釋風格,自己寫了一個C的,共用一下,有興趣的拿去修改一下。

 

 

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

 

加入方法:

使用方法說明:

    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常用宏

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.