source insight 添加多行注释,取消多行注释快捷键
把下方的代码加入到base项目中。
macro Comment_gg()
{ //用杠杠注释,不选中多行的话,注释当前行
hwnd = GetCurrentWnd()
selection = GetWndSel( hwnd )
lnFirst = GetWndSelLnFirst( hwnd )
lnLast = GetWndSelLnLast( hwnd )
hbuf = GetCurrentBuf()
ln = lnFirst
buf = GetBufLine( hbuf, ln )
len = strlen( buf )
firststart = len
while( ln <= lnLast )
{
buf = GetBufLine( hbuf, ln )
len = strlen( buf )
start = 0
while( start < len )
{
if( strmid( buf, start, start + 1 ) == CharFromAscii(32) || strmid( buf, start, start + 1 ) == CharFromAscii(9) )
{
start = start + 1
if( start > len )
break
}
else
break
}
if( start < len && start < firststart )
{
firststart = start
}
ln = ln + 1
}
ln = lnFirst
while( ln <= lnLast )
{
buf = GetBufLine( hbuf, ln )
len = strlen( buf )
if( len > 0 )
{
buf2 = cat( cat( strmid( buf, 0, firststart ), "//" ), strmid( buf, firststart, len ) )
PutBufLine ( hbuf, ln, buf2 )
}
ln = ln + 1
}
SetWndSel( hwnd, selection )
}
macro unComment_gg()
{ //取消杠杠注释,不选中多行的话,默认只处理当前行
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 )
}