#[non_exhaustive]pub struct TextRenderOptions {
pub enable_hyperlinks: bool,
pub enable_color: bool,
}Expand description
Options for rendering diagnostic messages to text.
This struct controls various aspects of text rendering, such as whether to include terminal hyperlinks for clickable file paths or ANSI color in the source-context snippet.
The default enables everything a terminal can use (color and OSC 8
hyperlinks). TextRenderOptions::plain disables both, producing text
with no escape sequences of any kind — for logs, JSON transport, and
other machine consumers.
The struct is #[non_exhaustive]: construct it from
TextRenderOptions::default or TextRenderOptions::plain and adjust
it with the builder methods, so new options can be added without
breaking callers.
§Example
use quarto_error_reporting::TextRenderOptions;
// Terminal output without hyperlinks (e.g. for snapshot tests).
let opts = TextRenderOptions::default().hyperlinks(false);
assert!(opts.enable_color && !opts.enable_hyperlinks);
// No escape sequences at all.
let plain = TextRenderOptions::plain();
assert!(!plain.enable_color && !plain.enable_hyperlinks);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.enable_hyperlinks: boolEnable OSC 8 hyperlinks for clickable file paths in terminals.
When enabled, file paths in error messages will include terminal escape codes for clickable links (supported by iTerm2, VS Code, etc.). Disable for snapshot testing to avoid absolute path differences.
enable_color: boolEnable ANSI (SGR) color codes in the source-context snippet.
When disabled, the snippet renderer draws the same layout with no
color escape sequences. Independent of
enable_hyperlinks: disable both (see
TextRenderOptions::plain) for output free of escape bytes.
Implementations§
Source§impl TextRenderOptions
impl TextRenderOptions
Sourcepub fn plain() -> Self
pub fn plain() -> Self
Options producing text with no escape sequences of any kind: no ANSI color and no OSC 8 hyperlinks.
Sourcepub fn hyperlinks(self, enable: bool) -> Self
pub fn hyperlinks(self, enable: bool) -> Self
Set whether file paths carry OSC 8 hyperlinks
(see enable_hyperlinks).
Sourcepub fn color(self, enable: bool) -> Self
pub fn color(self, enable: bool) -> Self
Set whether the source-context snippet carries ANSI color
(see enable_color).
Trait Implementations§
Source§impl Clone for TextRenderOptions
impl Clone for TextRenderOptions
Source§impl Debug for TextRenderOptions
impl Debug for TextRenderOptions
Auto Trait Implementations§
impl Freeze for TextRenderOptions
impl RefUnwindSafe for TextRenderOptions
impl Send for TextRenderOptions
impl Sync for TextRenderOptions
impl Unpin for TextRenderOptions
impl UnsafeUnpin for TextRenderOptions
impl UnwindSafe for TextRenderOptions
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> 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);