feat(state): add file‑tree and repository‑search state modules

Introduce `FileTreeState` for managing a navigable file hierarchy with Git decorations, filtering, and cursor/scroll handling.
Add `RepoSearchState` and related types to support asynchronous ripgrep‑backed repository searches, including result aggregation, pagination, and UI interaction.
This commit is contained in:
2025-10-12 20:18:25 +02:00
parent 55e6b0583d
commit 33ad3797a1
8 changed files with 5876 additions and 193 deletions

View File

@@ -6,5 +6,20 @@
//! to test in isolation.
mod command_palette;
mod file_tree;
mod search;
mod workspace;
pub use command_palette::{CommandPalette, ModelPaletteEntry};
pub use file_tree::{
FileNode, FileTreeState, FilterMode as FileFilterMode, GitDecoration, VisibleFileEntry,
};
pub use search::{
RepoSearchFile, RepoSearchMatch, RepoSearchMessage, RepoSearchRow, RepoSearchRowKind,
RepoSearchState, SymbolEntry, SymbolKind, SymbolSearchMessage, SymbolSearchState,
spawn_repo_search_task, spawn_symbol_search_task,
};
pub use workspace::{
CodePane, CodeWorkspace, EditorTab, LayoutNode, PaneDirection, PaneId, PaneRestoreRequest,
SplitAxis, WorkspaceSnapshot,
};