Do not flicker when switching cmd-hovered words in terminal (#30098)

Closes https://github.com/zed-industries/zed/issues/25110


https://github.com/user-attachments/assets/4624c256-8dfb-48eb-a726-6cf130d946da

Terminal may update its hovered word way before reporting it to the
terminal view, and that processing the file check later.
Hence, store the terminal hover data in the terminal view and avoid
highlights when it's different from what the terminal has (as the source
of truth here).

In addition, now only does hover refreshes when the terminal hover
actually changes, not on every event report.

Release Notes:

- Fixed underline flicker when switching cmd-hovered words in terminal
This commit is contained in:
Kirill Bulatov 2025-05-07 14:04:11 +03:00 committed by GitHub
parent c19a5c2fd6
commit f7e77123cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 102 additions and 62 deletions

View file

@ -605,7 +605,7 @@ pub struct TerminalContent {
pub scrolled_to_bottom: bool,
}
#[derive(Clone)]
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct HoveredWord {
pub word: String,
pub word_match: RangeInclusive<AlacPoint>,