代码改变世界

source insight原创

2016-08-30 01:41  双头蛇  阅读(231)  评论(0编辑  收藏  举报

macro enter_handler()
{
    hbuf = GetCurrentBuf();
    ln   = GetBufLnCur(hbuf);
    line = GetBufLine(hbuf, ln);
    len  = GetBufLineLength(hbuf, ln);

    i = 0;
    j = 0;
    flg = 1;
    s = "";
    tab_indent = 4;
    col = 0;

    if(len > 0)
    {
        while(i<len && flg)
        {
         ch = AsciiFromChar(line[i]);
         if(ch==9)
         {
          i   = i+1;
          col = col + tab_indent;
          continue;
         }
         if(ch==32)
         {
          i   = i+1;
          col = col+1;
          continue;
         }
         flg=0;
        }

        flg = 1;
        j = len - 1;
        while(j>i && flg)
        {
            ch = AsciiFromChar(line[j]);
            if(ch==9||ch==32)
         {
          j = j-1;
          continue;
         }
         flg = 0;
        }
        if(j>=i && AsciiFromChar(line[j])==123)//'{'
        {
            col = col + tab_indent;
        }
        col_posi = col;
        while(col > 0)
        {
            s = cat(s, " ");
            col = col - 1;
        }
        InsBufLine(hbuf, ln+1, s);
        SetBufIns(hbuf, ln+1, col_posi);
    }
    else
    {
        //hwnd=GetCurrentWnd();
        //sel=GetWndSel(hwnd);
        //col=sel.ichFirst;
    }
}