pub struct FileTreeView { /* private fields */ }Expand description
View state for file tree navigation and filtering
Implementations§
Source§impl FileTreeView
impl FileTreeView
Sourcepub fn set_viewport_height(&mut self, height: usize)
pub fn set_viewport_height(&mut self, height: usize)
Set the viewport height (should be called during rendering)
Sourcepub fn get_display_nodes(&self) -> Vec<(NodeId, usize)>
pub fn get_display_nodes(&self) -> Vec<(NodeId, usize)>
Get currently visible nodes with their indent levels
Returns a list of (NodeId, indent_level) tuples for rendering.
Sourcepub fn get_selected(&self) -> Option<NodeId>
pub fn get_selected(&self) -> Option<NodeId>
Get the currently selected node ID
Sourcepub fn set_selected(&mut self, node_id: Option<NodeId>)
pub fn set_selected(&mut self, node_id: Option<NodeId>)
Set the selected node
Sourcepub fn select_next(&mut self)
pub fn select_next(&mut self)
Select the next visible node
Sourcepub fn select_prev(&mut self)
pub fn select_prev(&mut self)
Select the previous visible node
Sourcepub fn select_page_up(&mut self)
pub fn select_page_up(&mut self)
Move selection up by a page (viewport height)
Sourcepub fn select_page_down(&mut self)
pub fn select_page_down(&mut self)
Move selection down by a page (viewport height)
Sourcepub fn update_scroll_for_selection(&mut self)
pub fn update_scroll_for_selection(&mut self)
Update scroll offset to ensure symmetric scrolling behavior
This should be called after navigation to implement symmetric scrolling:
- When moving down, cursor moves to bottom of viewport before scrolling
- When moving up, cursor moves to top of viewport before scrolling
Uses the stored viewport_height which is updated during rendering.
Sourcepub fn select_first(&mut self)
pub fn select_first(&mut self)
Select the first visible node
Sourcepub fn select_last(&mut self)
pub fn select_last(&mut self)
Select the last visible node
Sourcepub fn select_parent(&mut self)
pub fn select_parent(&mut self)
Select the parent of the currently selected node
Sourcepub fn get_scroll_offset(&self) -> usize
pub fn get_scroll_offset(&self) -> usize
Get the scroll offset
Sourcepub fn set_scroll_offset(&mut self, offset: usize)
pub fn set_scroll_offset(&mut self, offset: usize)
Set the scroll offset
Sourcepub fn ensure_visible(&mut self, viewport_height: usize)
pub fn ensure_visible(&mut self, viewport_height: usize)
Ensure the selected node is visible within the viewport
Adjusts scroll offset if necessary to keep the selected node visible.
§Arguments
viewport_height- Number of visible lines in the viewport
Sourcepub fn get_sort_mode(&self) -> SortMode
pub fn get_sort_mode(&self) -> SortMode
Get the sort mode
Sourcepub fn set_sort_mode(&mut self, mode: SortMode)
pub fn set_sort_mode(&mut self, mode: SortMode)
Set the sort mode
Sourcepub fn get_selected_entry(&self) -> Option<&DirEntry>
pub fn get_selected_entry(&self) -> Option<&DirEntry>
Get selected node entry (convenience method)
Navigate to a specific path if it exists in the tree
Sourcepub fn get_selected_index(&self) -> Option<usize>
pub fn get_selected_index(&self) -> Option<usize>
Get the index of the selected node in the visible list
Sourcepub fn get_node_at_index(&self, index: usize) -> Option<NodeId>
pub fn get_node_at_index(&self, index: usize) -> Option<NodeId>
Get visible node at index (accounting for scroll offset)
Sourcepub fn visible_count(&self) -> usize
pub fn visible_count(&self) -> usize
Get the number of visible nodes
Sourcepub fn ignore_patterns(&self) -> &IgnorePatterns
pub fn ignore_patterns(&self) -> &IgnorePatterns
Get reference to ignore patterns
Sourcepub fn ignore_patterns_mut(&mut self) -> &mut IgnorePatterns
pub fn ignore_patterns_mut(&mut self) -> &mut IgnorePatterns
Get mutable reference to ignore patterns
Toggle showing hidden files
Sourcepub fn toggle_show_gitignored(&mut self)
pub fn toggle_show_gitignored(&mut self)
Toggle showing gitignored files
Sourcepub fn is_node_visible(&self, node_id: NodeId) -> bool
pub fn is_node_visible(&self, node_id: NodeId) -> bool
Check if a node should be visible (not filtered by ignore patterns)
Sourcepub fn load_gitignore_for_dir(&mut self, dir_path: &Path) -> Result<()>
pub fn load_gitignore_for_dir(&mut self, dir_path: &Path) -> Result<()>
Load .gitignore for a directory
This should be called when expanding a directory to load its .gitignore
Sourcepub async fn expand_and_select_file(&mut self, path: &Path) -> bool
pub async fn expand_and_select_file(&mut self, path: &Path) -> bool
Expand all parent directories and select the given file path
This is useful for revealing a specific file in the tree when switching focus to the file explorer. All parent directories will be expanded as needed, and the file will be selected.
§Arguments
path- The full path to the file to reveal and select
§Returns
Returns true if the file was successfully expanded and selected, false otherwise. This will return false if:
- The path is not under the root directory
- The path doesn’t exist
- There was an error expanding intermediate directories
Sourcepub fn collect_symlink_mappings(&self) -> HashMap<PathBuf, PathBuf>
pub fn collect_symlink_mappings(&self) -> HashMap<PathBuf, PathBuf>
Collect symlink mappings from expanded symlink directories.
Returns a HashMap where keys are symlink paths and values are their canonical targets. This is used to create decoration aliases so files under symlinked directories can show their git status correctly.
Sourcepub fn search_query(&self) -> &str
pub fn search_query(&self) -> &str
Get the current search query
Sourcepub fn is_search_active(&self) -> bool
pub fn is_search_active(&self) -> bool
Check if search is active
Sourcepub fn search_push_char(&mut self, c: char)
pub fn search_push_char(&mut self, c: char)
Add a character to the search query and jump to first match
Sourcepub fn search_pop_char(&mut self)
pub fn search_pop_char(&mut self)
Remove the last character from the search query
Sourcepub fn search_clear(&mut self)
pub fn search_clear(&mut self)
Clear the search query
Sourcepub fn select_next_match(&mut self)
pub fn select_next_match(&mut self)
Select the next matching node (when search is active)
Sourcepub fn select_prev_match(&mut self)
pub fn select_prev_match(&mut self)
Select the previous matching node (when search is active)
Sourcepub fn get_match_for_node(&self, node_id: NodeId) -> Option<FuzzyMatch>
pub fn get_match_for_node(&self, node_id: NodeId) -> Option<FuzzyMatch>
Get match result for a node’s name (for highlighting)
Sourcepub fn node_matches_search(&self, node_id: NodeId) -> bool
pub fn node_matches_search(&self, node_id: NodeId) -> bool
Check if a node matches the current search
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FileTreeView
impl !RefUnwindSafe for FileTreeView
impl Send for FileTreeView
impl Sync for FileTreeView
impl Unpin for FileTreeView
impl UnsafeUnpin for FileTreeView
impl !UnwindSafe for FileTreeView
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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>
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more