[CodeGraph] 这样的代码可视化插件, 是你想要的吗?

95 天前
 yanyin070321

介绍

不知道大家在看代码的时候是否有过这样的困扰?

  1. 看代码的时候忘记从哪里跳转过来的? 也不知道看了哪些部分? 需要反反复复倒退几遍才能有点印象
  2. 分析复杂函数时, 需要仔细浏览一遍代码才能找到关键调用链路?
  3. 当查看方法被哪些函数调用时, 好不容易把所有调用关系点了一遍, 发现还是脑子很乱, 还得再来一遍?

为了解决上述这些困扰, 我开发了一款名为 code graph 的 jetbrains 插件, 可以实现将代码之间的调用关系可视化, 帮助我们更快更简单的阅读和理解代码.

Features

关键特性:

  1. 代码和图双向联动. 在代码中跳转时, 调用图会自动联动, 反之依然. 在不破坏大家阅读代码习惯的基础上提供了可视化的能力.
  2. 代码访问路径高亮. 所有点击过的代码会在调用图中高亮显示, 让大家可以清晰的观察到哪些看过了哪些没看过.
  3. 强大的过滤能力. 帮助大家快速过滤掉一些大家不关心的节点或者是边, 从而让调用图更加清晰明了.

安装

在 Intellij IDEA 的插件市场搜索 “CodeGraph” 即可安装 注意:目前仅支持 2022.3 及之后的版本

用法

找到需要生成调用关系图的方法, 点击鼠标右键, 选择 "Code Graph / Show Callee Graph For 'xxx'".


软件刚刚才发布出来,希望各位老铁们多提一些建议🤗️🤗️🤗️...

2175 次点击
所在节点    程序员
39 条回复
yanyin070321
95 天前
@harrisonkang 现在这个版本在 caller 模式下高亮有点问题, 目前已经修复, 这周会发布第二个小版本
yanyin070321
95 天前
@baskbull 没有层级限制, 只是第一次展示默认只会展开 3 层, 如果要查看更多层, 可以通过节点的“+”按钮展开
yanyin070321
95 天前
@PainAndLove 目前只支持了 intellij, 等功能完善一点我再开始支持其他的 IDE
Nasei
95 天前
我感觉 vs 的就很好,甚至可以 debug 时显示
yanyin070321
95 天前
@forvvvv123 感谢认可, 暂时还来不及弄 golang, 等功能完善一点我再扩展其他的语言🙏
yanyin070321
95 天前
@freefcw 感谢建议
1. 由于采用了自动布局, 所以没有开放拖动功能, 不然会破坏自动布局
3. 可以点击里面的线, 可以跳转到对应的代码行; 点击节点只会跳转到对应的方法
4. 现在这个版本默认会启用自动适应窗口大小, 导致默认情况下字体很小, 下个版本就没有这个问题了
yanyin070321
95 天前
@Nasei 老哥, 是哪个插件? 我学习一下
zhangdafoye
95 天前
mark ,导出功能来一波
freefcw
95 天前
@yanyin070321 你说的拖动是指拖动节点吗?

我指的是拖动画布,主要是有时候要去看一部分,整体有时候太多,字又小,不好弄。比如放大了,不能拖动,就只能看到一小部分节点
Scarb
95 天前
这个说白了就是 idea 的 hierarchy 可视化了。其实直接用 ctrl+alt+H 打开 hierarchy 效果也差不多。
建议一个我个人觉得有用的功能,支持隐藏某些方法(右键-隐藏),因为很多方法并不是很重要。隐藏了之后把主链路的方法调用导出,可以作为文章的配图
jorneyr
95 天前
只能说,很牛逼。
yanyin070321
94 天前
@freefcw 有道理,下个版本支持一波
yanyin070321
94 天前
@Scarb 是的,我做的时候发现 intellij 已经有类似的功能了,但是体验了一下,没法完全满足我的预期
ageovb
94 天前
@yanyin070321 #19 强迫症
yanyin070321
94 天前
@stt66 我验证一下有没有兼容性问题吧, 改动不大的话我支持一下
Nasei
94 天前
freemyspace
94 天前
有一款收费的 SequenceDiagram 插件
4ra1n
94 天前
题主是代码层面,我主要做 CLASS 层面,可以看下我的开源项目:

https://github.com/jar-analyzer/jar-analyzer

不过我也想做一下类似的图效果,学习下
yanyin070321
93 天前
@4ra1n 你这个很强, 功能也比较完善了, 我的这个还是一个原型产品

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1062942

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX