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

82 lines
3.8 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.

# Squirrel NUT Explorer 功能说明
## 已实现的功能
### 1. 基础功能
- 通过 pvfUtility API 浏览和编辑 NUT 文件
- 支持连接到本地运行的 pvfUtility 服务
- 自动加载所有 NUT 文件内容
- 支持文件保存和刷新
### 2. 代码自动完成功能
- **基础自动完成**提供关键字、API函数、类、常量的基本自动完成
- **跨文件完成**:能够识别其他已加载的 NUT 文件中定义的函数
- **变量完成**:提供当前文档中已声明的局部变量自动完成
- **点号完成**:支持对象属性和方法的自动完成(如 string.len, array.append 等)
### 3. 悬停信息功能
- **库函数信息显示**:显示内置函数的参数、返回值和描述
- **类信息显示**:显示内置类的方法和属性信息
- **常量信息显示**:显示内置常量的值和描述
- **跨文件自定义函数信息**:显示其他文件中定义的函数的参数和位置信息
### 4. 定义跳转功能
- **跨文件跳转**:支持在所有已加载的 NUT 文件中查找函数定义并跳转
- **多重定义支持**:当存在同名函数时,提供所有可能的定义位置供选择
### 5. 函数签名帮助
- **参数提示**:在函数调用时显示函数的参数列表
- **当前参数高亮**:高亮显示当前正在输入的参数
- **内置函数支持**:支持内置函数的签名帮助
- **自定义函数支持**:支持用户定义函数的签名帮助
### 6. 输入时格式化
- **括号触发格式化**:输入 ")" 时格式化当前行
- **分号触发格式化**:输入 ";" 时格式化当前行
- **大括号触发格式化**:输入 "}" 时格式化整个代码块
- **Squirrel语法优化**针对Squirrel语言特性进行格式化优化
### 7. 代码格式化
- **缩进标准化**:统一代码缩进风格
- **空格规范化**:在操作符周围添加适当空格
- **换行管理**:合理安排代码换行
- **括号处理**:自动调整大括号位置和缩进
### 8. 代码错误检测
- **语法错误检测**:检测常见的语法错误,如拼写错误的关键字
- **未闭合字符串检测**:检测未正确闭合的字符串
- **未闭合括号检测**:检测未正确闭合的括号
- **逻辑错误提示**:提示可能的逻辑错误,如在条件语句中使用赋值操作符
- **快速修复**:提供拼写错误的快速修复功能
### 9. API文档解析
- **内置函数文档**解析和管理Squirrel语言的内置函数文档
- **类文档**:解析和管理内置类的文档
- **常量文档**:解析和管理内置常量的文档
- **动态生成**:根据文档动态生成自动完成项和悬停信息
### 10. 语法定义支持
- **语法高亮**:支持关键字、字符串、注释、数字、操作符等的语法高亮
- **代码折叠**:支持基于大括号的代码折叠
- **自动闭合**:支持括号、引号的自动闭合
- **智能缩进**:根据代码结构自动调整缩进
## 缓存机制
- **函数缓存**:缓存所有已解析的函数信息,提高性能
- **持久化缓存**在整个VS Code会话期间保持缓存有效
- **增量更新**:在保存文件时自动更新对应文件的缓存
- **重复函数处理**:正确处理同名函数,提供所有定义位置供选择
## 性能优化
- **批量处理**:文件按批次处理,避免内存溢出
- **并行处理**:批次内的文件并行处理,提高效率
- **增量更新**:仅在文件保存时更新对应文件的缓存
- **防重复提取**:防止同时进行多次提取操作
- **性能监控**:监控提取性能,为优化提供数据支持
## 使用方法
1. 确保 pvfUtility 服务正在运行
2. 在 VS Code 中打开 Squirrel NUT Explorer
3. 点击"连接到 pvfUtility"按钮
4. 连接成功后,所有功能将自动启用
5. 编辑和保存文件时,相关缓存会自动更新