go-codegraph

command module
v0.0.0-...-d6036ea Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2026 License: MIT Imports: 1 Imported by: 0

README

Go-CodeGraph

Go-CodeGraph 是一个基于 Go 语言开发的代码分析与可视化工具。该工具能够解析代码库中的符号(Symbol)信息,建立代码调用关系图谱,并支持符号追踪功能,帮助开发者更好地理解和分析代码结构。

主要功能

符号解析
  • 支持多种编程语言的代码文件解析,提取其中的符号信息
  • 能够识别函数、方法、变量、类、接口、类型别名等不同类型的符号
  • 基于 tree-sitter 强大的语法解析能力
  • 支持语言: Go, JavaScript/JSX, TypeScript/TSX
代码索引
  • 支持对整个目录进行索引
  • 将符号信息持久化存储到本地数据库
  • 增量索引能力,快速更新已有索引
符号追踪
  • 根据符号名称快速定位其在代码库中的所有引用
  • 分析符号的调用关系和使用场景
  • 帮助理解代码调用链路

安装方法

# 克隆项目
git clone https://gitee.com/kingecg/go-codegraph.git
cd go-codegraph

# 构建项目
go build -o codegraph .

# 或直接使用 go run 运行
go run main.go

使用方法

索引代码库

对指定目录进行符号索引:

./codegraph index <目录路径>
追踪符号

追踪指定符号在代码库中的引用:

./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 开源协议。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL