Project Model Specification
Status
- Type: Normative
- Stability: Draft
Purpose
Define how FerroTeX models a LaTeX workspace:
- workspace roots
- file classification
- include graph
- entrypoints
- configuration resolution
Workspace Roots
A workspace may contain:
- one or more root folders
- multiple independent LaTeX projects
The server MUST:
- detect candidate project roots
- allow user configuration to override detection
File Classification
FerroTeX distinguishes:
- source:
.tex,.sty,.cls - bibliography:
.bib - auxiliary outputs:
.aux,.toc,.bbl, etc. - assets: images and other included resources
Classification affects indexing and diagnostics.
Entry Points
An entrypoint is a root document used to build include graphs.
Entrypoints may be discovered via:
- configured
main.tex - heuristics (presence of
\\documentclass) - build runner configuration
Include Graph
The include graph is a directed graph:
- nodes are file URIs
- edges represent inclusion via:
\\input{...}\\include{...}\\subfile{...}(best-effort)
Resolution Rules
Path resolution is engine-like but conservative:
- resolve relative to including file directory
- respect configured
TEXINPUTSwhere possible (optional) - try extension inference (
.tex) when omitted
Cycles
Cycles are possible (user error).
- detect cycles
- emit diagnostics and stop expanding the cycle
Multi-Project Workspaces
If multiple entrypoints exist:
- maintain separate project graphs
- expose project selection in configuration
Outputs and Derived Files
The project model MAY track:
- expected output PDF
- log file location
- auxiliary file locations
These are primarily used by build observability and UX.