diff options
Diffstat (limited to 'src/app/state.rs')
| -rw-r--r-- | src/app/state.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/app/state.rs b/src/app/state.rs index eee61566..338c9ca3 100644 --- a/src/app/state.rs +++ b/src/app/state.rs @@ -844,13 +844,14 @@ pub(crate) struct NavigatorState { pub expanded_workspaces: std::collections::HashSet<String>, } -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub(crate) struct CopyModeState { pub pane_id: PaneId, pub cursor_row: u16, pub cursor_col: u16, pub entry_offset_from_bottom: usize, pub selection: Option<CopyModeSelection>, + pub search: CopyModeSearchState, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -859,6 +860,28 @@ pub(crate) enum CopyModeSelection { Linewise { anchor_row: u32 }, } +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub(crate) enum CopyModeSearchDirection { + Forward, + Backward, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub(crate) struct CopyModeSearchPrompt { + pub direction: CopyModeSearchDirection, + pub query: String, +} + +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub(crate) struct CopyModeSearchState { + pub prompt: Option<CopyModeSearchPrompt>, + pub query: String, + pub direction: Option<CopyModeSearchDirection>, + pub matches: Vec<crate::pane::TerminalTextMatch>, + pub current: Option<usize>, + pub geometry: Option<(u16, u16)>, +} + #[derive(Debug, Clone, Copy, Default, PartialEq, Eq)] pub enum AgentPanelSort { #[default] |
