1.0.0 初始版

This commit is contained in:
睿 安
2025-09-17 10:54:25 +08:00
commit dc0cbe71dc
315 changed files with 528712 additions and 0 deletions

108
CLAUDE.md Normal file
View File

@@ -0,0 +1,108 @@
# 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. **中文支持**: 项目主要使用中文界面和注释,保持代码注释的语言一致性