Sourcetail 一款代码编辑神器,让看源码如丝般顺滑

大家好,我是小麦,上一次的文章《一个超级实用的源码阅读小技巧》,我简单提到通过gcc+egypt+graphviz(dot)这三个工具,快速生成函数调用图,总体来说也非常好用。

众所周知VSCodeSorceinsight非常好用, understand相对小众,但也非常优质,不过需要收费。

在一位大佬的推荐下,我试了一下开源的代码编辑器sourcetrail,确实别具一格。下面简单来分享一下。

官网地址:https://www.sourcetrail.com/

sourcetrail能够十分高效的帮助开发者去探索、熟悉陌生的代码,目前支持 C、C++、Python 和 Java 语言,同时提供了相关 SDK 用于拓展支持其它语言,相信在未来会提供更多语言的支持。

程序员在它的帮助下可以快速熟悉陌生项目、学习开源项目、框架等。这个神器,大家可以去试试。

目前这个项目已经开源了GitHub地址:

https://github.com/CoatiSoftware/Sourcetrail/releases

跨平台,支持 Windows、macOS、Linux 这三个系统;

下载地址:https:github.com/CoatiSoftware/Sourcetrail/releases

这里我下载的是安装包是Sourcetrail_2021_1_30_Windows_64bit_Installer.zip,安装之后直接看效果图,感觉还是相当不错的。

下面简单介绍下如何使用 sourcetrail 阅读源码,这里我以Linux-0.12的源码为例,做一下简单的说明;

首先双击打开软件,界面如下,点击左侧的 New Project 创建项目

设置好项目名称,并把项目路径设定为Linux-0.12的源码路径,如下图所示;

点击 Add Source Group,在左侧的语言栏里选择C语言,然后选择 Empty Java Source Group

如下图中的索引号,做一下简单介绍;

  1. 设置C标准,如图可以设置为C99;

  2. 可以设置交叉工具链;

  3. 添加源代码的相关文件;索引3是必须要配置的选项,1和2其实可以省略,添加完文件点击Create

选择 All Files, 点击 Start 按钮,然后耐心等待。

完成之后发现提示中出现了很多错误提示,忽略即可,这个完全不影响我们阅读源码。

后面就可以愉快地阅读源代码了。



项目中的符号都可以点击,支持来回跳转,还支持模糊搜索。

左侧源码结构非常清晰,对于熟悉陌生代码结构非常有用。

还可以与其他编辑器链接,比如:Atom, Clion, Eclipse, Emacs, IDEA 等等。

如果你还想挖掘更多的功能,可以参考一下官方文档。

https://www.sourcetrail.com/documentation/

工欲善其事必先利其器,后台回复【520】获取神器。

—— The End ——


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CPU占用率是什么?

这是昨晚上在朋友圈发的一个讨论回答的问题很多因为这个问题,我晚上也没早睡,就想把这个讲清楚说这个问题之前我们先了解下时间片调度算法,因为用这个来讲比较清楚。CPU可以执行任务,CPU给哪个进程执行,哪个进程就可以…

长大了,也弄丢了很多东西

小明要回家处理父亲的头七,那天晚上跟他喝酒聊天,我们说对生活的一些计划,比如计划让小孩上哪所小学,比如上小学了上哪所初中,高中,报什么课外兴趣班等等。吃过苦的孩子心里都有一种执念,想让自…

我的爹,我的娘(2006-02-22 21:39:07)(新浪)

爸爸妈妈是农民(我也是),都已年过半百。他们很忙碌,闲不下来.爸爸头发这几年越来越少了,头发也白了不少,但坚持经常染发,因为他说,怕我的小兄弟产生为什么别人爸爸这么年轻的想法。我…

200个模块,怎么用有线的方式进行组网通信

这是一个读者私聊我的问题,我觉得比较有意思,发出来大家一起讨论,我相信在讨论后,会有更加好的的方案。问题有200个模块,这200个模块需要和主CPU进行通信,每个模块的距离大概在30~50cm之间,用怎…

两招让陌生网络访问者现出原形

当我们关闭计算机时,经常出现“有一台计算机与你的电脑有连接,如果关闭将中断数据”的提示,尤其是在局域网中这种提示更是经常出现。其实这是因为别人通过网络正在访问自己电脑上的共享资源呢!面对如此恶劣的行动,难道只能任其胡作非为吗!当然…

网易创始人之一,周卓林先生

这篇文章的主人公我觉得对我们做技术的人非常有借鉴作用。大学的时候,我们老师就一直强调,一命,二运,三风水,四积德,五读书,后面我就不记得了。1、1997年2月,周卓林上Hotmail&#x…

用单片机制作简单的频率计

点击上方“果果小师弟”,选择“置顶/星标公众号”干货福利,第一时间送达!摘要:利用定时器产生PWM波。然后利用32的外部中断和定时器来测量32输出的波形 硬件:STM32F103C8T6核心板、示波器、串口调试助手 所用到的的引脚…

深入理解Linux内核之内核抢占

1.开场白环境:处理器架构:arm64内核源码:linux-5.11ubuntu版本:20.04.1代码阅读工具:vimctagscscope我们或许经常听说过内核抢占,可是我们是否真正理解它呢?内核抢占和抢占式内核究竟有什么关系…

Python+Selenium学习笔记10 - send_keys上传文件

在火狐浏览器上传文件 上传前,同一个HTML文件在火狐和Edge浏览器显示有些不同 这是Firefox浏览器的显示 这是Edge浏览器 上传后 1 # coding utf-82 3 from selenium import webdriver4 import os5 import time6 7 dr webdriver.Firefox()8 file_path "file:…

不错,又有东西可以领!顺带开发个炫彩灯

什么是涂鸦Arduino SDK?Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Arduino 开发驱动库,使用任意 Arduino 开发板涂鸦通用模组即可快速实现设备联网,开发属于自己的 IoT 项目。本次实战营适合你吗?没基础 —— Arduino 开发需要掌…

GNS3从入门到精通

GNS3是一款优秀的具有图形化界面的模拟器。可以运行在多平台上(Windows,Linux,MacOS等)。其最大的特点就是搭建拓扑极其简单,且支持保存startup-config,供下次实验中继续导入使用,而且所有设备导…

Android App优化之ANR详解

引言 背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实例挑战Android App优化之Layout怎么摆Android App优化之ANR详解Android App优化之消除卡顿Android App优化之内存…

面试官让你用C语言实现大数相乘,慌吗?

在之前的笔试题解析里面,我写了大数相加的问题,这里再剖析一个大数相乘,顾名思义,大数相乘就是这个数已经大到最大的数据类型都没有办法保存了。我们看看最大的数据类型可以保存多大的数据。#include "stdio.h" #includ…

每周分享之cookie详解

本章从JS方向讲解cookie的使用。(实质上后端代码也是差不多用法,无非读取和设置两块) 基本用法:document.cookie"usernamepengpeng"; 修改的时候也是这句,重新赋值即可。 一般的,cookie是记域名的…

每天都用,但是你一定不知道麦克风的灵敏度是什么

我们讨论音频器件的时候,就不得不去讨论灵敏度,麦克风、喇叭、蜂鸣器这些器件都会涉及到灵敏度。灵敏度体现的是输出和输入的关系,因为和声音有关,我们必须要知道声压,理解灵敏度、测量灵敏度,并从中选择合…

邓总的vim配置,需要的自己拿走~

我比较喜欢直接用source insight看代码,不过邓总很喜欢用vim,今天特意让他整理了他的vim 配置,喜欢的同学可以自行下载。在公众号后台回复「vim」获取下载链接VIM 配置查看本机 VIM cscope ctagsvim Ubuntu自带,cscope 、ctags…

html嵌套html解决办法(object/object)

后台管理系统多用到了页面嵌套页面的场景&#xff0c;下面是我在工作中解决的方法&#xff0c;利用<object></object>的data属性&#xff0c;下面试w3c的介绍&#xff1a; data 属性用于指定供对象处理的数据文件的 URL。 该属性的值是文件的 URL&#xff0c;该 UR…

原来,我有这样期望

我妈小时候一直跟我们讲他们村里的一个人&#xff0c;我妈说他们家特有钱&#xff0c;他们家的粮仓里装满了花生和大米&#xff0c;而让他们变得这么富有的原因是—勤劳和省。我还上小学那几年&#xff0c;水稻的产量很低「袁隆平的杂交水稻是在后来几年才普及的」&#xff0c;…

详解SMS下OSD2008

百忙有闲来和大家分享一下接着上篇的SMS的一个应用—OSD&#xff0c;长话短说&#xff0c;开始吧&#xff01;老规矩&#xff0c;先看看拓扑图在来构思下要做的步骤&#xff0c;一 、SMS-OSD前的装备工作 二 、安装OSD组件 三 、创建捕获光盘 四 、捕获模板系统镜像 五 、创建、…

一文读懂 | 进程怎么绑定 CPU

昨天在群里有朋友问&#xff1a;把进程绑定到某个 CPU 上运行是怎么实现的。首先&#xff0c;我们先来了解下将进程与 CPU 进行绑定的好处。进程绑定 CPU 的好处&#xff1a;在多核 CPU 结构中&#xff0c;每个核心有各自的L1、L2缓存&#xff0c;而L3缓存是共用的。如果一个进…