SourceInsight多行注释
由于经常使用看代码,需要注意一些代码,不想敲键盘,SourceInsight多行注释
没有多行注释的功能,故所以宏定义实现一个‘
步骤1:
新建文件,如multLine.em
/*注释多行代码的函数*/
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)
}
/*取消注释多行代码的函数*/
macro unMultiLineComment()
{ //取消杠杠注释,不选中多行的话,默认只处理当前行
hwnd = GetCurrentWnd()
selection = GetWndSel( hwnd )
lnFirst = GetWndSelLnFirst( hwnd )
lnLast = GetWndSelLnLast( hwnd )
hbuf = GetCurrentBuf()
ln = lnFirst
while( ln <= lnLast )
{
buf = GetBufLine( hbuf, ln )
len = strlen( buf )
if( len >= 2 )
{
start = 0
while( strmid( buf, start, start + 1 ) == CharFromAscii(32) || strmid( buf, start, start + 1 )
== CharFromAscii(9) )
{
start = start + 1
if( start >= len )
break
}
if( start < len - 2 )
{
if( strmid( buf, start, start + 2 ) == "//" )
{
buf2 = cat( strmid( buf, 0, start ), strmid( buf, start + 2, len ) )
PutBufLine( hbuf, ln, buf2 )
}
}
}
ln = ln + 1
}
SetWndSel( hwnd, selection )
}
步骤2;将该文件导入工程中,并在工程里面加入快捷键ctrl+/
步骤3.关闭工程,重新打开,完成
参考: