# go-codegraph **Repository Path**: kingecg/go-codegraph ## Basic Information - **Project Name**: go-codegraph - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-07 - **Last Updated**: 2026-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go-CodeGraph Go-CodeGraph 是一个基于 Go 语言开发的代码分析与可视化工具。该工具能够解析代码库中的符号(Symbol)信息,建立代码调用关系图谱,并支持符号追踪功能,帮助开发者更好地理解和分析代码结构。 ## 主要功能 ### 符号解析 - 支持多种编程语言的代码文件解析,提取其中的符号信息 - 能够识别函数、方法、变量、类、接口、类型别名等不同类型的符号 - 基于 tree-sitter 强大的语法解析能力 - 支持语言: Go, JavaScript/JSX, TypeScript/TSX ### 代码索引 - 支持对整个目录进行索引 - 将符号信息持久化存储到本地数据库 - 增量索引能力,快速更新已有索引 ### 符号追踪 - 根据符号名称快速定位其在代码库中的所有引用 - 分析符号的调用关系和使用场景 - 帮助理解代码调用链路 ## 安装方法 ```bash # 克隆项目 git clone https://gitee.com/kingecg/go-codegraph.git cd go-codegraph # 构建项目 go build -o codegraph . # 或直接使用 go run 运行 go run main.go ``` ## 使用方法 ### 索引代码库 对指定目录进行符号索引: ```bash ./codegraph index <目录路径> ``` ### 追踪符号 追踪指定符号在代码库中的引用: ```bash ./codegraph trace <符号名称> ``` ## 项目结构 ``` go-codegraph/ ├── cmd/ # 命令行入口 │ └── root.go # 命令定义与执行 ├── parser/ # 符号解析模块 │ ├── parser.go # 核心抽象与文件分派 │ ├── parser_golang.go # Go 语言解析 │ ├── parser_javascript.go # JavaScript/JSX 解析 │ └── parser_typescript.go # TypeScript/TSX 解析 ├── storage/ # 数据存储模块 │ └── db.go # 数据库操作 ├── main.go # 程序入口 ├── go.mod # Go 模块依赖 ├── test.sh # 测试脚本 └── LICENSE # 开源协议 ``` ## 核心模块说明 ### Parser 模块 负责解析多种语言的源代码文件,提取其中的符号信息。通过 tree-sitter 库进行语法分析,按文件扩展名自动选择对应的语言解析器,识别不同类型的代码元素。支持 Go(函数、方法、类型)、JavaScript/JSX(函数、类、箭头函数、函数表达式)、TypeScript/TSX(函数、类、接口、类型别名)。 ### Storage 模块 使用 SQLite 数据库持久化存储索引的符号信息,提供高效的查询能力,支持符号的保存和检索。 ### CLI 模块 提供命令行交互界面,包含索引命令(index)和追踪命令(trace),便于在终端中快速使用。 ## 技术栈 - **Go 1.x**: 开发语言 - **tree-sitter**: 代码语法解析 (Go / JavaScript / TypeScript) - **SQLite**: 本地数据存储 - **cobra**: CLI 框架 ## 贡献指南 欢迎提交 Issue 和 Pull Request 共同完善本项目。 ## 开源协议 本项目遵循 MIT 开源协议。