aboutsummaryrefslogtreecommitdiff
path: root/src/app/input/mod.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/input/mod.rs
parent0de503ccd9a8fedeeb6cbcc1446ab2bc644fdbb6 (diff)
feat: add copy mode search and tmux word motions
refs #1230
Diffstat (limited to 'src/app/input/mod.rs')
-rw-r--r--src/app/input/mod.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/app/input/mod.rs b/src/app/input/mod.rs
index 450afab8..e4da8bc9 100644
--- a/src/app/input/mod.rs
+++ b/src/app/input/mod.rs
@@ -155,6 +155,20 @@ impl App {
insert_navigator_search_text(&mut self.state, &self.terminal_runtimes, text);
true
}
+ Mode::Copy => {
+ let Some(prompt) = self
+ .state
+ .copy_mode
+ .as_mut()
+ .and_then(|copy_mode| copy_mode.search.prompt.as_mut())
+ else {
+ return false;
+ };
+ prompt
+ .query
+ .extend(text.chars().filter(|ch| !ch.is_control()));
+ true
+ }
_ => false,
}
}
@@ -513,6 +527,10 @@ pub(crate) fn modal_paste_target_active(state: &AppState) -> bool {
.as_ref()
.is_some_and(|open| open.search_focused),
Mode::Navigator => state.navigator.search_focused,
+ Mode::Copy => state
+ .copy_mode
+ .as_ref()
+ .is_some_and(|copy_mode| copy_mode.search.prompt.is_some()),
_ => false,
}
}