pub struct BufferView<'a, R: StyleResolver> {
pub buffer: &'a Buffer,
pub selection: Option<Selection>,
pub resolver: &'a R,
pub cursor_line_bg: Style,
pub cursor_column_bg: Style,
pub selection_bg: Style,
pub cursor_style: Style,
pub gutter: Option<Gutter>,
pub search_bg: Style,
pub signs: &'a [Sign],
pub conceals: &'a [Conceal],
}Expand description
Render-time wrapper around &Buffer that carries the optional
Selection + a StyleResolver. Created per draw, dropped
when the frame is done — cheap, holds only refs.
Fields§
§buffer: &'a Buffer§selection: Option<Selection>§resolver: &'a R§cursor_line_bg: StyleBg painted across the cursor row (vim’s cursorline). Pass
Style::default() to disable.
cursor_column_bg: StyleBg painted down the cursor column (vim’s cursorcolumn). Pass
Style::default() to disable.
selection_bg: StyleBg painted under selected cells. Composed over syntax fg.
cursor_style: StyleStyle for the cursor cell. REVERSED is the conventional
choice; works against any theme.
gutter: Option<Gutter>Optional left-side line-number gutter. width includes the
trailing space separating the number from text. Pass None
to disable. Numbers are 1-based, right-aligned.
search_bg: StyleBg painted under cells covered by an active / search match
(read from Buffer::search_pattern). Style::default() to
disable.
signs: &'a [Sign]Per-row gutter signs (LSP diagnostic dots, git diff markers, …). Painted into the leftmost gutter column after the line number, so they overwrite the leading space tui-style gutters reserve. Highest-priority sign per row wins.
conceals: &'a [Conceal]Per-row substitutions applied at render time. Each conceal
hides the byte range [start_byte, end_byte) and paints
replacement in its place. Empty slice = no conceals.
Trait Implementations§
Source§impl<R: StyleResolver> Widget for BufferView<'_, R>
impl<R: StyleResolver> Widget for BufferView<'_, R>
Source§fn render(self, area: Rect, term_buf: &mut TermBuffer)
fn render(self, area: Rect, term_buf: &mut TermBuffer)
Auto Trait Implementations§
impl<'a, R> Freeze for BufferView<'a, R>
impl<'a, R> RefUnwindSafe for BufferView<'a, R>where
R: RefUnwindSafe,
impl<'a, R> Send for BufferView<'a, R>where
R: Sync,
impl<'a, R> Sync for BufferView<'a, R>where
R: Sync,
impl<'a, R> Unpin for BufferView<'a, R>
impl<'a, R> UnsafeUnpin for BufferView<'a, R>
impl<'a, R> UnwindSafe for BufferView<'a, R>where
R: RefUnwindSafe,
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 more