看代码的利器-sourceseek插件

SourceSeek是一款VSCode插件,用于C/C++代码的浏览,跳转,利用cscope和ctags建立索引数据库,搜索很快。vscode自带cpp插件不建数据库,找符号是临时搜索,对于大项目很慢,在服务器上远程使用可能会把CPU资源全占掉,造成别人登录非常卡顿。

另外和clangd这样的插件相比,不需要通过编译,有编译错误也没关系。

另外还提供了强大的历史符号浏览记录功能,能够把浏览的函数调用栈记录下来,保存在文件中,下次再加载,查看相关函数就非常方便了。

对于linux内核这样复杂的代码,一个符号可能有很多定义,也有不同通过函数指针的定义,可以手动建立函数调用关系链接,下次再看的时候,就不用再一个一个找了,也可以把记录文件分享给别人。

并且支持导入linux内核autoconf.h这样的宏定义文件,在显示代码的时候,如果没有被宏激活的代码,将会显示会灰色。内置的cscope/ctags也支持导入宏定义,在创建索引库的时候,跳过未被宏激活的代码。

可以在应用市场搜SourceSeek安装。

功能介绍:

建立数据库

打开一个目录,第一次搜索时会自动建立cscope/ctags数据库,也可以自已通过命令行提前生成

cscope -Rcbqk或先建立cscope.files文件, 再cscope -cbqk

ctags --fields=+i -Rno

插件包里自带windows/linux的cscope/ctags/readtags命令,linux版本可能和所用的发行版不一致,可以在设置里修改。

Outline窗口:

显示文件中的函数结构等,并且可以切换只显示函数

Jump

Go to Definition菜单 F12或 Ctrl+Click 一个符号

跳转到定义处,如果有多个,显示一个插入式窗口

Go to Reference

跳转到引用处,如果有多个,显示一个插入式窗口

Call Hierarchy窗口

All reference窗口

预览

鼠标悬停在符号上时,在右边窗口显示改符号的定义

也可以设置成悬浮窗口预览,除了函数,结构,宏定义等默认通过悬浮窗口预览,函数在右边编辑窗口预览,可以在状态栏菜单中设置函数也用悬浮窗口预览。

宏识别与低亮显示

内置的ctags和cscope修改增加了导入宏定义文件,例如导入linux kernel编译生成的autoconf.h文件,则没有被宏激活的代码不会生成索引。

另外在编辑器窗口,未激活的代码显示为灰色。

内置的ctags和cscope修改增加了导入宏定义文件,例如导入linux kernel编译生成的autoconf.h文件,则没有被宏激活的代码不会生成索引。

另外在编辑器窗口,未激活的代码显示为灰色。

全局搜索

在上方键入#后面跟符号,可以全workspace搜符号

文本搜索

双击选中一个单词,右键菜单中可以搜索,跳转到搜索窗口

历史记录窗口

历史记录窗口记录跳转定义,Call Hierarchy, reference by所搜索的符号的历史。自动保存在workspace目录,下次加载,自动把历史记录加载进来。

也可以通过按钮保存到文件和从文件加载。

可以过滤只显示函数。

对于符号定义,如果某个符号有多个定义,会在子节点中显示

对于符号调用链,在CALLERS OF窗口中一层一层显示某一个调用链,在历史记录中会以子节点记录下来。某一个调用链可以拷贝到剪贴板上。

手动建立调用关系

在某些函数指针调用,或者多层的调用,想省去中间调用过程,直接调到关键函数,可以手动建立函数调用链接。

通过双击定义处函数名符号,弹出菜单(Link Caller/Mark Definition), 点击以后,弹出菜单,可以选择调用点,或者取消菜单,可以标记一个定义,供Link Definition的时候选择。

通过双击定义处函数名符号,弹出菜单(Link Definition/Mark Caller), 点击以后,弹出菜单,可以选择函数名,或者取消菜单,可以标记一个调用点,供Link Caller的时候选择。

弹出菜单,除了标记的函数,菜单也会显示历史记录中的函数名供选择

可以右键菜单显示建立的调用关系

在下方OUTPUT窗口显示

在call Hierachy中可以显示手动建立的调用关系,F12也可以跳转到手动建立的函数中。

在项目的workspace中自动保存这个项目的函数指针map, 每次打开,自动加载。

状态栏快速设置

点击状态栏CodeSeek,显示几个切换开关

1.使能鼠标悬停预览

2.使用同一个tab打开预览文件还是新文件新开一个tab

3.悬停符号是否加入历史

4.是否用右侧窗口预览还是悬停tips预览

5.是否显示cscope/ctags/readtags命令行。

命令

cscope/ctags/readtags三个命令的Windows版本和Linux版本已预置在插件中。

可以配置使用系统自带命令,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值