Shared project configuration schema

July 9, 2026 ยท View on GitHub

Raven and Sight use the same canonical TOML path for settings that represent the same concept. They do not need identical schemas: language-specific settings keep their natural project-specific sections and may have different defaults.

Canonical shared paths

ConceptCanonical TOML path
Workspace exclusionsworkspace.exclude
Diagnostics master switchdiagnostics.enabled
Undefined-variable severitydiagnostics.severity.undefinedVariable
Workspace indexingcrossFile.indexWorkspace
Backward dependency modecrossFile.backwardDependencies
Assumed call sitecrossFile.assumeCallSite
Backward traversal depthcrossFile.maxBackwardDepth
Forward traversal depthcrossFile.maxForwardDepth
Combined traversal depthcrossFile.maxChainDepth
Missing-file severitycrossFile.diagnostics.missingFile
Case-mismatch severitycrossFile.diagnostics.caseMismatch

Canonical keys use camel case. Defaults and accepted values may differ when the underlying languages require different behavior.

Compatibility aliases

Accepted historical and sibling-project paths remain permanent aliases:

ProjectAliasCanonical path
Ravenexcludeworkspace.exclude
Ravendiagnostics.undefinedVariableSeveritydiagnostics.severity.undefinedVariable
RavencrossFile.missingFileSeveritycrossFile.diagnostics.missingFile
RavencrossFile.caseMismatchSeveritycrossFile.diagnostics.caseMismatch
Sightexcludeworkspace.exclude
Sightdiagnostics.undefinedVariableSeveritydiagnostics.severity.undefinedVariable
SightcrossFile.missingFileSeveritycrossFile.diagnostics.missingFile
SightcrossFile.caseMismatchSeveritycrossFile.diagnostics.caseMismatch

When an alias and its canonical path both occur, the canonical value wins and the loader emits a warning. Documentation and generated examples use only the canonical path. A malformed containing section does not disable an otherwise valid alias when the canonical path is absent.

Scope

This contract applies only to genuinely equivalent settings. Raven's [linting], [packages], and [symbols] settings and Sight's formatting, ADO-path, and Stata-specific settings are intentionally outside the shared schema. Similarly named cache and revalidation limits are not shared unless their behavior is also equivalent.