zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    推荐一篇好文加上一些补充
    我也来写一个俄罗斯方块
    使用canvas绘制一个时钟
    断句:Store all parameters but the first passed to this function as an array
    Observer Pattern
    web worker 的 self
    练练断句
    as 什么意思?
    natively 在本地机器
    in mind (不是 切记 的意思)
  • 原文地址:https://www.cnblogs.com/retry/p/9285806.html
Copyright © 2011-2022 走看看