Configuration Specification
Status
- Type: Normative
- Stability: Draft
Goals
- Minimal configuration for typical users
- Explicit control for engine runner and parsing behavior
- Reproducible builds and diagnostics
Configuration Layers
Configuration MAY be sourced from:
- VS Code settings (primary)
- workspace config file (optional; future)
- defaults
Precedence (highest first):
- explicit command parameters
- VS Code settings
- workspace file
- defaults
Key Settings (proposed)
Project / Workspace
ferrotex.project.roots: string[] (optional override)ferrotex.project.entrypoints: string[] (optional; e.g.,main.tex)ferrotex.project.enableMultiProject: boolean
TeX Path Resolution
ferrotex.paths.mode:workspace | env | kpsewhichferrotex.paths.texInputs: string[] (optional; used inenvmode)ferrotex.paths.kpsewhich.enable: booleanferrotex.paths.kpsewhich.timeoutMs: number
Source Parsing
ferrotex.source.enable: booleanferrotex.source.incremental: booleanferrotex.source.maxDocumentSizeBytes: number
Indexing
ferrotex.index.enable: booleanferrotex.index.labels: booleanferrotex.index.citations: booleanferrotex.index.bibliography: booleanferrotex.index.workspaceSymbols: boolean
Completion
ferrotex.completion.enable: booleanferrotex.completion.commands: booleanferrotex.completion.environments: booleanferrotex.completion.labels: booleanferrotex.completion.citations: booleanferrotex.completion.paths: boolean
Semantic Tokens
ferrotex.semanticTokens.enable: boolean
Formatting
ferrotex.format.enable: booleanferrotex.format.indentSize: numberferrotex.format.preserveMath: booleanferrotex.format.preserveComments: boolean
Engine
ferrotex.engine.mode:latexmk | tectonic | directferrotex.engine.command: string (fordirect)ferrotex.engine.args: string[]ferrotex.engine.workingDirectory: string
Export / Build Outputs
ferrotex.build.target:pdf | dvi | ps | html | svgferrotex.build.outputDirectory: string (optional)-
ferrotex.build.openAfterBuild: boolean ferrotex.build.html.tool:make4ht | tex4ht | latexml | lwarp(optional)ferrotex.build.svg.tool:dvisvgm | pdf2svg(optional)
Build Orchestration
ferrotex.build.mode:latexmk | pipelineferrotex.build.maxReruns: numberferrotex.build.bibliography.tool:biber | bibtex(optional)ferrotex.build.index.tool:makeindex | xindy(optional)
SyncTeX / PDF Workflow
ferrotex.synctex.enable: booleanferrotex.synctex.inverseSearch.enable: booleanferrotex.pdf.viewer:vscode | system | customferrotex.pdf.viewer.command: string (forcustom)
Log Ingestion
ferrotex.log.source:file | stdout | bothferrotex.log.path: string (optional)ferrotex.log.follow: boolean
Parser
ferrotex.parser.maxJoinLines: numberferrotex.parser.confidenceThreshold: numberferrotex.parser.maxFileStackDepth: number
Diagnostics
ferrotex.diagnostics.publishInterim: booleanferrotex.diagnostics.includeProvenance: boolean
Compatibility
Configuration keys MUST be versioned and changes documented.