aboutsummaryrefslogtreecommitdiff
path: root/src/pane.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/pane.rs
parent0de503ccd9a8fedeeb6cbcc1446ab2bc644fdbb6 (diff)
feat: add copy mode search and tmux word motions
refs #1230
Diffstat (limited to 'src/pane.rs')
-rw-r--r--src/pane.rs33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/pane.rs b/src/pane.rs
index a6edaaa7..19d356dc 100644
--- a/src/pane.rs
+++ b/src/pane.rs
@@ -40,7 +40,10 @@ use self::agent_detection::{
AGENT_PENDING_IDLE_RECHECK, AGENT_STARTUP_GRACE_WINDOW,
};
use self::terminal::{GhosttyPaneTerminal, PaneTerminal};
-pub(crate) use self::terminal::{TerminalDirtyPatch, TerminalDirtyPatchOutcome};
+pub(crate) use self::terminal::{
+ TerminalDirtyPatch, TerminalDirtyPatchOutcome, TerminalTextMatch, TerminalTextPoint,
+ TerminalWordMotion,
+};
pub use self::{
state::PaneState,
terminal::{InputState, ScrollMetrics, TerminalCursorState},
@@ -2383,6 +2386,34 @@ impl PaneRuntime {
self.terminal.scroll_metrics()
}
+ pub(crate) fn search_text_matches(
+ &self,
+ query: &str,
+ case_sensitive: bool,
+ ) -> Vec<crate::pane::TerminalTextMatch> {
+ self.terminal.search_text_matches(query, case_sensitive)
+ }
+
+ pub(crate) fn text_match_is_current(&self, text_match: crate::pane::TerminalTextMatch) -> bool {
+ self.terminal.text_match_is_current(text_match)
+ }
+
+ pub(crate) fn text_matches_are_current(
+ &self,
+ text_matches: &[crate::pane::TerminalTextMatch],
+ ) -> Vec<bool> {
+ self.terminal.text_matches_are_current(text_matches)
+ }
+
+ pub(crate) fn word_motion_target(
+ &self,
+ row: u32,
+ col: u16,
+ motion: crate::pane::TerminalWordMotion,
+ ) -> Option<crate::pane::TerminalTextPoint> {
+ self.terminal.word_motion_target(row, col, motion)
+ }
+
pub fn input_state(&self) -> Option<InputState> {
self.terminal.input_state()
}