pub struct SearchState {Show 21 fields
pub query: InputField,
pub replacement: InputField,
pub kind: SearchKind,
pub mode: SearchMode,
pub focus: FocusRing,
pub opts: SearchOptions,
pub matches: Vec<(usize, usize, usize)>,
pub current: usize,
pub files: Vec<FileMatch>,
pub file_path_index: HashMap<PathBuf, usize>,
pub selected_file: usize,
pub file_panel_scroll: usize,
pub match_panel_scroll: usize,
pub include_filter: InputField,
pub exclude_filter: InputField,
pub project_search_generation: u64,
pub expanded_files: HashSet<PathBuf>,
pub tree_cursor_path: Option<PathBuf>,
pub tree_cursor_match: Option<usize>,
pub tree_scroll: usize,
pub project_match_cursor: Option<usize>,
}Fields§
§query: InputField§replacement: InputField§kind: SearchKind§mode: SearchMode§focus: FocusRing§opts: SearchOptions§matches: Vec<(usize, usize, usize)>(row, byte_start, byte_end) for every match in the buffer.
current: usizeIndex of the “current” (highlighted) match.
files: Vec<FileMatch>§file_path_index: HashMap<PathBuf, usize>Fast path → index lookup for files.
selected_file: usize§file_panel_scroll: usizeScroll offset of the file-list panel in Expanded mode.
match_panel_scroll: usizeScroll offset of the match-results panel in Expanded mode.
include_filter: InputFieldInclude-glob filter input (Expanded mode only).
exclude_filter: InputFieldExclude-glob filter input (Expanded mode only).
project_search_generation: u64Generation of the most recently started project search.
AddProjectResult ops whose generation does not match are discarded so
results from a superseded (cancelled) search never appear in the UI.
expanded_files: HashSet<PathBuf>Which files are expanded in the search results tree.
tree_cursor_path: Option<PathBuf>Cursor identity in the search tree: file path.
tree_cursor_match: Option<usize>Cursor identity in the search tree: match index within the file
(None means the cursor is on the file header row).
tree_scroll: usizeScroll offset for the search results tree.
project_match_cursor: Option<usize>Flat cursor across all project-wide matches for F3/Shift+F3 navigation.
None when no project search has completed or when in Inline mode.
Implementations§
Source§impl SearchState
impl SearchState
Sourcepub fn total_project_matches(&self) -> usize
pub fn total_project_matches(&self) -> usize
Total number of matches across all files in the project search.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SearchState
impl RefUnwindSafe for SearchState
impl Send for SearchState
impl Sync for SearchState
impl Unpin for SearchState
impl UnsafeUnpin for SearchState
impl UnwindSafe for SearchState
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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