mirror of
https://github.com/neovim/neovim.git
synced 2025-12-15 19:05:40 +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:
@@ -48,13 +48,13 @@ describe('screen', function()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('Screen', function()
|
||||
local function screen_tests(newgrid)
|
||||
local screen
|
||||
|
||||
before_each(function()
|
||||
clear()
|
||||
screen = Screen.new()
|
||||
screen:attach()
|
||||
screen:attach({rgb=true,ext_newgrid=newgrid})
|
||||
screen:set_default_attr_ids( {
|
||||
[0] = {bold=true, foreground=255},
|
||||
[1] = {bold=true, reverse=true},
|
||||
@@ -741,4 +741,12 @@ describe('Screen', function()
|
||||
|
|
||||
]])
|
||||
end)
|
||||
end
|
||||
|
||||
describe("Screen (char-based)", function()
|
||||
screen_tests(false)
|
||||
end)
|
||||
|
||||
describe("Screen (line-based)", function()
|
||||
screen_tests(true)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user