Files
squirrelVsis/CLAUDE.md
2025-09-17 10:54:25 +08:00

108 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Squirrel NUT Explorer 是一个 VS Code 扩展,用于通过 pvfUtility API 浏览和编辑 NUT (Squirrel 脚本) 文件。扩展提供了完整的语言支持功能,包括代码自动完成、悬停信息、定义跳转、函数签名帮助、代码格式化和错误检测。
## 构建命令
```bash
# 安装依赖
npm install
# 编译 TypeScript
npm run compile
# 监视模式编译
npm run watch
# 构建项目
npm run build
# VS Code 发布前构建
npm run vscode:prepublish
```
## 项目架构
### 核心组件
- **extension.ts**: 扩展入口点,注册所有提供者和命令
- **model/FileModel.ts**: 文件数据模型,管理文件状态和内容
- **provider/FileProvider.ts**: 树形视图提供者,管理文件列表显示
- **fileSystemProvider/SquirrelFileSystemProvider.ts**: 文件系统提供者,处理文件读写
### 语言功能提供者 (src/providers/)
- **completionProvider.ts**: 代码自动完成,包括基础完成和点号完成
- **hoverProvider.ts**: 悬停信息显示,显示函数、类、常量的文档
- **definitionProvider.ts**: 定义跳转,支持跨文件函数定义查找
- **signatureHelpProvider.ts**: 函数签名帮助,显示参数列表
- **onTypeFormattingProvider.ts**: 输入时格式化,在特定字符输入时触发格式化
- **documentFormattingProvider.ts**: 文档范围格式化
- **codeErrorProvider.ts**: 代码错误检测,包括语法检查和快速修复
### 核心功能模块
- **functionExtractor/FunctionExtractor.ts**: 函数提取器,解析 NUT 文件中的函数定义
- **functionExtractor/CacheManager.ts**: 缓存管理器,管理函数和文档的缓存
- **api/pvfUtilityApi.ts**: pvfUtility API 客户端,处理与后端服务的通信
- **utils/jsBeautifyManager.ts**: JS 美化管理器,处理代码格式化
- **utils/StringDetector.ts**: 字符串检测器,处理字符串边界检测
## 文件结构
```
src/
├── extension.ts # 扩展入口点
├── model/
│ └── FileModel.ts # 文件数据模型
├── provider/
│ └── FileProvider.ts # 树形视图提供者
├── fileSystemProvider/
│ └── SquirrelFileSystemProvider.ts # 文件系统提供者
├── providers/ # 语言功能提供者
│ ├── completionProvider.ts
│ ├── hoverProvider.ts
│ ├── definitionProvider.ts
│ ├── signatureHelpProvider.ts
│ ├── onTypeFormattingProvider.ts
│ ├── documentFormattingProvider.ts
│ └── codeErrorProvider.ts
├── functionExtractor/ # 函数提取和缓存
│ ├── FunctionExtractor.ts
│ └── CacheManager.ts
├── api/
│ └── pvfUtilityApi.ts # API 客户端
├── utils/ # 工具模块
│ ├── jsBeautifyManager.ts
│ └── StringDetector.ts
└── data/ # 静态数据
├── squirrelApiData.ts # Squirrel API 数据
└── constantData.ts # 常量数据
```
## 关键依赖
- **VS Code API**: 扩展开发的基础 API
- **TypeScript**: 项目开发语言
- **js-beautify**: 代码格式化库
- **pvfUtility API**: 后端服务 API用于文件操作
## 配置项
扩展提供以下配置项:
- `squirrel.api.baseUrl`: pvfUtility API 基础 URL (默认: http://localhost)
- `squirrel.api.port`: pvfUtility API 端口 (默认: 27000)
- `squirrel.defaultDirectory`: 默认浏览目录 (默认: sqr)
- `squirrel.nutEncoding`: NUT 文件编码 (默认: UTF8)
## 开发注意事项
1. **缓存机制**: FunctionExtractor 使用缓存机制提高性能,文件保存时会更新对应缓存
2. **批量处理**: 文件按批次处理,避免内存溢出和阻塞
3. **错误处理**: 所有 API 调用都有异常处理,确保扩展稳定性
4. **中文支持**: 项目主要使用中文界面和注释,保持代码注释的语言一致性