pub struct AnsiRenderer { /* private fields */ }Expand description
Renderer with deferred output buffering
Implementations§
Source§impl AnsiRenderer
impl AnsiRenderer
Sourcepub fn flush_compact_command_group(&mut self)
pub fn flush_compact_command_group(&mut self)
The grouping state is intentionally kept in the renderer rather than the persisted execution event stream. Callers use this before a turn ends or before rendering a non-command result.
Sourcepub fn render_compact_command_activity(
&mut self,
command: impl Into<String>,
hidden_line_count: usize,
suffix: Option<String>,
review_anchor: Option<ToolOutputId>,
) -> Result<()>
pub fn render_compact_command_activity( &mut self, command: impl Into<String>, hidden_line_count: usize, suffix: Option<String>, review_anchor: Option<ToolOutputId>, ) -> Result<()>
Render one compact successful command activity row, coalescing it with the immediately preceding successful command row when possible.
Sourcepub fn collapse_pty_block_to_compact_activity(
&mut self,
command: impl Into<String>,
hidden_line_count: usize,
suffix: Option<String>,
review_anchor: Option<ToolOutputId>,
) -> Result<()>
pub fn collapse_pty_block_to_compact_activity( &mut self, command: impl Into<String>, hidden_line_count: usize, suffix: Option<String>, review_anchor: Option<ToolOutputId>, ) -> Result<()>
Collapse the live PTY preview into a compact activity row after the command completes. The complete capture is recorded separately.
Source§impl AnsiRenderer
impl AnsiRenderer
Sourcepub fn with_inline_ui(
handle: InlineHandle,
highlight_config: SyntaxHighlightingConfig,
) -> Self
pub fn with_inline_ui( handle: InlineHandle, highlight_config: SyntaxHighlightingConfig, ) -> Self
Create a renderer that forwards output to the inline UI session handle
Sourcepub fn program_status_wait(
&self,
kind: InteractionKind,
) -> Option<ProgramStatusWaitGuard>
pub fn program_status_wait( &self, kind: InteractionKind, ) -> Option<ProgramStatusWaitGuard>
Own a presentation-only authentication wait on the interactive terminal.
Sourcepub fn set_highlight_config(&mut self, config: SyntaxHighlightingConfig)
pub fn set_highlight_config(&mut self, config: SyntaxHighlightingConfig)
Override the syntax highlighting configuration.
Sourcepub fn set_next_tool_output_anchor(&mut self, id: ToolOutputId)
pub fn set_next_tool_output_anchor(&mut self, id: ToolOutputId)
Associate the next summary line with a captured tool output block.
This edge is UI-only. It is carried directly on the summary command so repeated commands remain associated with their own captures even when completions are interleaved.
Sourcepub fn set_session_expand_anchor(&mut self, id: ToolOutputId)
pub fn set_session_expand_anchor(&mut self, id: ToolOutputId)
Remember which capture a forthcoming exec-session expand notice should
open. Unlike Self::set_next_tool_output_anchor this survives body
lines and is consumed only when the notice is emitted.
Sourcepub fn take_session_expand_anchor(&mut self) -> Option<ToolOutputId>
pub fn take_session_expand_anchor(&mut self) -> Option<ToolOutputId>
Take the pending session expand anchor, if any.
Sourcepub fn set_session_body(&mut self, session_body: bool)
pub fn set_session_body(&mut self, session_body: bool)
Mark the upcoming stream body as an exec-session stdin/stdout capture (dim + expand), even when the tool name alone would look like a launch.
Sourcepub fn session_body_active(&self) -> bool
pub fn session_body_active(&self) -> bool
Whether the upcoming stream body should use the exec-session path.
Sourcepub fn was_previous_line_empty(&self) -> bool
pub fn was_previous_line_empty(&self) -> bool
Check if the last line rendered was empty
pub fn supports_streaming_markdown(&self) -> bool
Sourcepub fn prefers_untruncated_output(&self) -> bool
pub fn prefers_untruncated_output(&self) -> bool
Determine whether the renderer is connected to the inline UI.
Inline rendering uses the terminal session scrollback, so tool output should avoid truncation that would otherwise be applied in compact CLI mode.
pub fn supports_inline_ui(&self) -> bool
pub fn set_reasoning_visible(&mut self, visible: bool)
pub fn reasoning_visible(&self) -> bool
Sourcepub fn writes_to_inline_sink(&self) -> bool
pub fn writes_to_inline_sink(&self) -> bool
Whether rendered output is streamed into an inline TUI sink (as opposed to written directly to a terminal writer).
pub fn set_screen_reader_mode(&mut self, enabled: bool)
pub fn set_show_diagnostics_in_transcript(&mut self, enabled: bool)
pub fn set_tool_display_mode(&mut self, mode: ToolDisplayMode)
pub fn tool_display_mode(&self) -> ToolDisplayMode
Sourcepub fn is_compact_display(&self) -> bool
pub fn is_compact_display(&self) -> bool
Whether per-call tool transitions render in compact (grouped) form.
Single source of truth for the compact-vs-expanded decision so every
call site agrees; the stored mode is already normalized to
Compact/Expanded by Self::set_tool_display_mode.
pub fn set_diff_preview_mode(&mut self, mode: DiffPreviewMode)
Sourcepub fn record_diff_review(&self, anchor: DiffReviewAnchor)
pub fn record_diff_review(&self, anchor: DiffReviewAnchor)
Attach a completed-edit review payload so the TUI can expand on demand.
pub fn diff_preview_mode(&self) -> DiffPreviewMode
pub fn toggle_tool_display_mode(&mut self) -> ToolDisplayMode
Source§impl AnsiRenderer
impl AnsiRenderer
Sourcepub fn render_markdown_output(
&mut self,
style: MessageStyle,
text: &str,
) -> Result<()>
pub fn render_markdown_output( &mut self, style: MessageStyle, text: &str, ) -> Result<()>
Render markdown content with proper syntax highlighting and indentation normalization. Use this for tool output that contains markdown code blocks.
Source§impl AnsiRenderer
impl AnsiRenderer
pub fn set_table_max_width(&mut self, max_width: Option<usize>)
Sourcepub fn capabilities(&self) -> &AnsiCapabilities
pub fn capabilities(&self) -> &AnsiCapabilities
Get the terminal’s detected ANSI capabilities
Sourcepub fn diff_content_width(&self, style: MessageStyle) -> Option<usize>
pub fn diff_content_width(&self, style: MessageStyle) -> Option<usize>
Return the width available to a rendered diff row after the logical message indent and, for inline UI output, the transcript frame.
Diff rows use this width only to extend their background with spaces; when terminal sizing is unavailable callers retain their bounded fallback behavior.
Sourcepub fn should_use_unicode_formatting(&self) -> bool
pub fn should_use_unicode_formatting(&self) -> bool
Check if unicode should be used for formatting (tables, boxes, etc.)
Sourcepub fn supports_256_colors(&self) -> bool
pub fn supports_256_colors(&self) -> bool
Check if 256-color output is supported
Sourcepub fn supports_true_color(&self) -> bool
pub fn supports_true_color(&self) -> bool
Check if true color (24-bit) output is supported
Sourcepub fn should_use_unicode(&self) -> bool
pub fn should_use_unicode(&self) -> bool
Check if should use unicode characters based on terminal capabilities
pub fn show_list_modal( &mut self, title: &str, lines: Vec<String>, items: Vec<InlineListItem>, selected: Option<InlineListSelection>, search: Option<InlineListSearchConfig>, )
Sourcepub fn show_list_modal_with_status(
&mut self,
title: &str,
lines: Vec<String>,
items: Vec<InlineListItem>,
selected: Option<InlineListSelection>,
search: Option<InlineListSearchConfig>,
footer_hint: Option<String>,
status: Option<InlineStatus>,
)
pub fn show_list_modal_with_status( &mut self, title: &str, lines: Vec<String>, items: Vec<InlineListItem>, selected: Option<InlineListSelection>, search: Option<InlineListSearchConfig>, footer_hint: Option<String>, status: Option<InlineStatus>, )
Show a list modal with an optional status strip (last action feedback).
pub fn show_secure_prompt_modal( &mut self, title: &str, lines: Vec<String>, prompt_label: String, )
pub fn close_modal(&mut self)
pub fn clear_screen(&mut self)
Sourcepub fn flush(&mut self, style: MessageStyle) -> Result<()>
pub fn flush(&mut self, style: MessageStyle) -> Result<()>
Flush the buffer with the given style
Sourcepub fn line(&mut self, style: MessageStyle, text: &str) -> Result<()>
pub fn line(&mut self, style: MessageStyle, text: &str) -> Result<()>
Convenience for writing a single line
Sourcepub fn pty_continuation_line(&mut self, text: &str) -> Result<()>
pub fn pty_continuation_line(&mut self, text: &str) -> Result<()>
Write a continuation line that joins an existing Pty block.
Sends the text as InlineMessageKind::Pty through
write_multiline_with_transcript so the TUI reflow renders it
with the same 2-space block prefix and styling as the PTY output.
Sourcepub fn hyperlink_line(&mut self, style: MessageStyle, url: &str) -> Result<()>
pub fn hyperlink_line(&mut self, style: MessageStyle, url: &str) -> Result<()>
Write a URL as a full, clickable line using OSC 8 hyperlinks.
The URL is rendered on its own line so that terminal emulators can detect and activate it for click-to-open behaviour.
Sourcepub fn append_paste_placeholder(
&mut self,
message: &str,
line_count: usize,
) -> Result<()>
pub fn append_paste_placeholder( &mut self, message: &str, line_count: usize, ) -> Result<()>
Append a large pasted user message as a placeholder in inline UI.
Sourcepub fn inline_with_style(
&mut self,
style: MessageStyle,
text: &str,
) -> Result<()>
pub fn inline_with_style( &mut self, style: MessageStyle, text: &str, ) -> Result<()>
Write styled text without a trailing newline
Sourcepub fn line_with_style(&mut self, style: Style, text: &str) -> Result<()>
pub fn line_with_style(&mut self, style: Style, text: &str) -> Result<()>
Write a line with an explicit style
Sourcepub fn line_with_override_style(
&mut self,
fallback: MessageStyle,
style: Style,
text: &str,
) -> Result<()>
pub fn line_with_override_style( &mut self, fallback: MessageStyle, style: Style, text: &str, ) -> Result<()>
Write a line with a custom style while preserving the logical message kind.
Sourcepub fn line_if_not_empty(&mut self, style: MessageStyle) -> Result<()>
pub fn line_if_not_empty(&mut self, style: MessageStyle) -> Result<()>
Write an empty line only if the previous line was not empty
pub fn render_token_delta(&mut self, delta: &str) -> Result<()>
pub fn stream_markdown_response( &mut self, text: &str, previous_line_count: usize, ) -> Result<usize>
Auto Trait Implementations§
impl Freeze for AnsiRenderer
impl RefUnwindSafe for AnsiRenderer
impl Send for AnsiRenderer
impl Sync for AnsiRenderer
impl Unpin for AnsiRenderer
impl UnsafeUnpin for AnsiRenderer
impl UnwindSafe for AnsiRenderer
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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> 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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more