fix(intro): make intro explicitly stateful

Instead of randomly disappearing because some random event might have
caused mid_start or bot_scroll_start to randomly take a low value, treat
intro message as a _first class stateful_ thing.

This means that intro message will kept being _redrawn_ as long as we
are in the state it should be shown. This also includes screen resizes.
you will not lose the intro message because there was a delay in
detecting terminal features.
This commit is contained in:
bfredl
2024-03-14 10:03:59 +01:00
parent 8955cef0c6
commit 0570a19c8a
3 changed files with 57 additions and 17 deletions

View File

@@ -1627,13 +1627,41 @@ describe('ui/ext_messages', function()
{1:~ }|*5
]])
feed('<c-l>')
screen:expect([[
-- <c-l> (same as :mode) does _not_ clear intro message
feed('<c-l>i')
screen:expect {
grid = [[
^ |
{1:~ }|*23
]])
{1:~ }|*4
{MATCH:.*}|
{1:~ }|
{1:~ }Nvim is open source and freely distributable{1: }|
{1:~ }https://neovim.io/#chat{1: }|
{1:~ }|
{1:~ }type :help nvim{5:<Enter>} if you are new! {1: }|
{1:~ }type :checkhealth{5:<Enter>} to optimize Nvim{1: }|
{1:~ }type :q{5:<Enter>} to exit {1: }|
{1:~ }type :help{5:<Enter>} for help {1: }|
{1:~ }|
{1:~{MATCH: +}}type :help news{5:<Enter>} to see changes in v{MATCH:%d+%.%d+}{1:{MATCH: +}}|
{1:~ }|
{MATCH:.*}|*2
{1:~ }|*5
]],
showmode = { { '-- INSERT --', 3 } },
}
feed(':intro<cr>')
-- but editing text does..
feed('x')
screen:expect {
grid = [[
x^ |
{1:~ }|*23
]],
showmode = { { '-- INSERT --', 3 } },
}
feed('<esc>:intro<cr>')
screen:expect {
grid = [[
^ |
@@ -1657,6 +1685,14 @@ describe('ui/ext_messages', function()
{ content = { { 'Press ENTER or type command to continue', 4 } }, kind = 'return_prompt' },
},
}
feed('<cr>')
screen:expect {
grid = [[
^x |
{1:~ }|*23
]],
}
end)
it('supports global statusline', function()