diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-10 04:22:10 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-10 04:22:10 +0300 |
| commit | c8850a2e3e284033142db0f8117fa5998c68bd59 (patch) | |
| tree | 487530d94265c096ceeb3ded7c60a94f14a6f7fd /src/app/state.rs | |
| parent | 0de503ccd9a8fedeeb6cbcc1446ab2bc644fdbb6 (diff) | |
feat: add copy mode search and tmux word motions
refs #1230
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] |
