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/pane.rs | |
| parent | 0de503ccd9a8fedeeb6cbcc1446ab2bc644fdbb6 (diff) | |
feat: add copy mode search and tmux word motions
refs #1230
Diffstat (limited to 'src/pane.rs')
| -rw-r--r-- | src/pane.rs | 33 |
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() } |
