pub struct LspSelectionChain {
pub buffer_id: BufferId,
pub anchor_cursor: Position,
pub ranges: Vec<Range>,
}Expand description
4.4.e: cached textDocument/selectionRange chain anchored
at a specific buffer + cursor position. Flat Vec<Range>
(innermost first) instead of the LSP linked-list shape so
the operator can index into it in O(1). Captured once on
the first :lsp-expand-region after a fresh cursor; reused
across subsequent expand/shrink steps until the cursor
moves outside ranges[0] (the innermost) or the buffer
changes.
Fields§
§buffer_id: BufferId§anchor_cursor: Position§ranges: Vec<Range>Trait Implementations§
Source§impl Clone for LspSelectionChain
impl Clone for LspSelectionChain
Source§fn clone(&self) -> LspSelectionChain
fn clone(&self) -> LspSelectionChain
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for LspSelectionChain
impl RefUnwindSafe for LspSelectionChain
impl Send for LspSelectionChain
impl Sync for LspSelectionChain
impl Unpin for LspSelectionChain
impl UnsafeUnpin for LspSelectionChain
impl UnwindSafe for LspSelectionChain
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
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 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> ⓘ
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