Skip to main content

Config

Struct Config 

Source
pub struct Config {
Show 29 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 search_index: bool, pub semantic_search: bool, pub experimental_bash_rewrite: bool, pub experimental_bash_compress: bool, pub experimental_bash_background: bool, pub max_background_bash_tasks: usize, pub bash_permissions: 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 lsp_auto_install_binaries: HashSet<String>, pub lsp_inflight_installs: HashSet<String>, 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: u32

How many levels of call-graph edges to follow during validation (default: 1).

§checkpoint_ttl_hours: u32

Hours before a checkpoint expires and is eligible for cleanup (default: 24).

§max_symbol_depth: u32

Maximum depth for recursive symbol resolution (default: 10).

§formatter_timeout_secs: u32

Seconds before killing a formatter subprocess (default: 10).

§type_checker_timeout_secs: u32

Seconds before killing a type-checker subprocess (default: 30).

§format_on_edit: bool

Whether 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: bool

Whether to restrict file operations to within project_root (default: false). When true, write-capable commands reject paths outside the project root.

§search_index: bool

Enable the trigram search index (default: false).

§semantic_search: bool

Enable semantic search (default: false).

§experimental_bash_rewrite: bool

Enable experimental bash command rewriting (default: false).

§experimental_bash_compress: bool

Enable experimental bash command compression (default: false).

§experimental_bash_background: bool

Enable experimental bash background execution (default: false).

§max_background_bash_tasks: usize

Maximum number of background bash tasks allowed to run concurrently (default: 8).

§bash_permissions: bool

Enable OpenCode-style bash permission prompts (default: false).

§search_index_max_file_size: u64

Maximum file size to fully index in bytes (default: 1MB).

§max_callgraph_files: usize

Maximum 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: 5_000 (matches measured per-op cost ceilings; raise for very large projects if you accept multi-minute per-call latency).

§semantic: SemanticBackendConfig§experimental_lsp_ty: bool

Enable 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.

§lsp_auto_install_binaries: HashSet<String>

Binary names the hosting plugin knows how to auto-install.

Built-in LSPs discovered from files only emit missing-binary warnings when their binary is in this set. User-configured lsp_servers keep warning unconditionally.

§lsp_inflight_installs: HashSet<String>

Binary names with plugin-managed auto-installs currently in flight.

Missing-binary warnings are suppressed while the install is actively running; install failure reporting is handled by the plugin after the background work settles.

§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: usize

Maximum 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§

Source§

impl Config

Source

pub fn semantic_backend_label(&self) -> &'static str

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more