mirror of
https://github.com/neovim/neovim.git
synced 2025-10-07 10:26:31 +00:00
ui: use line-based rather than char-based updates in screen.c
Add ext_newgrid and ext_hlstate extensions. These use predefined highlights and line-segment based updates, for efficiency and simplicity.. The ext_hlstate extension in addition allows semantic identification of builtin and syntax highlights. Reimplement the old char-based updates in the remote UI layer, for compatibility. For the moment, this is still the default. The bulitin TUI uses the new line-based protocol. cmdline uses curwin cursor position when ext_cmdline is active.
This commit is contained in:
@@ -341,6 +341,8 @@ void pum_redraw(void)
|
||||
idx = i + pum_first;
|
||||
attr = (idx == pum_selected) ? attr_select : attr_norm;
|
||||
|
||||
screen_puts_line_start(row);
|
||||
|
||||
// prepend a space if there is room
|
||||
if (curwin->w_p_rl) {
|
||||
if (pum_col < curwin->w_wincol + curwin->w_width - 1) {
|
||||
@@ -488,6 +490,7 @@ void pum_redraw(void)
|
||||
? attr_thumb : attr_scroll);
|
||||
}
|
||||
}
|
||||
screen_puts_line_flush(false);
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user