mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +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:
@@ -1242,6 +1242,8 @@ describe('API', function()
|
||||
ext_popupmenu = false,
|
||||
ext_tabline = false,
|
||||
ext_wildmenu = false,
|
||||
ext_newgrid = screen._options.ext_newgrid or false,
|
||||
ext_hlstate=false,
|
||||
height = 4,
|
||||
rgb = true,
|
||||
width = 20,
|
||||
@@ -1252,18 +1254,9 @@ describe('API', function()
|
||||
screen:detach()
|
||||
screen = Screen.new(44, 99)
|
||||
screen:attach({ rgb = false })
|
||||
expected = {
|
||||
{
|
||||
chan = 1,
|
||||
ext_cmdline = false,
|
||||
ext_popupmenu = false,
|
||||
ext_tabline = false,
|
||||
ext_wildmenu = false,
|
||||
height = 99,
|
||||
rgb = false,
|
||||
width = 44,
|
||||
}
|
||||
}
|
||||
expected[1].rgb = false
|
||||
expected[1].width = 44
|
||||
expected[1].height = 99
|
||||
eq(expected, nvim("list_uis"))
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user