问题

  在创建完成 Source Insight 工程后,我们就可以使用绝大部分功能。但是如果用的多了就会发现,其与我们真正的 IDE(通常我们仅用 Source Insight 编辑代码,实际的编译、调试还得上 IDE ) 总有些不适应的地方!具体有如下问题:

  1. Source Insight 无法处理编译器使用的库文件。例如,Source Insight 将找不到一些库函数的定义,例如:memcpy 函数
  2. Source Insight 无法处理自己代码中使用的各种宏值。在实际开发中,我们经常有一些全局的宏,如下图:

    或者说有一些编译器自己定义的宏值,如下是一个处理多编译器的文件:
/* define compiler specific symbols */
#if defined (__ICCARM__)#define PACK_STRUCT_BEGIN#define PACK_STRUCT_STRUCT #define PACK_STRUCT_END#define PACK_STRUCT_FIELD(x) x#define PACK_STRUCT_USE_INCLUDES#define __ASM __asm /*!< asm keyword for iarcc */#define __INLINE inline /*!< inline keyword for iarcc. Only avaiable in High optimization mode! */#define __nop __no_operation /*!< no operation intrinsic in iarcc */#elif defined (__CC_ARM)#define PACK_STRUCT_BEGIN __packed#define PACK_STRUCT_STRUCT #define PACK_STRUCT_END#define PACK_STRUCT_FIELD(x) x#define __ASM __asm                        /*!< asm keyword for armcc */#define __INLINE __inline                /*!< inline keyword for armcc */#ifndef __ARMCC_VERSION#error Unsupport ARM toolchain#elif __ARMCC_VERSION > 400000            /* ADS中,此值为1;RVCT(armcc 4.x) 格式:PVbbbb,且P=4;armcc5.x 格式:PVVbbbb,且P=5 */#pragma anon_unions                    /* armcc 默认没有开启对 匿名结构体等的支持 */#else                                    /* armcc 4.x 以下 不支持 变长数组等C99特性*/#define NO_FLEXIBLE_ARRAY#endif#elif defined (__GNUC__)#define PACK_STRUCT_BEGIN#define PACK_STRUCT_STRUCT __attribute__ ((__packed__))#define PACK_STRUCT_END#define PACK_STRUCT_FIELD(x) x#define __ASM asm                 /*!< asm keyword for gcc */#define __INLINE inline         /*!< inline keyword for gcc*/#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)#define PACK_STRUCT_BEGIN#define PACK_STRUCT_STRUCT#define PACK_STRUCT_END#define PACK_STRUCT_FIELD(x) x#define PACK_STRUCT_USE_INCLUDES
#else#error Unknown compiler
#endif
  1. Source Insight 默认的快捷键与很多 IDE 默认的快捷键不一致。例如:代码注释 CTRL + /、代码导航 ALT + Left
  2. Source Insight 没有代码格式化工具
  3. 根据需要自己修改菜单项

Source Insight 仅仅是个代码查看、编辑器,但是我们可以配置其支持更多功能!

添加库文件

  正确引入编译器使用的库文件,可以使 Source Insight 更好的实现对源码的支持!要使 Source Insight 可以支持编译器(IDE)中使用的库文件,我们可以通过如下步骤来实现:

  1. Source Insight 本身支持导入外部符号。可以选择仅为当前项目添加外部符号,否则默认对全部 Source Insight 项目起作用!
  2. 如下图所示,根据需要添加即可

添加宏

  对于我们自己在项目中添加的宏,通常是限制了某些功能。编译器预定义的宏值则决定了编译条件过程。要使 Source Insight 正确识别由宏值控制的内容,则可以通过以下步骤添加:

  1. 从项目配置中打开
  2. 根据自己的定义,添加各宏值即可!

快捷键

  这个的修改就是看自己需要了。如果经常使用其他 IDE 或者编辑环境,对于一些快捷键可能有自己的执著。例如,在目前很多现代化的编辑环境中,代码的注释常用快捷键 Ctrl + /。Source Insight 本身支持修改其默认的快捷键。修改方式如下:

  1. 在如下图所示的菜单下,有快捷键配置这一项
  2. 根据需要修改即可。

    注意:

    1. 有些快捷键是被系统等占用的,不能修改!
    2. 在修改快捷键时,会提示快捷键冲突,这是因为要修改的快捷键已经被用在了 Source Insight 的其他功能上。需要用户自己确认是否更改,更改后原来功能的快捷键将被置为空。

菜单编辑

  菜单编辑主要是修改 Source Insight 默认的菜单!如果你觉得 Source Insight 默认菜单不符合你的使用习惯,则可以进行更改,Source Insight 本身持续修改默认的菜单。一般采用默认菜单项目即可!修改方式如下:

  1. 从如下图所示的菜单中,打开菜单编辑界面
  2. 在如下图所示的菜单编辑页面中,我们可以选择要编辑的菜单。不过仅支持删除、增加、排序 Source Insight 默认菜单中的菜单项。 不能删除整个菜单(如直接删除 Tools 菜单是不允许的)。

    其中,需要特殊注意的就是,Source Insight 可以在菜单栏手动填一个名为 Work 的菜单。这个菜单下通常存放一些我们自定义的菜单项。关于这一个菜单的使用,可以参见博文SourceInsight 4.0 之 常用宏使用、编辑、修改详解(附最新完善版本的宏)。

配置外部工具

  对于 Source Insight 不具备的功能,我们可以通过引入外部工具来实现,以增强 Source Insight 的功能。在 Source Insight 中,这些外部工具所实现的功能被称为 自定义命令。通过这个配置,我们可以配置一些常用的命令行工具,直接在 Source Insight 中使用!例如,配置 AStyle 代码格式化工具。修改方式如下:

  1. 通过如下图所示的菜单,打开修改界面
  2. 在如下图所示的自定义命令编辑界面,来添加我们需要的外部工具的支持

    上图界面的左侧是 Source Insight 配置的命令的列表,上图所示这些是 Source Insight 的默认的一些命令工具项。只是其对应的右侧详细配置中没有实际工具路径,需要用户自己来配置。
      每个自定义命令的右侧的配置详情格式都是由 Source Insight 预定义好的,且所有外部自定义命令都是如上图所示的这个样子,用户不能改变!我们只能在上面填写内容,及选择 Source Insight 提供的功能选项!
      对于上图的默认自定义命令项,有些是可以删除的,有些则不可以删除!此外,我们可以通过左上角的 Add... 按钮来增加自己的外部工具,以实现自己需要的命令。

Source Insight 宏

  Source Insight 除了可以通过上面的自定义外部工具来扩展其功能外,其还定义了一套自己的宏语言(类似于 C 语言),用户可以通过自己编程来改变 Source Insight 的一些默认的行为!
  关于Source Insight 宏的编写及使用问题,可以参见博文SourceInsight 4.0 之 常用宏使用、编辑、修改详解(附最新完善版本的宏)。其中,介绍的很详细!

注意事项

  1. 添加了自己的宏后,高亮颜色显示时不对的,如下:

    但是,Source Insight 是认为该宏已经被定义的!没有定义的宏值,代码被高亮为 灰色!

SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)相关推荐

  1. Flutter 项目编写 第三方插件库文件引入,本地图片 json数据引入解析

    FlutterDemo是如何一步一步搭建起来的 最初就是直接新建flutter项目,就会自动建立一个入门项目.(开始项目前,需先学习Dart语言) flutter项目代码都在lib目录下编写: 新建包 ...

  2. vscode里面如何配置库_VSCode中C/C++库文件的配置

    VSCode中C/C++库文件的配置 之前一直在是用sublime做主要编辑器,现在主要使用VSCode,毕竟大厂制作,从目前的使用情况来看,我更喜欢使用VSCode编辑器. 有时候会用VScode来 ...

  3. maven 打包数据库加密_SpringBoot项目application.yml文件数据库配置密码加密的方法...

    在Spring boot开发中,需要在application.yml文件里配置数据库的连接信息,或者在启动时传入数据库密码,如果不加密,传明文,数据库就直接暴露了,相当于"裸奔"了 ...

  4. 软件配置 | pip下载第三方库文件及配置pip源的不完全总结

    本文对如何使用 pip 下载第三方库文件及配置 pip 源进行不完全总结 1. Updated: 2022 / 8 / 8 软件配置 | pip下载第三方库文件及配置pip源的不完全总结 pip 下载 ...

  5. 服务器安装信任描述文件,OS X Server:在使用 TLS、TTLS 或 PEAP 时如何在“配置描述文件”中配置 RADIUS 服务器信任...

    在 OS X 中,可使用配置描述文件来配置客户端,使其加入受 802.1x 保护的网络.如果配置描述文件没有针对 EAP 类型正确配置用于建立安全隧道(TLS.TTLS.PEAP)的 RADIUS 服 ...

  6. Envoy实现.NET架构的网关(一)静态配置与文件动态配置

    什么是Gateway 在微服务体系结构中,如果每个微服务通常都会公开一组精细终结点,这种情况可能会有以下问题 如果没有 API 网关模式,客户端应用将与内部微服务相耦合. 在客户端应用中,单个页面/屏 ...

  7. JQuery选择器和JQuery库文件引入

    很久没有写博客了,可以说因为工作忙得关系和知识需要累计到一定程度才写,好吧,话不多说,let;s Do. JQuery库文件引入: 1.在使用Jquery时,JQuery库文件必须放在第一位,否则引用 ...

  8. 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )

    文章目录 POSIX 线程局限性 POSIX 线程配置文件下载及目录说明 Windows 动态库与静态库 POSIX 线程配置 ( 项目配置 ) POSIX 线程配置 ( Windows 动态库拷贝 ...

  9. Pycharm初始创建项目和环境搭建(解决aconda库文件引入不全等问题)

    1.新建工程 1.选择新建一个Pure Python项目,新建项目路径可以在Location处选择. 2.Project Interpreter部分是选择新建项目所依赖的python库,第一个选项会在 ...

最新文章

  1. linux php应用多台服务器架构,Nginx+PHP-FPM在两台服务器实现
  2. 判断字符为空_49. 把字符串转换成整数(剑指offer)
  3. TensorFlow 1.0正式发布
  4. 视频操作_01视频读写:视频读写+读取视频+保存视频
  5. java中的action是指什么_Struts2【开发Action】知识要点
  6. python图片横向合并_python3 图片横向合并
  7. 外贸B2C独立站玩不下去?
  8. 【java】DecimalFormat与JTextArea的区别
  9. Telnet基本概念及C# Telnet 客户端程序
  10. ArcGIS多面体(multipatch)解析——引
  11. 与二次元老婆邂逅的游戏的创建过程(二)
  12. View和ViewGroup的区别
  13. 找出java重复字符串,java 找出字符串出现重复的字符和次数
  14. android分享微信获取资源失败怎么办,Android处理使用Intent分享图片,以及在微信7.0版本出现“获取资源失败,无法分享到朋友圈”,导致分享失败的问题...
  15. 华清远见嵌入式Linux就业培训班
  16. 要考驾照科目二了,好紧张
  17. web(html运行)设置字体大小、样式及字体名称
  18. 教育技术(Educational technology)学习分析和教育数据挖掘领域的SCI、SSCI、CSSCI期刊与会议
  19. 农行网上在线支付平台接口安装详解
  20. 使用 OpenCV 识别图片中的猫咪

热门文章

  1. 【字符比较】单字符比较值是否相等
  2. How to Review a Paper
  3. 猛增 110K Star!年增长数最多的 10 大顶级前端学习资源项目!
  4. gin-vue-admin菜单配置教程:父子菜单
  5. Centos7.x 升级svn版本到指定版本
  6. 【收藏】webpack configuration.module has an unknown property ‘loaders‘. These properties arevalid: 解决办法
  7. linux查看crontab服务执行日志
  8. JVM调优:jdk1.8新生代和老年代的比值是1:2
  9. scala元组的创建入门实例
  10. vue-router嵌套路由示例