source insight 多行注释宏

来源:互联网 发布:知乎删除的福利 编辑:程序博客网 时间:2024/06/11 08:42
在网上也有类似的宏,但效果都不是我想要的,都只是在首列加个// ,而没有缩进,于是自己动手写个一个多行注释的宏

macro MultiLineComment() {    /* 获取选择区收尾行 */    handle = GetCurrentWnd()    first_line = GetWndSelLnFirst(handle)    last_line = GetWndSelLnLast(handle)    /* 获取当前打开文件文本 */    file_txt = GetCurrentBuf()    if(GetBufLine(file_txt, 0)=="//magic-number:tph85666031")    {        stop    }    /* 决定最小非空格字符开始列数 */    process_line = first_line    min_process_column = 10000    while(process_line <= last_line)    {        process_txt = GetBufLine(file_txt,process_line)        process_txt_len = strlen(process_txt)        if(process_txt == "")        {            process_line = process_line + 1            continue        }        /* 查找非空格字符开始列数 */        process_column = 0;                while(process_column < process_txt_len)        {            if( process_txt[process_column] != " ")            {                break            }            process_column = process_column + 1        }        if(process_column < min_process_column)        {            min_process_column = process_column        }        process_line = process_line + 1    }    /* 逐行处理文本 */    process_line = first_line           while(process_line <= last_line)    {        process_txt = GetBufLine(file_txt,process_line)        process_txt_len = strlen(process_txt)        if(process_txt == "")        {            process_line = process_line + 1            continue        }        /* 查找非空格字符开始列 */        process_column = 0;                while(process_column < process_txt_len)        {            if( process_txt[process_column] != " ")            {                break            }            process_column = process_column + 1        }        var buffer        if(process_column < process_txt_len)        {            if(process_txt[process_column] == "/" && process_txt[process_column + 1] == "/")            {                /* 取消注释 补全缩进         */                space = 0                while(space < process_column)                {                    space = space + 1                    buffer = cat(buffer," ");                }                space = 2                if(process_txt[process_column + 2] == " ")                {                    space = 3                }                buffer = cat(buffer,strmid(process_txt,process_column + space,strlen(process_txt)))                PutBufLine(handle,process_line,buffer)                  }            else            {                /* 增加注释 补全缩进         */                space = 0                while(space < min_process_column)                {                    space = space + 1                    buffer = cat(buffer," ");                }                                buffer = cat(buffer,"// ")                buffer = cat(buffer,strmid(process_txt, min_process_column, strlen(process_txt)))                PutBufLine(handle,process_line,buffer)            }        }        process_line = process_line + 1    }}

效果如下:




0 0
原创粉丝点击