CodeGraph:把代码变成可查询图谱
开源工具 · 代码分析 · 图数据库 📌 **开源地址:**github.com/colbymchenry/codegraph(⭐ 971 Stars) 📜 **语言:**Python 🏷️ **标签:**code-analysis · dependency-graph · tree-sitter · Neo4j ⚠️ **状态:**Pre-alpha(开发中,欢迎尝鲜) 你有没有过这种经历? 入职第一天,前辈丢给你一个 10 万行 的项目源码,说:“先熟悉一下代码。” 你打开文件夹,几百个文件、几千个函数,谁调谁、谁依赖谁、改一处会不会崩十处——完全看不懂。 又或者你在做 Code Review,看到一个函数 processData() 被改了,你想知道:“还有哪些地方在调用它?改了会不会影响其他模块?” 传统的解决方案是全局搜索 + 人工梳理,费时费力还容易漏。要是能把整个代码库变成一张「关系网」,点点鼠标就能查到所有调用链,那该多好? 💡 **这就是 CodeGraph 想做的事:**把你的代码解析成一张可查询的图谱,函数、文件、类型是「节点」,调用、导入、包含关系是「边」。用图数据库的强大查询能力,秒级回答各种代码关系问题。 CodeGraph 是一个基于图数据库的代码分析工具。它能把你的代码仓库(Python、C、C++、Go、JavaScript)解析成结构化的图谱数据,存入 Neo4j 图数据库,然后通过 REST API 进行高效查询。 它能回答这些问题: 哪些函数调用了 foo? foo 又调用了哪些函数? 函数的完整「调用树」是什么?(递归展开) 谁使用了 foo 的返回值? foo 的定义在哪里?在哪些地方被调用? 哪些文件导入了 foo? foo 的类型是什么?还有哪些函数是同一类型? 三、核心能力详解 🌐 多语言支持 基于 tree-sitter 解析引擎(和 Neovim、Helix 等编辑器用的是同一个),统一支持 5 种主流语言: 语言解析器状态Pythontree-sitter-python✅Ctree-sitter-c✅C++tree-sitter-cpp✅Gotree-sitter-go✅JavaScripttree-sitter-javascript✅ ...