ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소스 인사이트 매크로 - 해당 영역을 주석으로 변경
    카테고리 없음 2007. 8. 21. 15:24
    Utils.em 파일에 아래 macro 함수를 추가하고 단축키를 지정하면 된다.

    //
    // Comment the selected block of text using single line comments and indent it
    //
    macro CommentBlock()
    {
        var stime;

       
    hbuf
    = GetCurrentBuf();
       
    hwnd
    = GetCurrentWnd();
       
    sel = GetWndSel
    (hwnd);

       
    stime
    = GetSysTime(true);
       
    iLine = sel
    .lnFirst;
       
    szLine = "///    alex [" # stime.year # "/" # stime.month # "/" # stime.day
    # "] ";
       
    InsBufLine(hbuf, iLine
    , szLine);
       
    iLine = iLine
    +1;
        while (
    iLine <= sel.lnLast
    +1)
        {
           
    szLine = GetBufLine(hbuf
    , iLine);
           
    szLine = cat("//    "
    , szLine);
           
    PutBufLine(hbuf, iLine
    , szLine);
           
    iLine = iLine
    + 1;
        }

        if (
    sel.lnFirst == sel
    .lnLast)
        {
           
    tabSize = _tsGetTabSize
    () - 1;
           
    sel.ichFirst = sel.ichFirst
    + tabSize;
           
    sel.ichLim = sel.ichLim
    + tabSize;
        }
       
    SetWndSel(hwnd
    , sel);
    }


    //
    // Undo the CommentBlock for the selected text.
    //
    macro UnCommentBlock()
    {
       
    hbuf
    = GetCurrentBuf();
       
    hwnd
    = GetCurrentWnd();

       
    sel = GetWndSel
    (hwnd);

       
    iLine = sel
    .lnFirst;


       
    tabSize
    = 0;
        while (
    iLine <= sel
    .lnLast)
        {
           
    szLine = GetBufLine(hbuf
    , iLine);
           
    len = strlen
    (szLine);
           
    szNewLine
    = "";
            if (
    len
    > 1)
            {
                if (
    szLine[0] == "/" && szLine[1
    ] == "/")
                {
                    if (
    len
    > 2)
                    {
                        if (
    AsciiFromChar(szLine[2
    ]) == 9)
                        {
                           
    tabSize = _tsGetTabSize
    () - 1;
                           
    szNewLine = strmid(szLine, 3, strlen
    (szLine));
                        }
                    }

                    if (
    szNewLine
    == "")
                    {
                       
    szNewLine = strmid(szLine, 2, strlen
    (szLine));
                       
    tabSize
    = 2;
                    }
                   
                   
    PutBufLine(hbuf, iLine
    , szNewLine);
                }
            }
           
    iLine = iLine
    + 1;
        }

        if (
    sel.lnFirst == sel
    .lnLast)
        {
           
    sel.ichFirst = sel.ichFirst
    - tabSize;
           
    sel.ichLim = sel.ichLim
    - tabSize;
        }

       
    SetWndSel(hwnd
    , sel);
    }
Designed by Tistory.