VS Code Extension Overview
Purpose
The VS Code extension provides the editor-facing integration for FerroTeX.
The extension is intentionally thin:
- it manages server lifecycle
- it forwards text synchronization events
- it renders diagnostics and UX affordances
Core logic belongs in the Rust server.
Responsibilities
- Server lifecycle
- spawn
ferrotexdper workspace - restart on configuration change when required
- spawn
- Configuration UX
- expose and validate settings
- Commands
- compile
- clean
- open log excerpt
- Language feature UX
- enable and surface LSP-backed features (completion, outline, navigation, formatting)
- surface code actions (quick-fixes) for deprecated-command diagnostics
- present confidence/uncertainty where provided by the server
- Presentation
- show diagnostics and related information
- surface confidence (e.g., “uncertain mapping”)
Non-Responsibilities
- Parsing logs (server responsibility)
- Parsing LaTeX source or maintaining indices (server responsibility)
- Implementing mapping heuristics (server responsibility)
- Maintaining engine-specific logic (server responsibility)
UX Contract (principles)
- Diagnostics must be stable and non-flapping.
- Low-confidence diagnostics should be visually differentiated.
- Users should be able to inspect provenance quickly (log excerpt + file stack).