From c8850a2e3e284033142db0f8117fa5998c68bd59 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Fri, 10 Jul 2026 04:22:10 +0300 Subject: feat: add copy mode search and tmux word motions refs #1230 --- src/app/state.rs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/app/state.rs') 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, } -#[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, + 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, + pub query: String, + pub direction: Option, + pub matches: Vec, + pub current: Option, + pub geometry: Option<(u16, u16)>, +} + #[derive(Debug, Clone, Copy, Default, PartialEq, Eq)] pub enum AgentPanelSort { #[default] -- cgit v1.2.3