Skip to main content

ScrollState

Struct ScrollState 

Source
pub struct ScrollState {
    pub scroll_offset: usize,
    pub viewport_height: usize,
    pub total_lines: usize,
    pub current_line: usize,
    pub filter: Option<String>,
    pub filter_mode: bool,
}
Expand description

Scroll state for markdown rendering.

Manages scroll position, viewport dimensions, and current line for navigation.

Fields§

§scroll_offset: usize

Current scroll offset (0-indexed, first visible line index).

§viewport_height: usize

Height of viewport (number of visible lines).

§total_lines: usize

Total number of lines in document.

§current_line: usize

Currently selected line (1-indexed, for highlighting).

§filter: Option<String>

Current filter text (when in filter mode).

§filter_mode: bool

Whether filter mode is currently active.

Implementations§

Source§

impl ScrollState

Constructor for ScrollState.

Source

pub fn new() -> ScrollState

Available on crate feature markdown-preview only.

Create a new scroll state with default settings.

Source§

impl ScrollState

Adjust scroll for current line method for ScrollState.

Source

pub fn adjust_scroll_for_current_line(&mut self)

Available on crate feature markdown-preview only.

Adjust scroll offset to ensure current_line is visible with a margin. Scrolls when the cursor gets within 3 lines of the top/bottom edge.

Source§

impl ScrollState

Filter line down method for ScrollState.

Source

pub fn filter_line_down(&mut self, _filter_text: String)

Available on crate feature markdown-preview only.

Move to the next line that matches the filter text.

§Arguments
  • filter_text - The text to match against (case-insensitive)

This method is used in filter mode to navigate through matching lines. It updates both current_line and scroll_offset to show the next match.

Source

pub fn filter_line_up(&mut self, _filter_text: String)

Available on crate feature markdown-preview only.

Move to the previous line that matches the filter text.

§Arguments
  • filter_text - The text to match against (case-insensitive)

This method is used in filter mode to navigate through matching lines. It updates both current_line and scroll_offset to show the previous match.

Source§

impl ScrollState

Is current line visible method for ScrollState.

Source

pub fn is_current_line_visible(&self) -> bool

Available on crate feature markdown-preview only.

Check if current line is visible in the viewport.

§Returns

true if the current line is within the visible viewport.

Source§

impl ScrollState

Line down method for ScrollState.

Source

pub fn line_down(&mut self)

Available on crate feature markdown-preview only.

Move current line down (for keyboard navigation).

Source§

impl ScrollState

Line up method for ScrollState.

Source

pub fn line_up(&mut self)

Available on crate feature markdown-preview only.

Move current line up (for keyboard navigation).

Source§

impl ScrollState

Max scroll offset method for ScrollState.

Source

pub fn max_scroll_offset(&self) -> usize

Available on crate feature markdown-preview only.

Get the maximum valid scroll offset.

§Returns

The maximum scroll offset that keeps content visible.

Source§

impl ScrollState

Scroll down method for ScrollState.

Source

pub fn scroll_down(&mut self, amount: usize)

Available on crate feature markdown-preview only.

Scroll down by given number of lines.

§Arguments
  • amount - Number of lines to scroll down.
Source§

impl ScrollState

Scroll percentage method for ScrollState.

Source

pub fn scroll_percentage(&self) -> f64

Available on crate feature markdown-preview only.

Calculate percentage scrolled (0.0 to 1.0).

§Returns

The scroll position as a percentage of total scrollable content.

Source§

impl ScrollState

Scroll to bottom method for ScrollState.

Source

pub fn scroll_to_bottom(&mut self)

Available on crate feature markdown-preview only.

Move to bottom of document.

Source§

impl ScrollState

Scroll to top method for ScrollState.

Source

pub fn scroll_to_top(&mut self)

Available on crate feature markdown-preview only.

Move to top of document.

Source§

impl ScrollState

Scroll up method for ScrollState.

Source

pub fn scroll_up(&mut self, amount: usize)

Available on crate feature markdown-preview only.

Scroll up by given number of lines.

§Arguments
  • amount - Number of lines to scroll up.
Source§

impl ScrollState

Set current line method for ScrollState.

Source

pub fn set_current_line(&mut self, line: usize)

Available on crate feature markdown-preview only.

Set current line and adjust scroll to keep it visible.

§Arguments
  • line - The line number to set as current (1-indexed).
Source§

impl ScrollState

Update total lines method for ScrollState.

Source

pub fn update_total_lines(&mut self, total: usize)

Available on crate feature markdown-preview only.

Update total line count.

§Arguments
  • total - The total number of lines in the document.
Source§

impl ScrollState

Source

pub fn update_viewport(&mut self, area: Rect)

Available on crate feature markdown-preview only.

Update viewport dimensions.

§Arguments
  • area - The new viewport area.
Source§

impl ScrollState

Visible range method for ScrollState.

Source

pub fn visible_range(&self) -> (usize, usize)

Available on crate feature markdown-preview only.

Get range of currently visible lines (1-indexed, inclusive).

§Returns

A tuple of (start_line, end_line) for visible content.

Trait Implementations§

Source§

impl Clone for ScrollState

Source§

fn clone(&self) -> ScrollState

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ScrollState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for ScrollState

Default trait implementation for ScrollState.

Source§

fn default() -> ScrollState

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more