SourceInsight

quicker+.em SourceInsight 宏加强版制作

这两天苦于新建的文件每次都要手动添加文件头,新建的函数每次都要手动添加函数说明,连.h也要手动生成。于是乎,上网搜了搜,发现了lushengwen写的一个神器:quicker.em

。好家伙,有了这个东东,再也不用繁琐的手工敲咯~~~

具体用法,大伙可以参考:http://blog.csdn.net/ghostyu/article/details/7091915

可是问题来了,我发现下面这个东东:

复制代码
/******************************************************************************

                  版权所有 (C), 2013-2014, 老虎工作室

 ******************************************************************************
  文 件 名   : stack_heap_thread_process_2.c
  版 本 号   : 初稿
  作    者   : TigerXiao
  生成日期   : 2014年6月25日
  最近修改   :
  功能描述   : 这里只是对这个文件的描述
  函数列表   :
              CheckThreadExist
              CheckThreadStatus
              main
              StringToUpper
              thread_start
  修改历史   :
  1.日    期   : 2014年6月25日
    作    者   : TigerXiao
    修改内容   : 创建文件

******************************************************************************/
复制代码

上面的copyright和company必须是写死的,如果换一个的话,还需要重新修改文件,这个还是有点让我不太爽。特别是当我新添加一个函数时,这个是不会自动添加进去的,

当然这个函数列表功能我也 不咋用。

哪里有抱怨,哪里就有商机。于是,我想着改改代码,看看能否搞个变量什么的来实现我的想法:(抛砖引玉,看客勿喷

复制代码
macro ConfigureSystem()
{
    szLanguage = ASK("Please select language: 0 Chinese ,1 English");
    if(szLanguage == "#")
    {
       SetReg ("LANGUAGE", "0")
    }
    else
    {
       SetReg ("LANGUAGE", szLanguage)
    }
    
    szName = ASK("Please input your name");
    if(szName == "#")
    {
       SetReg ("MYNAME", "TigerXiao")
    }
    else
    {
       SetReg ("MYNAME", szName)
    }
    szCompany = ASK("Please input your company");
    if(szCompany == "#")
    {
        SetReg("MYCOMPANY","TigerXiao")
    }
    else
    {
        SetReg("MYCOMPANY",szCompany)
    }    
    szCopyright = ASK("Please input your Copyright ");
    if(szCopyright == "#")
    {
        SetReg("MYCOPYRIGHT","2001-2014")
    }
    else
    {
        SetReg("MYCOPYRIGHT",szCopyright)
    }


    
}
复制代码

在上面我修改了其中一个很重要的宏定义,添加了两个变量,同时保存下来,然后呢?大伙都是搞代码的,就不多说了,显然就是引用这些变量的啦。

复制代码
   /*取得公司名*/
    szCompany = getreg(MYCOMPANY)
    if(strlen( MYCOMPANY ) == 0)
    {
        szCompany = Ask("Enter your name:")
        setreg(MYCOMPANY, szCompany)
    }
     /*取得版权*/
    szCopyright = getreg(MYCOPYRIGHT)
    if(strlen( MYCOPYRIGHT ) == 0)
    {
        szCopyright = Ask("Enter your name:")
        setreg(MYCOPYRIGHT, szCopyright)
    }     
    GetFunctionList(hbuf,hnewbuf)
    InsBufLine(hbuf, ln + 0,  "/******************************************************************************")
    InsBufLine(hbuf, ln + 1,  "")
    InsBufLine(hbuf, ln + 2,  "                  版权所有 (C), @szCopyright@, @szCompany@")
    InsBufLine(hbuf, ln + 3,  "")
    InsBufLine(hbuf, ln + 4,  " ******************************************************************************")
    sz = GetFileName(GetBufName (hbuf))
    InsBufLine(hbuf, ln + 5,  "  文 件 名   : @sz@")
    InsBufLine(hbuf, ln + 6,  "  版 本 号   : 初稿")
    InsBufLine(hbuf, ln + 7,  "  作    者   : @szName@")
    SysTime = GetSysTime(1)
    szTime = SysTime.Date
    InsBufLine(hbuf, ln + 8,  "  生成日期   : @szTime@")
    InsBufLine(hbuf, ln + 9,  "  最近修改   :")
    iLen = strlen (szContent)
    nlnDesc = ln
    szTmp = "  功能描述   : "
    InsBufLine(hbuf, ln + 10, "  功能描述   : @szContent@")
    InsBufLine(hbuf, ln + 11, "  函数列表   :")
    
复制代码

上面是中文的修改部分,英文的话是一样子的,无需赘言。这个小修改很简单的,却很好的完成了我的一个小想法,效果如下:

选择语言:

输入作者

输入公司

输入版权

然后执行fi后,可以看到文件头啦:

当然先要有个说明

其实做这个的目的主要是抛砖引玉,让大家一起为这个宏添加一些新的功能,完善一些新的功能,特别是对于我们这些搞C/C++开发的。

PS: 后续的,C的开发没有库函数(linux 下的libc等)自动补全功能着实蛋疼,有机会看看能不能自己搞一个。

差点忘了,修改的加强版(姑且这样叫吧。。。)我放到网上了,大伙可以参考:http://download.csdn.net/detail/xiaowh001/7549079

 

 

 

 

 

分类: C

原文地址:https://www.cnblogs.com/Leo_wl/p/3809837.html