pub struct App {Show 36 fields
pub input: String,
pub results: Vec<RipgrepMatch>,
pub groups: Vec<SessionGroup>,
pub group_cursor: usize,
pub sub_cursor: usize,
pub expanded: bool,
pub searching: bool,
pub typing: bool,
pub error: Option<String>,
pub search_paths: Vec<String>,
pub last_query: String,
pub results_query: String,
pub last_keystroke: Option<Instant>,
pub preview_mode: bool,
pub should_quit: bool,
pub resume_id: Option<String>,
pub resume_file_path: Option<String>,
pub resume_source: Option<SessionSource>,
pub resume_uuid: Option<String>,
pub needs_full_redraw: bool,
pub regex_mode: bool,
pub latest_chains: HashMap<String, HashSet<String>>,
pub tree_mode: bool,
pub session_tree: Option<SessionTree>,
pub tree_cursor: usize,
pub tree_scroll_offset: usize,
pub tree_loading: bool,
pub tree_mode_standalone: bool,
pub cursor_pos: usize,
pub project_filter: bool,
pub automation_filter: AutomationFilter,
pub current_project_paths: Vec<String>,
pub recent_sessions: Vec<RecentSession>,
pub recent_cursor: usize,
pub recent_scroll_offset: usize,
pub recent_loading: bool,
/* private fields */
}Fields§
§input: String§results: Vec<RipgrepMatch>§groups: Vec<SessionGroup>Search result groups filtered by automation filter
group_cursor: usize§sub_cursor: usize§expanded: bool§searching: bool§typing: bool§error: Option<String>§search_paths: Vec<String>§last_query: String§results_query: String§last_keystroke: Option<Instant>§preview_mode: bool§should_quit: bool§resume_id: Option<String>§resume_file_path: Option<String>§resume_source: Option<SessionSource>Session source for resume (CLI or Desktop)
resume_uuid: Option<String>UUID of the selected message (for branch-aware resume)
needs_full_redraw: boolFlag to force a full terminal redraw (clears diff optimization artifacts)
regex_mode: boolRegex search mode (Ctrl+R to toggle)
latest_chains: HashMap<String, HashSet<String>>Cache: file_path → set of uuids on the latest chain (for fork indicator)
tree_mode: boolTree explorer mode
session_tree: Option<SessionTree>The loaded session tree
tree_cursor: usizeCursor position in tree rows
tree_scroll_offset: usizeVertical scroll offset for tree view
tree_loading: boolWhether tree is currently loading
tree_mode_standalone: boolWhether tree mode was the initial mode (launched with –tree)
cursor_pos: usizeCursor position in input (byte offset)
project_filter: boolWhether search is scoped to current project only (Ctrl+A toggle)
automation_filter: AutomationFilterFilter for automated vs manual sessions (Ctrl+H toggle)
current_project_paths: Vec<String>Search path(s) for current project only
recent_sessions: Vec<RecentSession>Recently accessed sessions shown on startup (filtered by project_filter)
recent_cursor: usizeCursor position in recent sessions list
recent_scroll_offset: usizeScroll offset for recent sessions list
recent_loading: boolWhether recent sessions are still loading
Implementations§
Source§impl App
impl App
Sourcepub fn in_recent_sessions_mode(&self) -> bool
pub fn in_recent_sessions_mode(&self) -> bool
Whether the app is currently showing the recent sessions list (input is empty, no search results, not loading search).
pub fn on_up(&mut self)
pub fn on_down(&mut self)
pub fn on_right(&mut self)
pub fn on_left(&mut self)
pub fn on_tab(&mut self)
pub fn on_toggle_regex(&mut self)
pub fn toggle_automation_filter(&mut self)
pub fn toggle_project_filter(&mut self)
pub fn on_enter(&mut self)
Sourcepub fn enter_tree_mode_recent(&mut self)
pub fn enter_tree_mode_recent(&mut self)
Enter tree mode for the currently selected recent session.
pub fn selected_group(&self) -> Option<&SessionGroup>
pub fn selected_match(&self) -> Option<&RipgrepMatch>
Source§impl App
impl App
pub fn new(search_paths: Vec<String>) -> Self
pub fn on_key(&mut self, c: char)
pub fn on_backspace(&mut self)
pub fn on_delete(&mut self)
Sourcepub fn clear_input(&mut self)
pub fn clear_input(&mut self)
Clear input and reset search state (Ctrl-C behavior)
pub fn move_cursor_left(&mut self)
pub fn move_cursor_right(&mut self)
pub fn move_cursor_word_left(&mut self)
pub fn move_cursor_word_right(&mut self)
pub fn move_cursor_home(&mut self)
pub fn move_cursor_end(&mut self)
pub fn delete_word_left(&mut self)
pub fn delete_word_right(&mut self)
pub fn tick(&mut self)
Source§impl App
impl App
Sourcepub fn enter_tree_mode(&mut self)
pub fn enter_tree_mode(&mut self)
Enter tree mode from search results (press ‘b’ on a session group)
Sourcepub fn enter_tree_mode_direct(&mut self, target: &str)
pub fn enter_tree_mode_direct(&mut self, target: &str)
Enter tree mode directly for a file path or session ID
pub fn exit_tree_mode(&mut self)
pub fn on_up_tree(&mut self)
pub fn on_down_tree(&mut self)
pub fn on_left_tree(&mut self)
pub fn on_right_tree(&mut self)
pub fn on_enter_tree(&mut self)
pub fn on_tab_tree(&mut self)
Auto Trait Implementations§
impl Freeze for App
impl RefUnwindSafe for App
impl Send for App
impl !Sync for App
impl Unpin for App
impl UnsafeUnpin for App
impl UnwindSafe for App
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> 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