地狱之下 · 元素系统 VS Code 插件
为 Typst 正文(#元素 / #设定元素)提供元素系统支持。
功能
- 元素管理面板(右侧栏):表格浏览全部元素,状态徽标区分 孤儿 / 未定义 / 重复定义;元素名可直接改(全局改名,同步文档引用与 CSV),系统名词可直接编辑写回
元素系统.csv;顶部一键 补全 / 清理 / 排序 / 刷新。
- 悬停:把光标停在元素引用上,显示该元素在
元素系统.csv 里的各系统名词。
- 跳转定义:从引用跳转到
#设定元素 定义处(Cmd+点击 / F12)。
- 语义高亮:元素 id 以语义 token 高亮区分。
- 诊断:
#设定元素 重复定义、元素未被 CSV 收录,实时标红。
- 命令(
快捷键 或命令面板):
元素:扫描诊断 —— 列出缺失 / 重复定义
元素:补全缺失到CSV —— 把文档出现却未收录的 id 追加进 元素系统.csv
元素:清理CSV孤儿 —— 删除 CSV 中有、文档已不再引用的元素
元素:按文档顺序排序CSV —— 按 #设定元素 定义顺序重排 CSV
元素:重命名ID —— 批量改 id:同步替换文档引用、静态标签、交叉引用与 CSV
元素:刷新缓存 —— 手动重建索引
配置
| 键 |
默认 |
说明 |
underhell.elements.dir |
空 |
待扫描的 .typ 根目录(绝对路径或相对工作区根)。留空则自动探测:找含 文档/ 的祖先并用其下 文档/,否则用工作区根 |
underhell.elements.csv |
空 |
元素系统.csv 路径(绝对路径或相对工作区根)。留空则依序试 <dir>/元素系统.csv、<dir>/附件/元素系统.csv |
不依赖 UnderHell 的目录布局:任意 Typst 项目设好这两项即可使用。改配置后即时生效,无需重载窗口。
开发
npm install # 装依赖
npm run compile # 编译到 out/
F5 # 在 Extension Development Host 里调试
编译安装
npm install # 装依赖
npm run compile # 编译到 out/
npm run package # 打包出 .vsix
VS Code 扩展面板(⌘⇧X) → 右上角 … → Install from VSIX… → 选生成的 .vsix → 重载窗口。
要求 VS Code 1.88+(右侧栏)。核心逻辑在 src/element-core.ts,是与旧的 元素工具.py 等价的 TypeScript 重写;src/parse.ts 负责带位置的解析,其余为插件的 VS Code 集成层。
| |