mirror of
https://github.com/neovim/neovim.git
synced 2025-12-12 17:42:37 +00:00
fix(terminal): add various missing redraws
Problem: missing redraws when restoring saved cursorline/column, plus missing statusline and mode redraws when not updating the screen in terminal mode. Solution: schedule the redraws in a similar manner to other modes and remove some now unnecessary redrawing logic. Redraw if cursorline-related options change from entering terminal mode. This fixes test failures in later commits. WTF: TextChangedT triggers based on must_redraw, which is... fun...? Try to preserve its behaviour as much as we can for now.
This commit is contained in:
@@ -79,18 +79,27 @@ describe('title', function()
|
||||
|
||||
it('is updated in Terminal mode', function()
|
||||
api.nvim_set_option_value('title', true, {})
|
||||
api.nvim_set_option_value('titlestring', '(%{mode(1)}) | nvim', {})
|
||||
api.nvim_set_option_value('titlestring', '%t (%{mode(1)}) | nvim', {})
|
||||
fn.jobstart({ n.testprg('shell-test'), 'INTERACT' }, { term = true })
|
||||
api.nvim_buf_set_name(0, 'shell-test')
|
||||
screen:expect(function()
|
||||
eq('(nt) | nvim', screen.title)
|
||||
eq('shell-test (nt) | nvim', screen.title)
|
||||
end)
|
||||
feed('i')
|
||||
screen:expect(function()
|
||||
eq('(t) | nvim', screen.title)
|
||||
eq('shell-test (t) | nvim', screen.title)
|
||||
end)
|
||||
api.nvim_set_option_value('titlelen', 1, {})
|
||||
screen:expect(function()
|
||||
eq('<t) | nvim', screen.title)
|
||||
end)
|
||||
command('set titlelen&')
|
||||
screen:expect(function()
|
||||
eq('shell-test (t) | nvim', screen.title)
|
||||
end)
|
||||
feed([[<C-\><C-N>]])
|
||||
screen:expect(function()
|
||||
eq('(nt) | nvim', screen.title)
|
||||
eq('shell-test (nt) | nvim', screen.title)
|
||||
end)
|
||||
end)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user