mymacro.em 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. macro MultiLineComment()
  2. {
  3. hwnd = GetCurrentWnd()
  4. selection = GetWndSel(hwnd)
  5. LnFirst =GetWndSelLnFirst(hwnd) //取首行行号
  6. LnLast =GetWndSelLnLast(hwnd) //取末行行号
  7. hbuf = GetCurrentBuf()
  8. if(GetBufLine(hbuf, 0) =="//magic-number:tph85666031"){
  9. stop
  10. }
  11. Ln = Lnfirst
  12. buf = GetBufLine(hbuf, Ln)
  13. len = strlen(buf)
  14. while(Ln <= Lnlast) {
  15. buf = GetBufLine(hbuf, Ln) //取Ln对应的行
  16. if(buf ==""){ //跳过空行
  17. Ln = Ln + 1
  18. continue
  19. }
  20. if(StrMid(buf, 0, 1) == "/"){ //需要取消注释,防止只有单字符的行
  21. if(StrMid(buf, 1, 2) == "/"){
  22. PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
  23. }
  24. }
  25. if(StrMid(buf,0,1) !="/"){ //需要添加注释
  26. PutBufLine(hbuf, Ln, Cat("//", buf))
  27. }
  28. Ln = Ln + 1
  29. }
  30. SetWndSel(hwnd, selection)
  31. }
  32. macro UnMultiLineComment()
  33. { //取消杠杠注释,不选中多行的话,默认只处理当前行
  34. hwnd = GetCurrentWnd()
  35. selection = GetWndSel( hwnd )
  36. lnFirst = GetWndSelLnFirst( hwnd )
  37. lnLast = GetWndSelLnLast( hwnd )
  38. hbuf = GetCurrentBuf()
  39. ln = lnFirst
  40. while( ln <= lnLast )
  41. {
  42. buf = GetBufLine( hbuf, ln )
  43. len = strlen( buf )
  44. if( len >= 2 )
  45. {
  46. start = 0
  47. while( strmid( buf, start, start + 1 ) == CharFromAscii(32) || strmid( buf, start, start + 1 ) == CharFromAscii(9) )
  48. {
  49. start = start + 1
  50. if( start >= len )
  51. break
  52. }
  53. if( start < len - 2 )
  54. {
  55. if( strmid( buf, start, start + 2 ) == "//" )
  56. {
  57. buf2 = cat( strmid( buf, 0, start ), strmid( buf, start + 2, len ) )
  58. PutBufLine( hbuf, ln, buf2 )
  59. }
  60. }
  61. }
  62. ln = ln + 1
  63. }
  64. SetWndSel( hwnd, selection )
  65. }