0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何选择合适的工具来阅读源代码

strongerHuang 来源:Mculover666 作者:Mculover666 2022-03-30 14:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在做嵌入式 Linux 软件开发的时候,经常会阅读大型工程源码,比如 uboot 源代码,Linux Kernel 源码等。

所以,选择一个合适的工具来阅读源代码,变为了一个经久不衰的话题。

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

① 定义或者声明快速跳转

② 快速搜索指定内容

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

① 工具的主题(亮色和暗色)

② 工具是否方便修改编辑内容

③ 工具是否还提供其它的方便功能

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

创建代码工程

Source Insight 在阅读工程代码时,可以通过创建 Source Insight 工程来选择哪些文件加入,哪些文件不加入。

对于 uboot 这种包含有大量板级文件夹的工程,加入之后其中的文件只和目前移植的这款处理器有关,这个功能是非常有优势的,也是众多工程师喜爱 Source Insight 的原因。

159b3f22-ac30-11ec-aa7f-dac502259ad0.png

相比之下,VS Code并不提供这种选择加入的功能,VS Code 非常粗暴,文件夹就是工作区,只需要打开源码文件夹,所有文件全部加入:

15aa8ab8-ac30-11ec-aa7f-dac502259ad0.png

相比之下,我觉得 Source Insight 胜出,VS Code 这种将所有文件一股脑全部加入的方式,在查找文件时非常麻烦。

文件架构

在 Source Insight 中,打开一个文件的时候,会列出当前文件中所有预处理、宏定义、变量、函数的架构,如图:

15bd8b4a-ac30-11ec-aa7f-dac502259ad0.png

在 VS Code 中打开文件时也有同样的功能,但又是一股脑的按照顺序将所有函数声明和定义列出,实际查看时也没有什么太多作用:

15d68a14-ac30-11ec-aa7f-dac502259ad0.png

在文件整体架构方面,Source Insight 胜出,VS Code 对于代码架构方面的显示,还需要再优化。

定义跳转功能

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

15f06308-ac30-11ec-aa7f-dac502259ad0.png

在 VScode 中,首先需要安装 C/C++扩展,然后才支持定义跳转,可以按住 Ctrl 键点击或者右键跳转:

1602db46-ac30-11ec-aa7f-dac502259ad0.png

如果有重复也会出现提示,选择需要查看哪个定义。在定义跳转功能上,两者持平,功能基本都够用。

全局搜索指定内容

在 Source Insight 中,提供的搜索功能如下:

161490b6-ac30-11ec-aa7f-dac502259ad0.png

在 VS Code 中也提供了全局搜索的功能,但是由于它将所有文件都包含进来了,无用的搜索结果比较多:

16290f8c-ac30-11ec-aa7f-dac502259ad0.png

所以,在搜索功能上,由于 Source Insight 先天性的优势,本轮胜出。

主题设置

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

16391f80-ac30-11ec-aa7f-dac502259ad0.png

VScode 提供的主题就非常棒了:

16449838-ac30-11ec-aa7f-dac502259ad0.png

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

其他功能

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

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

16637f3c-ac30-11ec-aa7f-dac502259ad0.jpg

另外,VSCode 内部集成了 git 可视化功能,可以方便的使用 git 管理代码。相比之外,Source Insight 在修改文件之后,还需要把修改的文件上传到 Linux 服务器去编译,过程有点繁琐。所以,在额外功能的扩展性上,我觉得 VScode 胜出。

总结

经过上述比较,我来说说我的体验和看法:Source Insight 就像是一个老大哥,基本功很扎实,比如源码查看,文件架构列表这些,很方便实用,在阅读代码的时候非常方便,但在开发时相对不太方便。对于它的文件选择加入功能,其实我是不太喜欢的,这么庞大的源码工程,既然我知道哪些文件有用,哪些文件没用,那我还看啥呢?所以对初学者不太友好。而 VS Code 呢,就是一个年轻小伙,后起之秀,比如主题随便换,可以远程连接 Linux 主机进行开发,Git 可视化扩展等等,各种炫酷功能,但是基本功太不扎实,在阅读源码时的基础功能没做好,但是在开发时非常顺手。

原文标题:两款工具对比:Source Insight vs VS Code

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20414

    浏览量

    255922
  • Linux
    +关注

    关注

    88

    文章

    11888

    浏览量

    220161
  • 源代码
    +关注

    关注

    96

    文章

    2954

    浏览量

    70969

原文标题:两款工具对比:Source Insight vs VS Code

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何选择合适的功率分析仪

    在电力电子、能源管理、电机控制及众多工业领域中,功率分析仪作为测量、记录和分析电功率及其相关参数的关键工具,其重要性不言而喻。选择合适的功率分析仪不仅能够提高测试精度,还能优化系统设计,降低成本
    的头像 发表于 04-27 15:27 324次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的功率分析仪

    如何选择合适的贴片电容用于电源滤波?

    选择合适的贴片电容用于电源滤波需从 电容值、耐压、温度特性、频率响应、封装尺寸、等效串联电阻(ESR)及成本 等核心参数入手,结合具体应用场景进行综合考量。以下是具体选择方法及分析: ​ 一、核心
    的头像 发表于 03-30 16:54 518次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的贴片电容用于电源滤波?

    国巨电阻如何选择合适的型号?

    关注的焦点。本文将从应用场景、阻值范围、功率封装、温度系数、成本可靠性等关键维度出发,为您梳理国巨电阻选型的系统化方法。 国巨电阻选择合适型号的步骤如下 : 1、确定应用场景与需求 : 普通电路 :如上下拉电阻、
    的头像 发表于 03-17 16:11 426次阅读
    国巨电阻如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的型号?

    如何选择适合的智驾仿真工具进行场景生成和测试?

    在自动驾驶技术日益发展的背景下,选择合适的智驾仿真工具进行场景生成和测试显得尤为重要。该工具不仅需要支持高精度的场景重建,还需满足多种环境条件和传感器模型的兼容性。本文将深入探讨如何评
    的头像 发表于 11-25 10:32 565次阅读
    如何<b class='flag-5'>选择</b>适合的智驾仿真<b class='flag-5'>工具</b>进行场景生成和测试?

    嵌入式开发工具版本的选择策略

    今天,我们就来结合嵌入式常见的几个软件(如Keil / IAR、VS Code 、Source Insight、VMware、Git等),简单讲一讲嵌入式开发工具软件版本选择策略。 开发团队软件工具
    发表于 11-25 06:11

    如何选择合适的SC1溶液清洗硅片

    选择合适的SC1溶液清洗硅片需要综合考虑多个因素,以下是具体的方法和要点:明确污染物类型与污染程度有机物污染为主时:如果硅片表面主要是光刻胶、油脂等有机污染物,应适当增加过氧化氢(H₂O₂)的比例
    的头像 发表于 10-20 11:18 927次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的SC1溶液<b class='flag-5'>来</b>清洗硅片

    如何选择合适的实时操作系统

    选择合适的实时操作系统(RTOS,Real-Time Operating System)可能会影响你在不同行业的职业发展路径。
    的头像 发表于 09-09 14:47 1389次阅读

    Nuvoton_8051_ISP-ICP_Programmer_v7.15中缺少ISP加载器的源代码怎么解决?

    : isp_code_n76e885_v4.10_comport.bin isp_code_n76e616_v4.10_comport.bin 是否有指向这些引导加载程序的源代码的链接? 以下内容为
    发表于 08-18 06:30

    【「开关电源控制环路设计:Christophe Basso 的实战秘籍」阅读体验】+读后感

    分析有了更深入的理解,同时,书中对于如何选择合适的元件,以及如何对控制环路进行优化也有独到的见解,为电源设计者提供了实用的设计工具和思路,具有很强的实用性和指导性。
    发表于 08-12 18:24

    如何选择合适的直流负载或交流负载?

    如何选择合适的直流负载或交流负载?
    的头像 发表于 08-04 17:53 1511次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的直流负载或交流负载?

    HarmonyOS AI辅助编程工具(CodeGenie)代码智能解读

    本功能从DevEco CodeGenie 5.1.0 Beta版本开始支持。 CodeGenie提供智能AI能力对框选的代码片段进行逐条解释,总结代码段含义,帮助开发者提升阅读代码的速
    发表于 07-17 17:02

    如何选择合适的芯科科技Wi-Fi开发板

    您正在寻找适用于超低功耗物联网应用项目的Wi-Fi 开发板吗?本文将介绍Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗蓝牙5.4解决方案的Wi-Fi 开发板。SiWx917是目前市场上最节能的Wi-Fi 6无线MCU,我们将说明如何根据您的项目需求
    的头像 发表于 07-09 09:15 3222次阅读

    如何选择合适的物联网蓝牙模块?

    也会导致更多的信号干扰。因此,需要根据具体应用场景选择合适的发射功率模块。2、接收灵敏度:接收灵敏度决定了蓝牙模块能否在多远距离内成功接收信号。接收灵敏度越高的模块,能够接收信号的距离就越远。因此
    发表于 06-28 21:46

    【版本控制教程】如何使用Unreal Engine 5 + UE源代码控制(Perforce P4)

    项目越大,越需要靠谱的版本控制系统。Perforce P4不仅是Epic官方推荐的源代码控制工具,更是大厂团队协作的核心支持之一。如何配置P4+UE?手把手教你怎么用↓↓↓
    的头像 发表于 06-25 11:22 2038次阅读
    【版本控制教程】如何使用Unreal Engine 5 + UE<b class='flag-5'>源代码</b>控制(Perforce P4)

    如何选择合适的工业化超声波清洗设备?

    如何选择合适的工业化超声波清洗设备?专家指导在制造业中,选择合适的工业化超声波清洗设备至关重要。不同的应用需要不同类型的设备,而且性能和功能也各不相同。本文将为您提供专家指导,帮助您了
    的头像 发表于 06-18 17:24 954次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的工业化超声波清洗设备?