123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- 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 )
- }
|