🚀 UnrealCodeAnalyzer
UnrealCodeAnalyzer 是一款多功能工具链,可对 Unreal Engine 和自定义代码库进行全面分析。它提供了丰富强大的分析工具,如代码搜索、API 文档生成、子系统分析等,能有效提升代码分析和管理的效率。
🚀 快速开始
- 安装工具:克隆项目仓库并安装依赖。
git clone https://github.com/yourusername/unreal-code-analyzer.git
cd unreal-code-analyzer
npm install
- 初始化配置(可选):创建
config.json
文件以指定代码库路径和其他选项。
- 运行基本分析:
node index.js --analyze-classes AActor,APawn
✨ 主要特性
- 自动解析:支持从 Unreal Engine 到自定义 C++ 代码库的全栈分析。
- 智能搜索:集成 Tree - sitter 解析器,提供精准的代码结构分析和搜索功能。
- 文档生成:从源码注释中提取信息,自动生成详细的 API 文档。
- 模式匹配:支持正则表达式搜索、语法高亮以及复杂的文件匹配规则。
- 子系统分析:对 Unreal Engine 的核心子系统进行全面剖析。
📦 安装指南
- 克隆项目仓库:
git clone https://github.com/yourusername/unreal-code-analyzer.git
cd unreal-code-analyzer
- 安装依赖:
npm install
- 初始化配置(可选):创建
config.json
文件以指定代码库路径和其他选项。
💻 使用示例
基础用法
分析 Unreal Engine 或自定义代码库
const analyzer = new UnrealCodeAnalyzer({
codebasePath: '/path/to/unreal/engine',
verbose: true,
modules: ['Physics', 'Rendering']
});
自动生成 API 文档
const docGenerator = new DocumentationGenerator(analyzer);
docGenerator.generate('/path/to/output/docs');
语法分析器
const parser = new CodeParser();
parser.parseFile('/path/to/source/file.cpp');
类分析工具
const classAnalysis = analyzer.analyzeClass('AMyActor');
代码搜索工具
const searchResults = analyzer.searchCode({
query: 'UE4.*_STRUCT',
options: {
caseSensitive: true,
regex: false
}
});
物理子系统分析
const physicsSubsystem = analyzer.analyzeSubsystem('Physics');
使用正则表达式搜索
const regexSearch = analyzer.searchWithRegex(/\bUE4_\w+_STRUCT\b/g);
单元测试
test('应正确分析 Actor 类', () => {
const analyzer = new UnrealCodeAnalyzer({ codebasePath: '/' });
const result = analyzer.analyzeClass('AActor');
expect(result.hierarchy).toContain('AActor');
});
高级用法
文档生成 - 简单用法
node docs/generate.js --path /path/to/engine --output ./docs
文档生成 - 高级配置
在 package.json
中添加以下内容:
{
"scripts": {
"generate-docs": "doc-generator --config config.json"
}
}
命令行工具 - 快速运行
node src/index.js --help
命令行工具 - 分析命令
node src/index.js --analyze AMyActor,AMyOtherActor
📚 详细文档
常见问题
- Q: 如何指定自定义代码库?
- A: 在
config.json
中添加 customCodebasePath
属性,或在初始化时通过选项传递。
错误处理
常见错误及解决方案
- 未指定代码库路径
- 问题: 在初始化时未提供
codebasePath
。
- 解决: 添加
codebasePath
到配置文件或直接传递给构造函数。
- 模块不存在
- 问题: 尝试分析的类、子系统或模块不存在。
- 解决: 确保提供的名称正确无误,或者参考文档中的可用选项。
性能考虑
优化建议
- 多线程支持:利用多核处理器加速代码解析和搜索操作。
- 内存管理:对于大型项目,确保有足够的内存以避免性能瓶颈。
贡献指南
如何贡献代码
- Fork 仓库
- 提交改进
- 创建 Pull Request
我们欢迎任何形式的贡献,包括功能增强、bug 修复和文档更新。
学习资源
推荐以下学习资料以深入理解 Unreal Engine 的内部机制:
- Unreal Engine 官方文档
- UE4 教程合集
- 游戏开发基础知识
最佳实践
- 配置日志记录:建议在生产环境中启用详细日志以方便调试。
- 模块化分析:针对大型项目,分模块进行代码分析可以提高效率。
🔧 技术细节
项目结构
unreal-code-analyzer/
├── src/ # 源代码目录
│ ├── Analyzer.js # 主分析器类
│ ├── CodeParser.js # 语法解析器
│ └── DocumentationGenerator.js # 文档生成工具
├── docs/ # 文档和示例
├── test/ # 单元测试文件
└── package.json # 项目依赖管理
📄 许可证
本项目遵循 MIT 协议。欢迎 fork 和贡献。