aboutsummaryrefslogtreecommitdiff
path: root/src/app/state.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-10 04:22:10 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-10 04:22:10 +0300
commitc8850a2e3e284033142db0f8117fa5998c68bd59 (patch)
tree487530d94265c096ceeb3ded7c60a94f14a6f7fd /src/app/state.rs
parent0de503ccd9a8fedeeb6cbcc1446ab2bc644fdbb6 (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.rs25
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]