TypeSquirrel

TypeSquirrel 是一个为 Squirrel 脚本提供高级语言体验的 VS Code 扩展,含补全、跳转、诊断、格式化、DocBlock、内联提示等功能。现在已改为通过 PVF 虚拟文件系统扩展 提供的命令进行脚本索引,不再直接扫描本地目录。
索引会在检测到你通过 PVF 扩展打开 Pack(pvf.openPack )后 5 秒自动开始;未打开 PVF 或没有脚本时不会占用资源。

Quickstart
- 安装依赖扩展:
pvf-parser-ts (扩展 ID:local.pvf-parser-ts )。
- 打开命令面板执行:
PVF: Open Pack (或界面按钮 pvf.openPack )。
- 等待 5 秒:TypeSquirrel 自动检测到 PVF 中的
.nut 列表并开始索引。
- 打开任意
.nut 文件即可体验补全 / 悬停 / 跳转 / 诊断。
- 重新加载 PVF 或内容大量变更时,可执行命令:
TypeSquirrel: Full Rescan 或 TypeSquirrel: Rebuild Function Index 。
索引使用临时缓存目录(系统 temp 下 typesquirrel-pvf-cache )。不会写回 PVF 包本身。
Features
核心语言能力:
- IntelliSense:自动补全、成员补全、参数提示、内联类型提示。
- Navigation:跳转定义、符号大纲、引用计数(CodeLens)。
- Diagnostics:语法 / 结构 / DocBlock 缺失等增量分析。
- Formatting:内置 Prettier 规则(括号风格、间距、宽度自定义)。
- DocBlocks:生成、解析与嵌入提示;支持 @param / @return / 自定义标记。
- Hover:显示函数签名、常量值、资源预览(图片/视频)。
- Snippets:常用模式与 DocBlock 模板快速插入。
PVF 集成:
- 虚拟文件索引:通过
pvf.listNutFiles 与 pvf.getNutFileContent 获取内容。
- 增量解析:基于缓存文件 meta 判断是否重新解析。
- Fast 模式:当文件数 ≥ 300 时,前 50 个完整 AST,剩余执行正则快速函数/常量提取。
- Worker 并行:最多 2 个解析线程,含超时与重试机制。
- 延迟启动:仅在 PVF 打开且文件列表非空后 5 秒启动索引,空列表不触发。
Completions
包括:Squirrel 语言关键字、内置函数、标准库、常见模式、DocBlock 补全、片段,以及由已索引脚本解析出的函数与常量符号。
DocBlock Enhancements
详见 web文档 :
- 自动模板:基于函数签名生成参数与返回类型注释。
- 作用域控制:可标记可见性以调节补全曝光(public / protected / private)。
- Getter/Setter:文档化后在补全中呈现属性访问形式。
- 类型覆盖:在缺失或推断不完整时手动指定类型。
- 期望值:参数可附带固定候选值,触发补全列表。
- 片段扩展:DocBlock 也能作为片段复用。
Integration & Commands
- 虚拟文件:支持
pvf scheme 打开与语言功能触发。
- 函数引用:
TypeSquirrel: Show Function References 列出引用位置。
- 重建索引:
TypeSquirrel: Full Rescan / TypeSquirrel: Rebuild Function Index 。
- 诊断刷新:保存或重新索引后自动刷新 Problems。
- 资源预览:悬停图像 / 视频路径即时预览。
- 代码片段:常用结构一键插入。
索引策略
阶段 |
描述 |
预检测 |
轮询 pvf.listNutFiles ,发现非空后排队延迟 5 秒启动 |
准备 |
生成缓存路径 & 增量过滤(30% 进度) |
解析 |
Worker / 主线程 AST 构建(70% 进度) |
快速 |
Fast 模式对剩余文件执行正则扫描 |
完成 |
写入函数/常量索引、诊断补偿刷新 |
空列表:不触发索引、不显示进度;再次打开 Pack 后自动尝试。
缓存
- 位置:系统临时目录
typesquirrel-pvf-cache 。
- 更新:仅写入变化或新增文件。
- 清理:系统层面临时目录管理;必要时可手动删除再 Full Rescan。
增量与 Fast 模式
- 使用文件 stat (size/mtime) + 内部 meta 判断是否需要重新解析。
- 大项目下避免全量 AST 造成阻塞。
Troubleshooting
现象 |
可能原因 |
解决 |
一直未开始索引 |
未安装 / 未激活 pvf-parser-ts |
安装并执行 PVF: Open Pack |
显示 0 文件 |
PVF 包内无 .nut |
确认包内容或重新打包 |
补全缺少某些函数 |
文件未进入重新解析 |
执行 Full Rescan |
诊断迟迟不出现 |
仍在后台解析或补偿刷新未完成 |
等待,或手动切换文件再回来 |
内存偏高 |
大量脚本 + AST 常驻 |
关闭不需要的文件、执行窗口重载 |
Original
https://github.com/Chadnaut/Attract-Mode-Plus-Squirrel
| |