search: wip: re-direct input while searching, and build a search buffer

This adds a new state, 'is_searching'. While active, input is
re-directed, and stored in a search buffer. In the future, we'll use
this buffer and search for its content in the scrollback buffer, and
move the view and create a selection on matches.

When rendering in 'is_searching', everything is dimmed. In the future,
we'll render the current search buffer on-top of the dimmed "regular"
terminal output.
This commit is contained in:
Daniel Eklöf 2019-08-27 17:23:28 +02:00
parent 2d7ca416f0
commit 61cabdac13
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
6 changed files with 160 additions and 10 deletions

View file

@ -331,6 +331,13 @@ struct terminal {
struct primary primary;
} selection;
bool is_searching;
struct {
wchar_t *buf;
size_t len;
size_t sz;
} search;
struct grid normal;
struct grid alt;
struct grid *grid;
@ -368,6 +375,7 @@ struct terminal {
struct buffer *last_buf; /* Buffer we rendered to last time */
bool was_flashing; /* Flash was active last time we rendered */
bool was_searching;
} render;
};