pub struct JumpState {
pub query: String,
pub selected: usize,
pub mode: JumpMode,
pub hits: Vec<JumpHit>,
pub recents: Vec<JumpHit>,
pub cursor_revealed: bool,
pub matcher: Option<Matcher>,
}Fields§
§query: String§selected: usize§mode: JumpMode§hits: Vec<JumpHit>Computed result list, recomputed on every query change. Empty until
App::recompute_jump_hits runs.
recents: Vec<JumpHit>MRU snapshot loaded on jump bar open, used by the empty-query state.
cursor_revealed: boolTrue once the user has navigated (Down/Up/Tab) at least once. The renderer keeps the selection invisible on the empty state until this flips, so the eye stays on the input field on first open. Also makes the FIRST Down keystroke land on row 0 instead of skipping to row 1.
matcher: Option<Matcher>Reused matcher with growable scratch buffers. Populated lazily on the first scoring pass and kept across keystrokes so nucleo’s internal vectors do not reallocate every recompute.
Implementations§
Source§impl JumpState
impl JumpState
pub fn for_mode(mode: JumpMode) -> Self
pub fn push_query(&mut self, c: char)
pub fn pop_query(&mut self)
Sourcepub fn visible_hits(&self) -> Vec<JumpHit>
pub fn visible_hits(&self) -> Vec<JumpHit>
Return the hit list to render. With an empty query this is the
composed empty-state view (recents + the round-robin top-N
actions); otherwise it is the live computed hits. The cap on
the empty state is applied HERE (data layer) so the Down/Up
handlers, visible_hits().len(), and the renderer all agree on
the same bound. without this, scrolling past the rendered cap
would silently advance selected into invisible rows and the
highlight would appear to jump back to row 0.
Sourcepub fn empty_state_actions_total(&self) -> usize
pub fn empty_state_actions_total(&self) -> usize
Number of actions available for the empty-state ACTIONS section
BEFORE the cap. Used by the renderer to render Actions 6 of 29
when the cap is applied.
Sourcepub fn grouped_hits(&self) -> Vec<(SourceKind, Vec<JumpHit>)>
pub fn grouped_hits(&self) -> Vec<(SourceKind, Vec<JumpHit>)>
Group visible_hits() for the query view: by SourceKind in render
order. Empty sections are omitted. Only meaningful when a query is
active; the empty-state view uses empty_state_groups instead.
Sourcepub fn empty_state_groups(&self) -> Vec<(&'static str, Vec<JumpHit>)>
pub fn empty_state_groups(&self) -> Vec<(&'static str, Vec<JumpHit>)>
Empty-state grouping: a single RECENT group (everything that came
from the MRU log, of any kind) followed by an ACTIONS group.
Returns (label, hits) rather than (kind, hits) so the renderer
can distinguish “RECENT” from a per-kind label.
Sourcepub fn selected_section(&self) -> Option<SourceKind>
pub fn selected_section(&self) -> Option<SourceKind>
Map selected index (into visible_hits()) to a SourceKind so the
renderer knows which section header is currently active.
Sourcepub fn jump_next_section(&mut self)
pub fn jump_next_section(&mut self)
Move selection to the first hit in the next non-empty section. Wraps.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for JumpState
impl RefUnwindSafe for JumpState
impl Send for JumpState
impl Sync for JumpState
impl Unpin for JumpState
impl UnsafeUnpin for JumpState
impl UnwindSafe for JumpState
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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