Favorites
2009.12.31 11:10

Source Insight Macro

조회 수 18549 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
  1. 주석 입력관련 매크로 등록
    1. Put into {SETUP_DIR}/util.em
    2. {HOME_DIR}/My Documents/Source Insight/Projects/Base/util.em
  2. 주석내 한글 깨짐 방지: Key Assignment -> Macro Nothing -> Shift+한영키 등록

   

// 텍스트를 입력할수 있는 입력창 띄움 
macro ShowInputBox()
{
    sz = ask("Puts Comments *^^*"); // 팝업창을 보여준다.
    CommentUpperSZ(sz); // 실제로 수행할 함수
}
// CommentUpper를 실행하면 다음과 같은 주석이 생성된다.
//                        /// alex [2007/8/23] 입력한 내용
macro CommentUpperSZ(sz)
{
    szMyName  = "wittgens"; // 주석 맨 앞에 넣을 이름 입력
    szComment = sz; // 팝업창을 통해 입력받은 텍스트
    stime = GetSysTime(true); // 현재 시간을 얻어온다.

    hbuf = GetCurrentBuf(); // 현재 사용되는 buff를 얻어온다.
    hwnd = GetCurrentWnd(); // 현재 사용되는 Window를 얻어온다.
    sel = GetWndSel(hwnd); // 현재 커서의 위치를 알기 위해 selection을 얻는다.

    iLine = sel.lnFirst; // 현재 커서가 위치한 라인을 얻는다.
    szTemp   = GetBufLine (hbuf, iLine); // 현재 커서가 위치한 라인의 정보를 임시로 저장
    iMaxChar = GetBufLineLength (hbuf, iLine); // 현재 커서가 위치한 라인의 길이를 얻는다.

    /*---  현재 커서가 위치한 라인 앞에 space나 tap의 갯수를 얻어온다.---*/
    i          = 0;
    nblank   = 0;
    nTab     = 0;
    while (iMaxChar >= i)
    {
        ch = szTemp[i];
        if (ch == " ")
            nblank = nblank + 1;
        else if (szTemp[i] == "\t")
            nTab = nTab + 1;
        else
            break;
        i = i + 1;
    }
    /*-- 현재 커서가 위치한 라인의 space, tap의 개수 얻어오기 끝--*/
    // 실제로 입력된 주석 string
    // /// + 위에서 설정한 이름 + [ + 년도 + / + 월 + / + 일 + ] + 팝업에서 입력한 내용
    szComment = cat("","/// " # szMyName # " [" # stime.year # "/" # stime.month # "/" # stime.day # "] " # szComment);
    szComment = cat("", "// " # szComment);

    // 커서가 위치한 라인앞에 붙은 space만큼 주석앞에 space를 붙인다.
    while (nblank > 0)
    {
        szComment = cat(" ", szComment);
        nblank = nblank - 1;
    }
    // 커서가 위치한 라인앞에 붙은 tap만큼 주석앞에 tap를 붙인다.
    while (nTab > 0)
    {
        szComment = cat("\t", szComment);
        nTab = nTab - 1 ;
    }

    // 커서가 위치한 곳에 주석을 붙인다.
    InsBufLine (hbuf, iLine, szComment);
    // 커서를 한줄 내려서 원래 위치로 변경한다.
    SetBufIns(hbuf, iLine+1, GetBufLineLength (hbuf, iLine+1));
}

macro DoNothing()
{

}

Thanks to allieus
TAG •

Board Pagination Prev 1 Next
/ 1