2.2 KiB
2.2 KiB
函数提取和缓存功能说明
功能概述
本项目新增了函数提取和缓存功能,用于从nut文件中提取函数信息并进行缓存,为后续的函数跳转功能做准备。
主要组件
1. FunctionInfo 接口
定义了函数信息的数据结构:
name: 函数名称filePath: 文件路径lineNumber: 行号parameters: 参数列表signature: 函数签名
2. FunctionCacheManager 类
负责管理函数信息的缓存:
- 缓存函数信息
- 提供函数查找功能
- 统计缓存信息
- 缓存在VS Code会话期间一直有效,直到重新获取nut文件时重置
3. FunctionExtractor 类
负责从文件中提取函数信息:
- 解析Squirrel语言的函数定义
- 批量处理文件
- 防止重复提取
- 性能监控
4. PerformanceMonitor 类
监控函数提取的性能:
- 记录提取时间
- 计算平均处理时间
- 提供性能统计信息
工作流程
- 用户点击"连接到 pvfUtility"时,系统自动获取所有nut文件内容
- 连接成功后,自动启动函数提取过程
- FunctionExtractor逐个解析文件中的函数定义
- 提取的函数信息被缓存到FunctionCacheManager中
- 缓存在VS Code会话期间一直有效
- 当用户保存nut文件时,自动更新对应文件的函数缓存
- 性能数据被记录用于优化
性能优化措施
- 批量处理: 文件按批次处理,避免内存溢出
- 并行处理: 批次内的文件并行处理,提高效率
- 缓存机制: 避免重复解析已处理的文件
- 增量更新: 仅在文件保存时更新对应文件的缓存
- 防重复提取: 防止同时进行多次提取操作
- 性能监控: 监控提取性能,为优化提供数据支持
使用方法
- 函数提取功能在用户连接到pvfUtility后自动执行,无需手动操作。
- 当用户保存nut文件时,对应的函数缓存会自动更新。
- 缓存在整个VS Code会话期间一直有效,直到重新获取nut文件时重置。
后续开发
当前实现为函数跳转功能奠定了基础,下一步可以:
- 实现函数跳转到定义功能
- 添加函数引用查找功能
- 提供函数自动补全功能