pub struct LspConfig {
pub enabled: bool,
pub auto_detect: bool,
pub servers: HashMap<String, LspServerConfig>,
pub diagnostics_settle_delay_ms: u64,
}Expand description
Controls LSP (Language Server Protocol) integration.
Off by default. 5-7 atomgr datalog (build 942b615): the only diagnostics
call in a 99-turn session took 33.6s (cold rust-analyzer spin-up) and
returned “No diagnostics found”, contributing nothing to task completion.
LSP is also platform/toolchain-specific (rust-analyzer, gopls, etc.) and
pulling those binaries unprompted violates the project’s
tech-stack-neutrality rule. Users who want it can flip enabled = true
in their config.
Fields§
§enabled: boolMaster switch for LSP diagnostics. Off by default — opt-in only.
auto_detect: boolAutomatically detect and start language servers from the built-in
registry. Off by default — even when enabled = true, users must
explicitly opt in to auto-detect (or list specific servers) to
avoid surprising the user with binary spawns.
servers: HashMap<String, LspServerConfig>Custom server configurations keyed by file extension.
diagnostics_settle_delay_ms: u64Time in milliseconds to wait after file sync before reading diagnostics. LSP servers need time to process notifications and publish diagnostics. Larger files or slower servers may need higher values.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for LspConfig
impl<'de> Deserialize<'de> for LspConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for LspConfig
impl RefUnwindSafe for LspConfig
impl Send for LspConfig
impl Sync for LspConfig
impl Unpin for LspConfig
impl UnsafeUnpin for LspConfig
impl UnwindSafe for LspConfig
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