pub struct Overlay {
pub handle: OverlayHandle,
pub namespace: Option<OverlayNamespace>,
pub start_marker: MarkerId,
pub end_marker: MarkerId,
pub face: OverlayFace,
pub priority: Priority,
pub message: Option<String>,
pub extend_to_line_end: bool,
pub url: Option<String>,
pub theme_key: Option<&'static str>,
}Expand description
An overlay represents a visual decoration over a range of text Uses markers for content-anchored positions that automatically adjust with edits
Fields§
§handle: OverlayHandleUnique handle for this overlay (opaque, for removal by handle)
namespace: Option<OverlayNamespace>Namespace this overlay belongs to (for bulk removal)
start_marker: MarkerIdStart marker (left affinity - stays before inserted text)
end_marker: MarkerIdEnd marker (right affinity - moves after inserted text)
face: OverlayFaceVisual appearance of the overlay
priority: PriorityPriority for z-ordering (higher = on top)
message: Option<String>Optional tooltip/message to show when hovering over this overlay
extend_to_line_end: boolWhether to extend the overlay’s background to the end of the visual line Used for full-width line highlighting (e.g., in diff views)
url: Option<String>Optional URL for OSC 8 terminal hyperlinks. When set, the rendered text in this overlay becomes a clickable hyperlink.
theme_key: Option<&'static str>Theme key that produced this overlay’s primary color (e.g. “diagnostic.warning_bg”). Recorded at creation time so the theme inspector can show the exact key without reverse-mapping colors.
Implementations§
Source§impl Overlay
impl Overlay
Sourcepub fn new(
marker_list: &mut MarkerList,
range: Range<usize>,
face: OverlayFace,
) -> Self
pub fn new( marker_list: &mut MarkerList, range: Range<usize>, face: OverlayFace, ) -> Self
Create a new overlay with markers at the given range
§Arguments
marker_list- MarkerList to create markers inrange- Byte range for the overlayface- Visual appearance
Returns the overlay (which contains its handle for later removal)
Sourcepub fn with_namespace(
marker_list: &mut MarkerList,
range: Range<usize>,
face: OverlayFace,
namespace: OverlayNamespace,
) -> Self
pub fn with_namespace( marker_list: &mut MarkerList, range: Range<usize>, face: OverlayFace, namespace: OverlayNamespace, ) -> Self
Create an overlay with a namespace (for bulk removal)
Sourcepub fn with_priority(
marker_list: &mut MarkerList,
range: Range<usize>,
face: OverlayFace,
priority: Priority,
) -> Self
pub fn with_priority( marker_list: &mut MarkerList, range: Range<usize>, face: OverlayFace, priority: Priority, ) -> Self
Create an overlay with a specific priority
Sourcepub fn with_message(self, message: String) -> Self
pub fn with_message(self, message: String) -> Self
Add a message/tooltip to this overlay
Sourcepub fn with_priority_value(self, priority: Priority) -> Self
pub fn with_priority_value(self, priority: Priority) -> Self
Set the priority
Sourcepub fn with_namespace_value(self, namespace: OverlayNamespace) -> Self
pub fn with_namespace_value(self, namespace: OverlayNamespace) -> Self
Set the namespace
Sourcepub fn with_extend_to_line_end(self, extend: bool) -> Self
pub fn with_extend_to_line_end(self, extend: bool) -> Self
Set whether to extend the overlay to the end of the visual line
Sourcepub fn with_theme_key(self, key: &'static str) -> Self
pub fn with_theme_key(self, key: &'static str) -> Self
Set the theme key that produced this overlay’s color
Sourcepub fn range(&self, marker_list: &MarkerList) -> Range<usize>
pub fn range(&self, marker_list: &MarkerList) -> Range<usize>
Get the current byte range by resolving markers This is called once per frame during rendering setup
Sourcepub fn contains(&self, position: usize, marker_list: &MarkerList) -> bool
pub fn contains(&self, position: usize, marker_list: &MarkerList) -> bool
Check if this overlay contains a position
Source§impl Overlay
Helper functions for creating common overlay types
impl Overlay
Helper functions for creating common overlay types
Sourcepub fn error(
marker_list: &mut MarkerList,
range: Range<usize>,
message: Option<String>,
) -> Self
pub fn error( marker_list: &mut MarkerList, range: Range<usize>, message: Option<String>, ) -> Self
Create an error underline overlay (wavy red line)
Sourcepub fn warning(
marker_list: &mut MarkerList,
range: Range<usize>,
message: Option<String>,
) -> Self
pub fn warning( marker_list: &mut MarkerList, range: Range<usize>, message: Option<String>, ) -> Self
Create a warning underline overlay (wavy yellow line)
Sourcepub fn info(
marker_list: &mut MarkerList,
range: Range<usize>,
message: Option<String>,
) -> Self
pub fn info( marker_list: &mut MarkerList, range: Range<usize>, message: Option<String>, ) -> Self
Create an info underline overlay (wavy blue line)
Sourcepub fn hint(
marker_list: &mut MarkerList,
range: Range<usize>,
message: Option<String>,
) -> Self
pub fn hint( marker_list: &mut MarkerList, range: Range<usize>, message: Option<String>, ) -> Self
Create a hint underline overlay (dotted gray line)
Sourcepub fn selection(marker_list: &mut MarkerList, range: Range<usize>) -> Self
pub fn selection(marker_list: &mut MarkerList, range: Range<usize>) -> Self
Create a selection highlight overlay
Sourcepub fn search_match(marker_list: &mut MarkerList, range: Range<usize>) -> Self
pub fn search_match(marker_list: &mut MarkerList, range: Range<usize>) -> Self
Create a search result highlight overlay
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Overlay
impl RefUnwindSafe for Overlay
impl Send for Overlay
impl Sync for Overlay
impl Unpin for Overlay
impl UnsafeUnpin for Overlay
impl UnwindSafe for Overlay
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> 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> 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