pub struct Config {Show 22 fields
pub project_root: Option<PathBuf>,
pub validation_depth: u32,
pub checkpoint_ttl_hours: u32,
pub max_symbol_depth: u32,
pub formatter_timeout_secs: u32,
pub type_checker_timeout_secs: u32,
pub format_on_edit: bool,
pub validate_on_edit: Option<String>,
pub formatter: HashMap<String, String>,
pub checker: HashMap<String, String>,
pub restrict_to_project_root: bool,
pub experimental_search_index: bool,
pub experimental_semantic_search: bool,
pub search_index_max_file_size: u64,
pub max_callgraph_files: usize,
pub semantic: SemanticBackendConfig,
pub experimental_lsp_ty: bool,
pub lsp_servers: Vec<UserServerDef>,
pub disabled_lsp: HashSet<String>,
pub lsp_paths_extra: Vec<PathBuf>,
pub storage_dir: Option<PathBuf>,
pub diagnostic_cache_size: usize,
}Fields§
§project_root: Option<PathBuf>Root directory of the project being analyzed. None if not scoped.
validation_depth: u32How many levels of call-graph edges to follow during validation (default: 1).
checkpoint_ttl_hours: u32Hours before a checkpoint expires and is eligible for cleanup (default: 24).
max_symbol_depth: u32Maximum depth for recursive symbol resolution (default: 10).
formatter_timeout_secs: u32Seconds before killing a formatter subprocess (default: 10).
type_checker_timeout_secs: u32Seconds before killing a type-checker subprocess (default: 30).
format_on_edit: boolWhether to auto-format files after edits (default: true).
validate_on_edit: Option<String>Whether to auto-validate files after edits (default: false). When “syntax”, only tree-sitter parse check. When “full”, runs type checker.
formatter: HashMap<String, String>Per-language formatter overrides. Keys: “typescript”, “python”, “rust”, “go”. Values: “biome”, “prettier”, “deno”, “ruff”, “black”, “rustfmt”, “goimports”, “gofmt”, “none”.
checker: HashMap<String, String>Per-language type checker overrides. Keys: “typescript”, “python”, “rust”, “go”. Values: “tsc”, “biome”, “pyright”, “ruff”, “cargo”, “go”, “staticcheck”, “none”.
restrict_to_project_root: boolWhether to restrict file operations to within project_root (default: false).
When true, write-capable commands reject paths outside the project root.
experimental_search_index: boolEnable the experimental trigram search index (default: false).
experimental_semantic_search: boolEnable the experimental semantic search index (default: false).
search_index_max_file_size: u64Maximum file size to fully index in bytes (default: 1MB).
max_callgraph_files: usizeMaximum number of source files allowed for call-graph operations
(callers, trace_to, trace_data, impact). When a project
exceeds this count the reverse index is not built and those
commands return a project_too_large error. Does not affect
grep, glob, read, edit, or other non-callgraph features.
Default: 20_000 (covers typical monorepos; rejects OS-wide roots).
semantic: SemanticBackendConfig§experimental_lsp_ty: boolEnable Astral ty as an experimental Python LSP server (default: false).
lsp_servers: Vec<UserServerDef>User-defined LSP servers registered by the OpenCode plugin.
disabled_lsp: HashSet<String>Lowercase LSP server IDs disabled by user config.
lsp_paths_extra: Vec<PathBuf>Extra directories to search when resolving LSP binaries.
The plugin populates these from its own auto-install cache (e.g.
~/.cache/aft/lsp-packages/<pkg>/node_modules/.bin/) so a binary AFT
installed itself is discoverable without needing it on PATH.
Resolution order: <project_root>/node_modules/.bin/<bin> →
lsp_paths_extra/<bin> (in order) → PATH via which.
storage_dir: Option<PathBuf>Persistent storage directory for indexes (trigram, semantic). Set by the plugin to the XDG-compliant path (e.g. ~/.local/share/opencode/storage/plugin/aft/). Falls back to ~/.cache/aft/ if not set.
diagnostic_cache_size: usizeMaximum number of (server, file) entries kept in the in-memory diagnostic cache. Older entries are evicted in LRU order when the cap is exceeded. Set to 0 to disable the cap entirely. Default: 5000 (covers very large monorepos with bounded memory).
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more