VSCode和SourceInsight,到底哪个看源码爽?

嵌入式ARM 2020-02-27 00:00

在做嵌入式 Linux 开发的时候,经常会阅读大型工程源码,比如 uboot 源代码,Linux Kernel 源码等,所以,选择一个合适的工具来阅读源代码,变为了一个经久不衰的话题。

阅读源码的时候,其实无非也就两个重要的功能:

  • ① 定义或者声明快速跳转
  • ② 快速搜索指定内容

另外还有一些功能是和开发体验相关的,比如:

  • ① 工具的主题(亮色和暗色)
  • ② 工具是否方便修改编辑内容
  • ③ 工具是否还提供其它的方便功能

目前常用的就是 Source Insight 和 VS Code,下面就来按照上述需求进行对比,看看哪个更适合?

1. 创建代码工程

Source Insight 在阅读工程代码时,可以通过创建 Source Insight 工程来选择哪些文件加入,哪些文件不加入,对于 uboot 这种包含有大量板级文件夹的工程,加入之后其中的文件只和目前移植的这款处理器有关,这个功能是非常有优势的,也是众多工程师喜爱 Source Insight 的原因。

相比之下,VS Code并不提供这种选择加入的功能,VS Code 非常粗暴,文件夹就是工作区,只需要打开源码文件夹,所有文件全部加入:相比之下,我觉得 Source Insight 胜出,VS Code 这种将所有文件一股脑全部加入的方式,在查找文件时非常麻烦。

2. 文件架构

在 Source Insight 中,打开一个文件的时候,会列出当前文件中所有预处理、宏定义、变量、函数的架构,如图:在 VS Code 中打开文件时也有同样的功能,但又是一股脑的按照顺序将所有函数声明和定义列出,实际查看时也没有什么太多作用:在文件整体架构方面,Source Insight 胜出,VS Code 对于代码架构方面的显示,还需要再优化。

3. 定义跳转功能

在 Source Insight 中,可以右键跳转函数声明或者直接按住 Ctrl 点击函数名称,如果定义有重复会先提示,供你选择,如图:

在 VScode 中,首先需要安装 C/C++扩展,然后才支持定义跳转,可以按住 Ctrl 键点击或者右键跳转:如果有重复也会出现提示,选择需要查看哪个定义。

在定义跳转功能上,两者持平,功能基本都够用。

4. 全局搜索指定内容

在 Source Insight 中,提供的搜索功能如下:在 VS Code 中也提供了全局搜索的功能,但是由于它将所有文件都包含进来了,无用的搜索结果比较多:所以,在搜索功能上,由于 Source Insight 先天性的优势,本轮胜出。

5. 主题设置

阅读源码需要很长时间,所以提供一个舒服的主题也是很重要的。

Source Insight 提供的主题有:

VScode 提供的主题就非常棒了:Source Insight 提供的这些主题我觉得还行,但换出来感觉效果都比较怪,没有那么舒服,相比之下 VS Code 的主题做的就比较好,无论亮色还是暗色看着都很舒服,对于我个人而言,本轮 VS Code 胜出。

6. 其它功能

Source 除了我上述说的主要功能之外,还有非常多的功能,但我都没怎么用过。

此处,我必须要说一下 VS Code,因为 Uboot 源码需要在 linux 上编译,但是我日常使用的系统是 Windows,所以我一般将 VSCode 安装在 Windows 上,使用 VS Code 提供的远程 SSH 功能,去连接远程 Linux 主机,它会将远程主机上的目录直接作为工作区,另外还提供了集成终端,修改后直接在终端中编译即可,如图:另外,VSCode 内部集成了 git 可视化功能,可以方便的使用 git 管理代码。

相比之外,Source Insight 在修改文件之后,还需要把修改的文件上传到 Linux 服务器去编译,过程有点繁琐。

所以,在额外功能的扩展性上,我觉得 VScode 胜出。

7. 总结

经过上述比较,我来说说我的体验和看法:

Source Insight 就像是一个老大哥,基本功很扎实,比如源码查看,文件架构列表这些,很方便实用,在阅读代码的时候非常方便,但在开发时不太方便。

对于它的文件选择加入功能,其实我是不太喜欢的,这么庞大的源码工程,既然我知道哪些文件有用,哪些文件没用,那我还看啥呢?所以对初学者不太友好。

而 VS Code 呢,就是一个年轻小伙,后起之秀,比如主题随便换,可以远程连接 Linux 主机进行开发,Git 可视化扩展等等,各种炫酷功能,但是基本功太不扎实,在阅读源码时的基础功能没做好,但是在开发时非常顺手。

在日常中,你经常使用哪种工具呢?你对这两个工具之间的选择如何看待?欢迎在评论区留言分享!

文章来源:『mculover666』

作者:mculover666


嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 136浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 87浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 49浏览
  •         在有电流流过的导线周围会感生出磁场,再用霍尔器件检测由电流感生的磁场,即可测出产生这个磁场的电流的量值。由此就可以构成霍尔电流、电压传感器。因为霍尔器件的输出电压与加在它上面的磁感应强度以及流过其中的工作电流的乘积成比例,是一个具有乘法器功能的器件,并且可与各种逻辑电路直接接口,还可以直接驱动各种性质的负载。因为霍尔器件的应用原理简单,信号处理方便,器件本身又具有一系列的du特优点,所以在变频器中也发挥了非常重要的作用。  &nb
    锦正茂科技 2024-12-10 12:57 76浏览
  • 概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些之前系列器件还未遇到的问题,这些问题将在本文中进行详细描述介绍。 在五代Cyclone器件内部系统时钟受限的情况下,意味着大量逻辑资源将被浪费在于实现较大长度的TDL上面。是否可以找到方法可以对此前TDL的长度进行优化呢?本文还将探讨这个问题。TDC前段BIN颗粒堵塞问题分析 将延时链在逻辑中实现后
    coyoo 2024-12-10 13:28 101浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 77浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 105浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 81浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 69浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 74浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 68浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 47浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦