Skip to main content

ContextOptions

Struct ContextOptions 

Source
pub struct ContextOptions {
    pub max_lines: u32,
    pub trim: TrimScope,
    pub multiline_threshold: u32,
    pub max_viewport_fraction: u32,
    pub viewport_height: u32,
    pub viewport_top: u32,
    pub reserved_rows: u32,
}
Expand description

The knobs resolve_context reads. Mirrors the context.* options the plugin registers; the host resolves them per buffer and passes them in, so this stays a pure function.

Fields§

§max_lines: u32

Maximum context rows (not scopes — a multi-line header spends more than one). 0 means unlimited, and is the default.

The principled bound is Self::max_viewport_fraction, not this: a fraction scales with the pane, so a tall window shows deep nesting and a short split shows little, which is what a reader wants in both. A row count cannot do that — tuned for one pane size it is wrong at every other.

Truncating also loses the WRONG end first. Depth is not noise: the outermost scope (impl Foo) is the most stable and often the most valuable line in the strip, and a hard cap of 3 discards it exactly when nesting is deep enough to need it. So the cap is off by default and available as a preference for anyone who wants a fixed ceiling.

§trim: TrimScope

Which end to drop when over budget.

§multiline_threshold: u32

Maximum rows a single scope’s header may contribute.

§max_viewport_fraction: u32

Percent of the pane height the whole sticky strip may occupy.

§viewport_height: u32

The pane’s height in rows, for the fraction guard.

§viewport_top: u32

First source line the pane is showing. A scope whose header is at or below this line is still on screen, so pinning it would spend a row duplicating a visible line — the resolver drops it.

§reserved_rows: u32

Rows the headerline already occupies. Context stacks under it and never displaces it, so those rows come out of the same viewport budget.

Trait Implementations§

Source§

impl Clone for ContextOptions

Source§

fn clone(&self) -> ContextOptions

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for ContextOptions

Source§

impl Debug for ContextOptions

Source§

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

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

impl Default for ContextOptions

Source§

fn default() -> Self

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.

§

impl<T> Instrument for T

§

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

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

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> 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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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