pub enum SelectionRangeOutcome {
Items {
anchor_cursor: Position,
anchor_buffer: BufferId,
ranges: Vec<Range>,
pending_step: SelectionRangeStep,
},
NoProvider,
Empty,
}Expand description
4.4.e: outcome of an in-flight textDocument/selectionRange
request. The drain consumes one of these per response and
either seats the chain into App::lsp_selection_chain or
surfaces an error echo. pending_step carries whether the
triggering invocation was :lsp-expand-region or the first
step of :lsp-shrink-region (the latter is rare – shrink
without an existing chain is a user error – but the drain
handles it uniformly).
Variants§
Items
Server returned a non-empty chain; ranges[0] is the
innermost. The drain stores this and applies the first
step at index = 0 (then bumps for expand).
NoProvider
Empty
Trait Implementations§
Source§impl Clone for SelectionRangeOutcome
impl Clone for SelectionRangeOutcome
Source§fn clone(&self) -> SelectionRangeOutcome
fn clone(&self) -> SelectionRangeOutcome
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 SelectionRangeOutcome
impl RefUnwindSafe for SelectionRangeOutcome
impl Send for SelectionRangeOutcome
impl Sync for SelectionRangeOutcome
impl Unpin for SelectionRangeOutcome
impl UnsafeUnpin for SelectionRangeOutcome
impl UnwindSafe for SelectionRangeOutcome
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