地狱之下 · 元素工具(VS Code 插件)
为 UnderHell / UHTemp 的 Typst 正文(#元素 / #设定元素)提供元素系统支持。
从 UnderHellCodes/程序/vs-code 迁移而来,布局适配 UHTemp 模板(正文在 内容/,数据在 附件/元素系统.csv),并兼容旧的 文档/ 布局。
功能
- 元素管理面板(侧栏):表格浏览全部元素,状态徽标区分 孤儿 / 未定义 / 重复定义;元素名可直接改(全局改名,同步文档引用与 CSV),系统名词可直接编辑写回
元素系统.csv;顶部一键 补全 / 清理 / 排序 / 刷新。
- 悬停:把光标停在元素引用上,显示该元素在
元素系统.csv 里的各系统名词。
- 跳转定义:从引用跳转到
#设定元素 定义处(Cmd+点击 / F12)。
- 语义高亮:元素 id 以语义 token 高亮区分。
- 诊断:
#设定元素 重复定义、元素未被 CSV 收录,实时标红。
- 命令(命令面板 / 右键菜单):
元素:扫描诊断 —— 列出缺失 / 重复定义
元素:补全缺失到CSV —— 把文档出现却未收录的 id 追加进 元素系统.csv
元素:清理CSV孤儿 —— 删除 CSV 中有、文档已不再引用的元素
元素:按文档顺序排序CSV —— 按 #设定元素 定义顺序重排 CSV
元素:重命名ID —— 批量改 id:同步替换文档引用、静态标签、交叉引用与 CSV
元素:刷新缓存 —— 手动重建索引
布局约定
| 内容 |
路径 |
| 正文 |
<仓库根>/内容/**/*.typ(旧布局为 文档/) |
| 元素系统数据 |
<仓库根>/附件/元素系统.csv(旧布局为 文档/附件/元素系统.csv) |
仓库根 = 工作区内自首个文件夹逐级上溯、第一个含 内容/(或 文档/)的目录。
配置
| 键 |
默认 |
说明 |
uhvs.elements.repoRoot |
空 |
可选覆盖仓库根(含 内容/ 的目录)。留空则从打开的工作区自动探测 |
开发
npm install # 装依赖
npm run compile # 编译到 out/
npm run lint # ESLint
npm test # 运行扩展测试
F5 # 在 Extension Development Host 里调试
编译安装
npm install
npm run compile
npm run package # 打包出 .vsix(vsce)
VS Code 扩展面板 → 右上角 … → Install from VSIX… → 选生成的 .vsix → 重载窗口。
要求 VS Code 1.90+(侧栏视图)。核心逻辑在 src/element-core.ts(与旧的 元素工具.py 等价的 TypeScript 重写);src/parse.ts 负责带位置的解析,src/csv.ts 负责数据模型与布局探测,其余为插件的 VS Code 集成层。
| |