目的
tsserver(TypeScript コンパイラ)の言語機能を段階的に Rust Language Host で置き換え、最終的に tsserver を廃止する。
背景
Phase 0-5 で tree-sitter ベースの構文機能(documentSymbol/foldingRange/hover/definition/references/documentHighlights)を実装済み。ただし tree-sitter は構文解析のみで、型推論・型チェック(tsserver の中核)は未実装。
スコープ(数年規模)
Phase 9: 型注釈の活用
- hover の型表示(変数の型_annotation から型を抽出)
- completion の基礎(スコープ内の宣言を候補)
- signature help
Phase 10: tsserver 置き換え(opt-in)
- 新設定
coderm.languageHost.tsserverReplacement(default off)
- 各 language feature を feature flag(
coderm.languageHost.tsFeatures.<feature>)で段階的に Rust に切り替え
- tsserver は未対応機能のフォールバックとして残存
Phase 11: EH kind 分割の最適化(オプション)
- Phase 7-10 で Language Host が負荷を担うことを確認後、RPCProtocol を Coderm wire プロトコルに置き換え
- 拡張 API を Rust で再実装する可能性も検討
技術的課題
- TypeScript の型システム完全実装は tsserver と同等の規模(TypeScript コンパイラ全体)
- 段階的アプローチ: tree-sitter(構文)→ 型注釈(意味の一部)→ 型推論(完全な意味解析)
- cross-file 解析(project-aware、workspace file graph)が必要
依存
目的
tsserver(TypeScript コンパイラ)の言語機能を段階的に Rust Language Host で置き換え、最終的に tsserver を廃止する。
背景
Phase 0-5 で tree-sitter ベースの構文機能(documentSymbol/foldingRange/hover/definition/references/documentHighlights)を実装済み。ただし tree-sitter は構文解析のみで、型推論・型チェック(tsserver の中核)は未実装。
スコープ(数年規模)
Phase 9: 型注釈の活用
Phase 10: tsserver 置き換え(opt-in)
coderm.languageHost.tsserverReplacement(default off)coderm.languageHost.tsFeatures.<feature>)で段階的に Rust に切り替えPhase 11: EH kind 分割の最適化(オプション)
技術的課題
依存