No description
- Rust 60.4%
- Typst 24.1%
- TypeScript 8.8%
- JavaScript 6.7%
| assets | ||
| crates | ||
| editors/vscode | ||
| tests | ||
| tools/split-suite | ||
| .gitignore | ||
| Cargo.toml | ||
| README.md | ||
ninety — static-first Typst language server
Monorepo layout (tinymist-style):
| 目录 | 内容 |
|---|---|
crates/ninety-core |
分析内核(typst-syntax + holotyp-manifest-schema,不执行 typst) |
crates/ninety-lsp |
LSP 装配(同步 dispatch、特性实现、测试 harness) |
crates/ninety-cli |
ninety stdio 二进制 |
editors/vscode |
VS Code 扩展(LSP + 预览启动) |
assets/ |
内嵌 stock manifest |
tests/corpus/legal |
780 语料零诊断验收集 |
tools/split-suite |
typst tests/suite 切分器 |
ninety-core 通过 path 依赖引用同级 holotyp/crates/holotyp-manifest-schema
(与 fork 的 typst manifest 共用同一套 HT-0001 类型)。单独 clone 本仓库时需要
这个兄弟检出;发布/CI 可改为指向 holotyp 仓库的 git dependency。
Rename 范围
Rename 基于当前文档的 definition/reference 关系,只编辑同一绑定的声明和引用, 并检查修改前后的绑定关系以拒绝名称捕获。支持局部变量、位置参数、循环变量及函数; 导入绑定和命名参数目前拒绝重命名。尚不支持跨文件联动:重命名被其他文件导入的 顶层定义,不会更新其他文件中的导入项或模块字段访问,请勿将其视为工作区级 rename。
开发
cargo test # 全部测试(含 780 语料零诊断)
cargo build -p ninety-cli # LSP 二进制 → target/debug/ninety
cd editors/vscode && pnpm install && pnpm run compile
pnpm dlx @vscode/vsce package --no-dependencies
上游 workspace 的 .vscode/settings.json 已把 ninety.serverPath /
ninety.previewPath 指向本仓库与 holotyp/ 检出的 debug 二进制。