FerroTeX
A high-performance, type-safe LaTeX language platform written in Rust. Industry-standard IDE features meet structured build observability and formal verification.
Pillars of Technical Excellence
FerroTeX is built on four core aspirations that define its commitment to the research community:
Incremental Everything
Keystroke-level feedback with a sub-50ms aspiration for 500-page documents.
Time-Travel Debugging
Reversible macro expansion. Step backward through the TeX stomach to understand state changes.
Why FerroTeX?
Modern LaTeX development deserves modern tooling. FerroTeX bridges the gap between LaTeXβs powerful typesetting and contemporary IDE experiences.
Smart Editing
Code completion, hover documentation, go-to-definition, find references, and intelligent rename refactoring.
Integrated PDF Preview
Built-in PDF viewer with SyncTeX support. Click in the PDF to jump to source, or compile and scroll to your cursor.
Architecture
FerroTeX follows a thin client, thick server architecture. The Rust language server (ferrotexd) handles all analysis, while the VS Code extension provides a minimal UI layer.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β VS Code Extension β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β LSP Client β β PDF Viewer β β SyncTeX / Build UI β β
β ββββββββ¬βββββββ ββββββββ¬βββββββ ββββββββββββββ¬βββββββββββββ β
βββββββββββΌβββββββββββββββββΌβββββββββββββββββββββββΌββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ferrotexd (Rust LSP) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Parser β β Index β β Build Orchestrator β β
β β (rowan) β β (symbols) β β (latexmk) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Quick Start
# Clone the repository
git clone https://github.com/jxoesneon/FerroTeX.git
cd FerroTeX
# Build the language server
cargo build --release -p ferrotexd
# Install the VS Code extension
cd editors/vscode && npm install && npm run compile
Then open VS Code, press F5 to launch the Extension Development Host, and open any .tex file.
Documentation
Architecture
System design, data flow, and component responsibilities.
Specifications
LSP features, diagnostics, SyncTeX, and configuration.
Development
Local setup, testing, benchmarks, and release process.
Research
Evaluation methodology, datasets, and reproducibility.
License
FerroTeX is dual-licensed under Apache-2.0 or MIT at your option.
Made with π¦ by the FerroTeX Contributors