Source Isight自定义主题

Source Insight自定义主题

更改默认字体大小

  • 打开字体更改页面

  • 字体更改设置

自定义主题

Source Insight默认主题格式观赏性不大好,可采用自定义主题格式,来更改默认配置。

  • 双击安装字体

  • 加载自定义主题文件

  • 自定义主题预览

当用户将字体等设置乱了的时候,可重新执行自定义主题步骤,恢复主题格式,主题文件附近可供下载。

相对路径更改

  • 确认Source Insight工程路径



如图所示Source Insight工程路径到底是哪个?

  • 在目录si下创建工程时si目录下自动产生了文件夹,那么此时Source Insight工程路径到底是哪个?
  • 答:路径仍然是si,si下的其它目录是软件自动生成,并不是我们真实的工程路径。
  • 修改相对路径配置

注意: 如果出现上述问题,请检查相对路径是否正确!!!


ctrl+q :锁定context窗口
alt+q:关闭context窗口

alt+1:go back
alt+2: go forward

shift+f1:全局搜索
shift+f2:本文件中向下搜索选中的文本
shift+f3:本文件中向上搜索选中的文本

alt+f1:搜索

ctrl+/ :注释
shift+ctrl+/:取消注释。

附加一:修改宏添加文件头,函数注释头

/*
 * 文件名:flinger.em
 *
 * 步骤:
 * 1. 复制到Base项目文件夹,如;C:\Users\xxx\Documents\Source Insight 4.0\Projects\Base
 * 2. Project -> Open Project,打开Base项目;
 * 3. 将复制过去的flinger.em添加入Base项目;
 * 4. 重启SourceInsight;
 * 5. Options -> Menu Assignments,将Marco宏名添加到"Work"菜单;
 */
/*
 * 文件名:flinger.em
 *
 * 步骤:
 * 1. 复制到Base项目文件夹,如;C:\Users\xxx\Documents\Source Insight 4.0\Projects\Base
 * 2. Project -> Open Project,打开Base项目;
 * 3. 将复制过去的flinger.em添加入Base项目;
 * 4. 重启SourceInsight;
 * 5. Options -> Menu Assignments,将Marco宏名添加到"Work"菜单;
 */

//获取自己的Name
macro GetMyName()
{
    return "jiangfeng.zhang"
}
 
//格式化日期时间,就是补0
macro FormatNum(Num)
{
    if (Num < 10)
    {
        szNum = "0@Num@";
    }
    else
    {
        return Num;
    }
    return szNum
}
 
//获取日期
macro GetDate()
{
    G_Date = GetSysTime(1)
    Year = G_Date.Year
    Month = FormatNum(G_Date.Month)
    Day = FormatNum(G_Date.Day)
 
    return "@Year@-@Month@-@Day@"
}
 
//获取日期时间
macro GetDateTime(Flag)
{
    G_Time = GetSysTime(1)
    Date = GetDate()
    Hour = FormatNum(G_Time.Hour)
    Minute = FormatNum(G_Time.Minute)
 
    if (Flag)
    {
        Second = FormatNum(G_Time.Second)
        return "@Date@ @Hour@:@Minute@:@Second@"
    }
    else
    {
        return "@Date@ @Hour@:@Minute@"
    }
}
 
//获取文件名
macro GetFileName(PathName)
{
    nLength = strlen(PathName)
    i = nLength - 1
    Name = ""
    while (i + 1)
    {
        ch = PathName[i]
        if ("\\" == "@ch@")
        {
            break
        }
        i = i - 1
    }
 
    i = i + 1
 
    while (i < nLength)
    {
        Name = cat(Name, PathName[i])
        i = i + 1
    }
 
    return Name
}
 
macro CommentFormatNum(Num)
{
    if (Num < 10)
    {
        szNum = "0000@Num@"
    }
    else if (Num < 100)
    {
        szNum = "000@Num@"
    }
    else if (Num < 1000)
    {
        szNum = "00@Num@"
    }
    else if (Num < 10000)
    {
        szNum = "0@Num@"
    }
    else
    {
        return Num
    }
 
    return szNum
}
 
//获取当前文件路径
macro Flinger_GetPath()
{
    hwnd = GetCurrentWnd()
    hbuf = GetCurrentBuf()
    lnFirst = GetWndSelLnFirst(hwnd)
    FilePath = GetBufName(hbuf)
 
    InsBufLine(hbuf, lnFirst + 1, "@FilePath@")
 
    Sel = GetWndSel(hwnd)         //创建一个Selection Record
    Sel.LnFirst = lnFirst + 1;    //赋值起始行
    Sel.LnLast = lnFirst + 1;     //赋值结束行
    Sel.ichFirst = 0;             //赋值选中起始字符
    Sel.ichLim = StrLen(FilePath);    //赋值选中结束字符
 
    SetWndSel(hwnd, Sel)    //设置选中
}
 
//添加自定义代码块注释,以区别是自己改的代码
macro Flinger_ExegesisCode()
{
    lnFirst = GetWndSelLnFirst(GetCurrentWnd())
    hbuf = GetCurrentBuf()
    date = GetDateTime(0);
    InsBufLine(hbuf, lnFirst + 0, "/*========================= Flinger Code Start =========================*/")
    InsBufLine(hbuf, lnFirst + 1, "#ifdef FLINGER_CODE /* @date@ */")
    InsBufLine(hbuf, lnFirst + 2, "")
    InsBufLine(hbuf, lnFirst + 3, "#else    /* #ifdef FLINGER_CODE */")
    InsBufLine(hbuf, lnFirst + 4, "")
    InsBufLine(hbuf, lnFirst + 5, "#endif   /* #ifdef FLINGER_CODE */")
    InsBufLine(hbuf, lnFirst + 6, "/*========================= Flinger Code End   =========================*/")
    SetBufIns(hbuf, lnFirst + 2, 0)
}
 
macro Flinger_CommentBlock()
{
    hbuf = GetCurrentBuf();
    hwnd = GetCurrentWnd();
    sel = GetWndSel(hwnd);
    Time = GetDateTime(0);
    MyName = GetMyName();
 
    //szInfo = "/*  @Time@  By  @MyName@ "       //不支持嵌套
    szInfo = "#if 0    //  @Time@  By  @MyName@"   //支持嵌套
    //szInfo = "#ifndef FLINGER_DEL     //  @Time@  By  @MyName@"
 
    Line = CommentFormatNum(sel.lnFirst + 1)
 
    InsBufLine(hbuf, sel.lnFirst, szInfo)
 
    //InsBufLine(hbuf, sel.lnLast + 2, "*/  //Comment_Start (Line:@Line@)")   //不支持嵌套,改了这必须要改下面的len比较值
    InsBufLine(hbuf, sel.lnLast + 2, "#endif")    //支持嵌套
    //InsBufLine(hbuf, sel.lnLast + 2, "#endif    // #ifndef FLINGER_DEL (Line:@Line@)")
 
    tabSize = 4;
    sel.ichFirst = sel.ichFirst + tabSize;
    sel.ichLim = sel.ichLim + tabSize;
    //SetWndSel(hwnd, sel);
}
 
//文件头部插入信息
macro Flinger_InsertFileHeader()
{
    MyName = GetMyName()
    C_Time = GetSysTime(1)
    Year = C_Time.Year
    E_Year = Year + 1
    Date = GetDateTime(0)
    MyFilename = GetFileName(GetBufName(GetCurrentBuf()))
 
    hbuf = GetCurrentBuf()
    InsBufLine(hbuf, 0, "/*********************************************************************")
    InsBufLine(hbuf, 1, " * 版权所有: Copyright (c) @Year@-@E_Year@  XXX Company. All rights reserved.")
    InsBufLine(hbuf, 2, " * 系统名称: ")
    InsBufLine(hbuf, 3, " * 文件名称: @MyFilename@")
    InsBufLine(hbuf, 4, " * 内容摘要: 简要描述本文件的内容,包括主要模块、函数及其功能的说明")
    InsBufLine(hbuf, 5, " * 当前版本: ")
    InsBufLine(hbuf, 6, " * 作    者: @MyName@")
    InsBufLine(hbuf, 7, " * 设计日期: @Date@")
    InsBufLine(hbuf, 8, " * 修改记录: ")
    InsBufLine(hbuf, 9, " * 日    期          版    本          修改人          修改摘要")
    InsBufLine(hbuf, 10, "**********************************************************************/")
    InsBufLine(hbuf, 11, "")
    InsBufLine(hbuf, 12, "")
    InsBufLine(hbuf, 13, "")
    InsBufLine(hbuf, 14, "")
 
    SetBufIns(hbuf, 2, 20)
}
 
//函数前插入的信息(光标放在函数名 才可获取到函数名信息 否则报错)
macro Flinger_InsertFuncHeader()
{
    MyName = GetMyName()
    Date = GetDateTime(0)
    hbuf = GetCurrentBuf()
    FunName = GetCurSymbol()
    lnFirst = GetSymbolLine(FunName)
    if (lnFirst < 0)
    {
        lnFirst = GetWndSelLnFirst(GetCurrentWnd())
    }
    InsBufLine(hbuf, lnFirst + 0, "")
    InsBufLine(hbuf, lnFirst + 1, "/***********************************************************************")
    InsBufLine(hbuf, lnFirst + 2, " * 函数名称: @FunName@")
    InsBufLine(hbuf, lnFirst + 3, " * 功能描述: ")
    InsBufLine(hbuf, lnFirst + 4, " * 输入参数: ")
    InsBufLine(hbuf, lnFirst + 5, " * 输出参数: ")
    InsBufLine(hbuf, lnFirst + 6, " * 返 回 值: ")
    InsBufLine(hbuf, lnFirst + 7, " *  其   它: ")
    InsBufLine(hbuf, lnFirst + 8, " ***********************************************************************/")
 
    SetBufIns(hbuf, lnFirst + 0, 0)
}
 
//头文件布局
macro Flinger_InsertHeaderFileLayout()
{
    Flinger_InsertFileHeader()
    FileHeaderLine = 15
 
    hbuf = GetCurrentBuf()
    InsBufLine(hbuf, 0 +FileHeaderLine, "#ifndef __XXX_H__")
    InsBufLine(hbuf, 1 +FileHeaderLine, "#define __XXX_H__")
    InsBufLine(hbuf, 2 +FileHeaderLine, "/********************************** 其它条件编译选项 ***********************************/")
    InsBufLine(hbuf, 3 +FileHeaderLine, "")
    InsBufLine(hbuf, 4 +FileHeaderLine, "")
    InsBufLine(hbuf, 5 +FileHeaderLine, "/********************************** 标准库头文件 ***********************************/")
    InsBufLine(hbuf, 6 +FileHeaderLine, "#include <xxx.h>")
    InsBufLine(hbuf, 7 +FileHeaderLine, "")
    InsBufLine(hbuf, 8 +FileHeaderLine, "")
    InsBufLine(hbuf, 9 +FileHeaderLine, "/********************************** 非标准库头文件 ***********************************/")
    InsBufLine(hbuf, 10+FileHeaderLine, "#include \"xxx.h\"")
    InsBufLine(hbuf, 11+FileHeaderLine, "")
    InsBufLine(hbuf, 12+FileHeaderLine, "")
    InsBufLine(hbuf, 13+FileHeaderLine, "/********************************** 常量定义 ***********************************/")
    InsBufLine(hbuf, 14+FileHeaderLine, "")
    InsBufLine(hbuf, 15+FileHeaderLine, "")
    InsBufLine(hbuf, 16+FileHeaderLine, "/********************************** 全局宏 ***********************************/")
    InsBufLine(hbuf, 17+FileHeaderLine, "")
    InsBufLine(hbuf, 18+FileHeaderLine, "")
    InsBufLine(hbuf, 19+FileHeaderLine, "/********************************** 数据类型 ***********************************/")
    InsBufLine(hbuf, 20+FileHeaderLine, "")
    InsBufLine(hbuf, 21+FileHeaderLine, "")
    InsBufLine(hbuf, 22+FileHeaderLine, "/********************************** 函数声明 ***********************************/")
    InsBufLine(hbuf, 23+FileHeaderLine, "")
    InsBufLine(hbuf, 24+FileHeaderLine, "")
    InsBufLine(hbuf, 25+FileHeaderLine, "/********************************** 类定义 ***********************************/")
    InsBufLine(hbuf, 26+FileHeaderLine, "")
    InsBufLine(hbuf, 27+FileHeaderLine, "")
    InsBufLine(hbuf, 28+FileHeaderLine, "/********************************** 模板 ***********************************/")
    InsBufLine(hbuf, 29+FileHeaderLine, "")
    InsBufLine(hbuf, 30+FileHeaderLine, "")
    InsBufLine(hbuf, 31+FileHeaderLine, "#endif /* __XXX_H__ */")
    InsBufLine(hbuf, 32+FileHeaderLine, "")
 
    SetBufIns(hbuf, 32+FileHeaderLine, 20)
}
 
//源文件布局
macro Flinger_InsertSourceFileLayout()
{
    Flinger_InsertFileHeader()
    FileHeaderLine = 15
 
    hbuf = GetCurrentBuf()
    InsBufLine(hbuf, 0 +FileHeaderLine, "/********************************** 标准库头文件 ***********************************/")
    InsBufLine(hbuf, 1 +FileHeaderLine, "#include <xxx.h>")
    InsBufLine(hbuf, 2 +FileHeaderLine, "")
    InsBufLine(hbuf, 3 +FileHeaderLine, "")
    InsBufLine(hbuf, 4 +FileHeaderLine, "/********************************** 非标准库头文件 ***********************************/")
    InsBufLine(hbuf, 5 +FileHeaderLine, "#include \"xxx.h\"")
    InsBufLine(hbuf, 6 +FileHeaderLine, "")
    InsBufLine(hbuf, 7 +FileHeaderLine, "")
    InsBufLine(hbuf, 8 +FileHeaderLine, "/********************************** 常量定义 ***********************************/")
    InsBufLine(hbuf, 9 +FileHeaderLine, "")
    InsBufLine(hbuf, 10+FileHeaderLine, "")
    InsBufLine(hbuf, 11+FileHeaderLine, "/********************************** 文件内部使用的宏 ***********************************/")
    InsBufLine(hbuf, 12+FileHeaderLine, "")
    InsBufLine(hbuf, 13+FileHeaderLine, "")
    InsBufLine(hbuf, 14+FileHeaderLine, "/********************************** 文件内部使用的数据类型 ***********************************/")
    InsBufLine(hbuf, 15+FileHeaderLine, "")
    InsBufLine(hbuf, 16+FileHeaderLine, "")
    InsBufLine(hbuf, 17+FileHeaderLine, "/********************************** 静态全局变量 ***********************************/")
    InsBufLine(hbuf, 18+FileHeaderLine, "")
    InsBufLine(hbuf, 19+FileHeaderLine, "")
    InsBufLine(hbuf, 20+FileHeaderLine, "/********************************** 全局变量 ***********************************/")
    InsBufLine(hbuf, 21+FileHeaderLine, "")
    InsBufLine(hbuf, 22+FileHeaderLine, "")
    InsBufLine(hbuf, 23+FileHeaderLine, "/********************************** 局部函数声明 ***********************************/")
    InsBufLine(hbuf, 24+FileHeaderLine, "")
    InsBufLine(hbuf, 25+FileHeaderLine, "")
    InsBufLine(hbuf, 26+FileHeaderLine, "/********************************** 局部函数 ***********************************/")
    InsBufLine(hbuf, 27+FileHeaderLine, "")
    InsBufLine(hbuf, 28+FileHeaderLine, "")
    InsBufLine(hbuf, 29+FileHeaderLine, "/********************************** 全局函数 ***********************************/")
    InsBufLine(hbuf, 30+FileHeaderLine, "")
    InsBufLine(hbuf, 31+FileHeaderLine, "")
    InsBufLine(hbuf, 32+FileHeaderLine, "/********************************** 类的实现 ***********************************/")
    InsBufLine(hbuf, 33+FileHeaderLine, "")
    InsBufLine(hbuf, 34+FileHeaderLine, "")
 
    SetBufIns(hbuf, 34+FileHeaderLine, 20)
}

附加二:astyle插件进行代码格式化
https://blog.csdn.net/redeagle_gbf/article/details/81566871

如果报错,则去掉相关不支持的参数
"E:\Source Insight\AStyle\bin\AStyle.exe" --style=allman -k3 -W1 -xG -S -s4 -xb -U -p -xC120 -xL -H -Y -xW -w -n %f

宏插件quicker.em使用

https://blog.csdn.net/l645317186/article/details/111540486

https://blog.csdn.net/fazai001/article/details/7096989?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

posted @ 2018-07-09 20:11  hostid  阅读(1618)  评论(0编辑  收藏  举报