mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
search/render: initial support for highlighting all visible matches
Before this patch, only the currently “selected” match was highlighted (by having the “selected” attribute, and by *not* dimming it, like the rest of the grid during a scrollback search). With this patch, we now highlight matches within the viewport. While searching, only the “primary” match is searched-for, and tracked. Then, when rendering a frame, we find all “secondary” matches as well. “holes” are added to the search-mode overlay by the means of an search-match iterator. The iterator’s text matching logic is *very* similar to what we do when the search criteria has been updated, and we re-search the scrollback. It should be possible to refactor this, and share code.
This commit is contained in:
parent
78fcdc5787
commit
90c91d6148
3 changed files with 117 additions and 11 deletions
8
search.h
8
search.h
|
|
@ -14,3 +14,11 @@ void search_input(
|
|||
void search_add_chars(struct terminal *term, const char *text, size_t len);
|
||||
|
||||
void search_selection_cancelled(struct terminal *term);
|
||||
|
||||
struct search_match_iterator {
|
||||
struct terminal *term;
|
||||
struct coord start;
|
||||
};
|
||||
|
||||
struct search_match_iterator search_matches_new_iter(struct terminal *term);
|
||||
struct range search_matches_next(struct search_match_iterator *iter);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue