我們的項目是主要在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常用宏