pub struct WriteResult {
pub syntax_valid: Option<bool>,
pub formatted: bool,
pub format_skipped_reason: Option<String>,
pub validate_requested: bool,
pub validation_errors: Vec<ValidationError>,
pub validate_skipped_reason: Option<String>,
pub lsp_outcome: Option<PostEditWaitOutcome>,
}Expand description
Result of the write → format → validate pipeline.
Returned by write_format_validate to give callers a single struct
with all post-write signals for the response JSON.
Fields§
§syntax_valid: Option<bool>Whether tree-sitter syntax validation passed. None if unsupported language.
formatted: boolWhether the file was auto-formatted.
format_skipped_reason: Option<String>Why formatting was skipped, if it was. Values: “unsupported_language”, “no_formatter_configured”, “formatter_not_installed”, “timeout”, “error”.
validate_requested: boolWhether full validation was requested (controls whether validation_errors is included in response).
validation_errors: Vec<ValidationError>Structured type-checker errors (only populated when validate:“full” is requested).
validate_skipped_reason: Option<String>Why validation was skipped, if it was. Values: “unsupported_language”, “no_checker_configured”, “checker_not_installed”, “timeout”, “error”.
lsp_outcome: Option<PostEditWaitOutcome>Per-edit LSP diagnostics outcome (v0.17.3). Carries the verified-fresh
diagnostics PLUS per-server status (pending/exited) so the response
can report complete: bool honestly.
None means the caller didn’t request diagnostics OR the request
was a fire-and-forget notify (no wait). Some(outcome) always
reports diagnostics from servers that proved freshness against the
post-edit document version.
Implementations§
Source§impl WriteResult
impl WriteResult
Sourcepub fn append_lsp_diagnostics_to(&self, result: &mut Value)
pub fn append_lsp_diagnostics_to(&self, result: &mut Value)
Append LSP diagnostics + per-server status to a response JSON object.
v0.17.3 honest-reporting contract: when diagnostics were requested
(lsp_outcome.is_some()), this ALWAYS emits lsp_diagnostics: [...]
(even if empty) plus lsp_complete: bool, lsp_pending_servers,
and lsp_exited_servers. Empty lsp_diagnostics no longer means
“the field disappeared” — it means “we waited and got an explicit
fresh-but-clean result, OR every expected server is in the pending/
exited list (check lsp_complete).”
When diagnostics were NOT requested (lsp_outcome.is_none()),
nothing is added — keeps the no-LSP edit path’s response shape
unchanged.
Auto Trait Implementations§
impl Freeze for WriteResult
impl RefUnwindSafe for WriteResult
impl Send for WriteResult
impl Sync for WriteResult
impl Unpin for WriteResult
impl UnsafeUnpin for WriteResult
impl UnwindSafe for WriteResult
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> 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