diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-13 23:05:30 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-13 23:05:30 +0300 |
| commit | f8e59221cbe5117f8f691a36affa374f5a986a9f (patch) | |
| tree | 3b2792683eff251b061fbbad7343ecffafe91aab /src/pane | |
| parent | 59167658455442ffd2cd5b72a0fa81bcc4bcdf9e (diff) | |
feat: add ctrl-hover highlighting and fix wrapped links (#4074)
refs #1282
Diffstat (limited to 'src/pane')
| -rw-r--r-- | src/pane/terminal.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/pane/terminal.rs b/src/pane/terminal.rs index dfd4f536..931d0485 100644 --- a/src/pane/terminal.rs +++ b/src/pane/terminal.rs @@ -542,6 +542,19 @@ impl PaneTerminal { self.ghostty.visible_hyperlinks(area) } + pub(crate) fn link_regions_at( + &self, + col: u16, + row: u16, + resolve: fn(&str, usize) -> Option<std::ops::Range<usize>>, + ) -> Vec<crate::api::schema::PaneLinkRegion> { + self.ghostty.link_regions_at(col, row, resolve) + } + + pub(crate) fn link_target_at(&self, col: u16, row: u16) -> Option<crate::ghostty::LinkTarget> { + self.ghostty.link_target_at(col, row) + } + pub(crate) fn kitty_graphics_may_have_placements(&self) -> bool { self.ghostty.kitty_graphics_may_have_placements() } @@ -2206,6 +2219,33 @@ impl GhosttyPaneTerminal { .unwrap_or_default() } + pub(crate) fn link_regions_at( + &self, + col: u16, + row: u16, + resolve: fn(&str, usize) -> Option<std::ops::Range<usize>>, + ) -> Vec<crate::api::schema::PaneLinkRegion> { + self.core + .lock() + .ok() + .and_then(|core| { + core.terminal + .viewport_link_regions(col, u32::from(row), resolve) + .ok() + }) + .unwrap_or_default() + } + + pub(crate) fn link_target_at(&self, col: u16, row: u16) -> Option<crate::ghostty::LinkTarget> { + self.core + .lock() + .ok()? + .terminal + .viewport_link_target(col, u32::from(row)) + .ok() + .flatten() + } + pub fn extract_selection(&self, selection: &crate::selection::Selection) -> Option<String> { self.core .lock() |
