pub struct Formatted { /* private fields */ }Expand description
Formatted compiler error type
undefined value x
–> file.leo: 2:8
|
2 | let a = x;
| ^
|
= help: Initialize a variable x first.
Stores all error components as plain owned fields.
The ariadne Report is built on the fly in Display::fmt.
Implementations§
Source§impl Formatted
impl Formatted
Sourcepub fn new_from_span<S>(
message: S,
help: Option<String>,
code: i32,
type_: String,
error: bool,
span: Span,
labels: Vec<Label>,
) -> Selfwhere
S: ToString,
pub fn new_from_span<S>(
message: S,
help: Option<String>,
code: i32,
type_: String,
error: bool,
span: Span,
labels: Vec<Label>,
) -> Selfwhere
S: ToString,
Creates a formatted error from a span and labels.
Sourcepub fn error(
code_prefix: &str,
code: i32,
message: impl ToString,
span: Span,
) -> Self
pub fn error( code_prefix: &str, code: i32, message: impl ToString, span: Span, ) -> Self
Create a new error.
Sourcepub fn warning(
code_prefix: &str,
code: i32,
message: impl ToString,
span: Span,
) -> Self
pub fn warning( code_prefix: &str, code: i32, message: impl ToString, span: Span, ) -> Self
Create a new warning.
pub fn with_help(self, help: impl Display) -> Self
pub fn with_note(self, note: impl Display) -> Self
pub fn with_label(self, label: Label) -> Self
pub fn with_labels(self, labels: impl IntoIterator<Item = Label>) -> Self
Sourcepub fn error_code(&self) -> String
pub fn error_code(&self) -> String
Gets a unique error identifier.
Sourcepub fn warning_code(&self) -> String
pub fn warning_code(&self) -> String
Gets a unique warning identifier.
Sourcepub fn message(&self) -> &str
pub fn message(&self) -> &str
Return the diagnostic’s primary message without ariadne rendering.
Used by tooling consumers (notably leo-lsp) that need the bare message
text rather than the formatted report. The returned slice borrows from
the same allocation as the rest of the diagnostic and therefore stays
valid for the lifetime of the Formatted value.
Sourcepub fn help(&self) -> Option<&str>
pub fn help(&self) -> Option<&str>
Return the diagnostic’s optional help text, if any.
leo-lsp appends this to the LSP diagnostic message so editor clients
see the same hint that the CLI report would render.
Sourcepub fn note(&self) -> Option<&str>
pub fn note(&self) -> Option<&str>
Return the diagnostic’s optional follow-up note text, if any.
leo-lsp appends this to the LSP diagnostic message for parity with
CLI-rendered reports.
Sourcepub fn is_error(&self) -> bool
pub fn is_error(&self) -> bool
Return whether this diagnostic was raised as an error rather than a warning.
LSP severity mapping depends on this flag instead of inspecting the
rendered Error/Warning prefix in the formatted message.
Sourcepub fn span(&self) -> Span
pub fn span(&self) -> Span
Return the diagnostic’s primary span.
Callers must resolve this span against leo_span session globals to
recover the originating source file before the surrounding session is
torn down.
Sourcepub fn labels(&self) -> impl Iterator<Item = &Label>
pub fn labels(&self) -> impl Iterator<Item = &Label>
Iterate the diagnostic’s secondary labels in declaration order.
Labels carry their own span and human-readable message, which leo-lsp
surfaces as Diagnostic.relatedInformation when the client supports it.
Sourcepub fn diagnostic_view(&self) -> DiagnosticView<'_>
pub fn diagnostic_view(&self) -> DiagnosticView<'_>
Borrow this diagnostic as a plain structured view.
The returned DiagnosticView exposes the same fields that are used
when rendering the ariadne report, without round-tripping through a
formatted string. Consumers like leo-lsp use the view to build LSP
Diagnostic payloads without parsing rendered output.
Trait Implementations§
Source§impl Error for Formatted
impl Error for Formatted
Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Auto Trait Implementations§
impl Freeze for Formatted
impl RefUnwindSafe for Formatted
impl Send for Formatted
impl Sync for Formatted
impl Unpin for Formatted
impl UnsafeUnpin for Formatted
impl UnwindSafe for Formatted
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> 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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);