Widgets
FileSystemTree
Browsable file system tree widget.
Overview
The FileSystemTree widget provides a browsable file system tree with support for file operations, selection, and navigation.
Basic Usage
use ratkit::widgets::file_system_tree::{FileSystemTree, FileTreeState};
use ratatui::Frame;
fn render_file_tree(frame: &mut Frame) {
let tree = FileSystemTree::new("./src");
let mut state = FileTreeState::default();
frame.render_stateful_widget(tree, frame.area(), &mut state);
}Features
- File icons - Different icons for file types
- Directory navigation - Expand/collapse directories
- File selection - Single and multi-select
- Operations - Delete, rename, create
- Filtering - Filter by name or type
Navigation
Tree navigation with keyboard:
- ↑/↓ - Move selection
- → - Expand directory
- ← - Collapse directory
- Enter - Open file/expand directory
- Space - Toggle selection
Customization
let tree = FileSystemTree::new("./src")
.show_hidden(false)
.filter(|path| path.extension() == Some("rs"))
.file_icon(|path| {
if path.extension() == Some("rs") {
"🦀"
} else {
"📄"
}
});