SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)
问题
在创建完成 Source Insight 工程后,我们就可以使用绝大部分功能。但是如果用的多了就会发现,其与我们真正的 IDE(通常我们仅用 Source Insight 编辑代码,实际的编译、调试还得上 IDE ) 总有些不适应的地方!具体有如下问题:
- Source Insight 无法处理编译器使用的库文件。例如,Source Insight 将找不到一些库函数的定义,例如:
memcpy
函数 - 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
- Source Insight 默认的快捷键与很多 IDE 默认的快捷键不一致。例如:代码注释
CTRL + /
、代码导航ALT + Left
等 - Source Insight 没有代码格式化工具
- 根据需要自己修改菜单项
Source Insight 仅仅是个代码查看、编辑器,但是我们可以配置其支持更多功能!
添加库文件
正确引入编译器使用的库文件,可以使 Source Insight 更好的实现对源码的支持!要使 Source Insight 可以支持编译器(IDE)中使用的库文件,我们可以通过如下步骤来实现:
- Source Insight 本身支持导入外部符号。可以选择仅为当前项目添加外部符号,否则默认对全部 Source Insight 项目起作用!
- 如下图所示,根据需要添加即可
添加宏
对于我们自己在项目中添加的宏,通常是限制了某些功能。编译器预定义的宏值则决定了编译条件过程。要使 Source Insight 正确识别由宏值控制的内容,则可以通过以下步骤添加:
- 从项目配置中打开
- 根据自己的定义,添加各宏值即可!
快捷键
这个的修改就是看自己需要了。如果经常使用其他 IDE 或者编辑环境,对于一些快捷键可能有自己的执著。例如,在目前很多现代化的编辑环境中,代码的注释常用快捷键 Ctrl + /
。Source Insight 本身支持修改其默认的快捷键。修改方式如下:
- 在如下图所示的菜单下,有快捷键配置这一项
- 根据需要修改即可。
注意:- 有些快捷键是被系统等占用的,不能修改!
- 在修改快捷键时,会提示快捷键冲突,这是因为要修改的快捷键已经被用在了 Source Insight 的其他功能上。需要用户自己确认是否更改,更改后原来功能的快捷键将被置为空。
菜单编辑
菜单编辑主要是修改 Source Insight 默认的菜单!如果你觉得 Source Insight 默认菜单不符合你的使用习惯,则可以进行更改,Source Insight 本身持续修改默认的菜单。一般采用默认菜单项目即可!修改方式如下:
- 从如下图所示的菜单中,打开菜单编辑界面
- 在如下图所示的菜单编辑页面中,我们可以选择要编辑的菜单。不过仅支持删除、增加、排序 Source Insight 默认菜单中的菜单项。 不能删除整个菜单(如直接删除 Tools 菜单是不允许的)。
其中,需要特殊注意的就是,Source Insight 可以在菜单栏手动填一个名为Work
的菜单。这个菜单下通常存放一些我们自定义的菜单项。关于这一个菜单的使用,可以参见博文SourceInsight 4.0 之 常用宏使用、编辑、修改详解(附最新完善版本的宏)。
配置外部工具
对于 Source Insight 不具备的功能,我们可以通过引入外部工具来实现,以增强 Source Insight 的功能。在 Source Insight 中,这些外部工具所实现的功能被称为 自定义命令。通过这个配置,我们可以配置一些常用的命令行工具,直接在 Source Insight 中使用!例如,配置 AStyle 代码格式化工具。修改方式如下:
- 通过如下图所示的菜单,打开修改界面
- 在如下图所示的自定义命令编辑界面,来添加我们需要的外部工具的支持
上图界面的左侧是 Source Insight 配置的命令的列表,上图所示这些是 Source Insight 的默认的一些命令工具项。只是其对应的右侧详细配置中没有实际工具路径,需要用户自己来配置。
每个自定义命令的右侧的配置详情格式都是由 Source Insight 预定义好的,且所有外部自定义命令都是如上图所示的这个样子,用户不能改变!我们只能在上面填写内容,及选择 Source Insight 提供的功能选项!
对于上图的默认自定义命令项,有些是可以删除的,有些则不可以删除!此外,我们可以通过左上角的Add...
按钮来增加自己的外部工具,以实现自己需要的命令。
Source Insight 宏
Source Insight 除了可以通过上面的自定义外部工具来扩展其功能外,其还定义了一套自己的宏语言(类似于 C 语言),用户可以通过自己编程来改变 Source Insight 的一些默认的行为!
关于Source Insight 宏的编写及使用问题,可以参见博文SourceInsight 4.0 之 常用宏使用、编辑、修改详解(附最新完善版本的宏)。其中,介绍的很详细!
注意事项
- 添加了自己的宏后,高亮颜色显示时不对的,如下:
但是,Source Insight 是认为该宏已经被定义的!没有定义的宏值,代码被高亮为 灰色!
SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)相关推荐
- Flutter 项目编写 第三方插件库文件引入,本地图片 json数据引入解析
FlutterDemo是如何一步一步搭建起来的 最初就是直接新建flutter项目,就会自动建立一个入门项目.(开始项目前,需先学习Dart语言) flutter项目代码都在lib目录下编写: 新建包 ...
- vscode里面如何配置库_VSCode中C/C++库文件的配置
VSCode中C/C++库文件的配置 之前一直在是用sublime做主要编辑器,现在主要使用VSCode,毕竟大厂制作,从目前的使用情况来看,我更喜欢使用VSCode编辑器. 有时候会用VScode来 ...
- maven 打包数据库加密_SpringBoot项目application.yml文件数据库配置密码加密的方法...
在Spring boot开发中,需要在application.yml文件里配置数据库的连接信息,或者在启动时传入数据库密码,如果不加密,传明文,数据库就直接暴露了,相当于"裸奔"了 ...
- 软件配置 | pip下载第三方库文件及配置pip源的不完全总结
本文对如何使用 pip 下载第三方库文件及配置 pip 源进行不完全总结 1. Updated: 2022 / 8 / 8 软件配置 | pip下载第三方库文件及配置pip源的不完全总结 pip 下载 ...
- 服务器安装信任描述文件,OS X Server:在使用 TLS、TTLS 或 PEAP 时如何在“配置描述文件”中配置 RADIUS 服务器信任...
在 OS X 中,可使用配置描述文件来配置客户端,使其加入受 802.1x 保护的网络.如果配置描述文件没有针对 EAP 类型正确配置用于建立安全隧道(TLS.TTLS.PEAP)的 RADIUS 服 ...
- Envoy实现.NET架构的网关(一)静态配置与文件动态配置
什么是Gateway 在微服务体系结构中,如果每个微服务通常都会公开一组精细终结点,这种情况可能会有以下问题 如果没有 API 网关模式,客户端应用将与内部微服务相耦合. 在客户端应用中,单个页面/屏 ...
- JQuery选择器和JQuery库文件引入
很久没有写博客了,可以说因为工作忙得关系和知识需要累计到一定程度才写,好吧,话不多说,let;s Do. JQuery库文件引入: 1.在使用Jquery时,JQuery库文件必须放在第一位,否则引用 ...
- 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )
文章目录 POSIX 线程局限性 POSIX 线程配置文件下载及目录说明 Windows 动态库与静态库 POSIX 线程配置 ( 项目配置 ) POSIX 线程配置 ( Windows 动态库拷贝 ...
- Pycharm初始创建项目和环境搭建(解决aconda库文件引入不全等问题)
1.新建工程 1.选择新建一个Pure Python项目,新建项目路径可以在Location处选择. 2.Project Interpreter部分是选择新建项目所依赖的python库,第一个选项会在 ...
最新文章
- linux php应用多台服务器架构,Nginx+PHP-FPM在两台服务器实现
- 判断字符为空_49. 把字符串转换成整数(剑指offer)
- TensorFlow 1.0正式发布
- 视频操作_01视频读写:视频读写+读取视频+保存视频
- java中的action是指什么_Struts2【开发Action】知识要点
- python图片横向合并_python3 图片横向合并
- 外贸B2C独立站玩不下去?
- 【java】DecimalFormat与JTextArea的区别
- Telnet基本概念及C# Telnet 客户端程序
- ArcGIS多面体(multipatch)解析——引
- 与二次元老婆邂逅的游戏的创建过程(二)
- View和ViewGroup的区别
- 找出java重复字符串,java 找出字符串出现重复的字符和次数
- android分享微信获取资源失败怎么办,Android处理使用Intent分享图片,以及在微信7.0版本出现“获取资源失败,无法分享到朋友圈”,导致分享失败的问题...
- 华清远见嵌入式Linux就业培训班
- 要考驾照科目二了,好紧张
- web(html运行)设置字体大小、样式及字体名称
- 教育技术(Educational technology)学习分析和教育数据挖掘领域的SCI、SSCI、CSSCI期刊与会议
- 农行网上在线支付平台接口安装详解
- 使用 OpenCV 识别图片中的猫咪
热门文章
- 【字符比较】单字符比较值是否相等
- How to Review a Paper
- 猛增 110K Star!年增长数最多的 10 大顶级前端学习资源项目!
- gin-vue-admin菜单配置教程:父子菜单
- Centos7.x 升级svn版本到指定版本
- 【收藏】webpack configuration.module has an unknown property ‘loaders‘. These properties arevalid: 解决办法
- linux查看crontab服务执行日志
- JVM调优:jdk1.8新生代和老年代的比值是1:2
- scala元组的创建入门实例
- vue-router嵌套路由示例