From cba07dad494558a4a06e25a35521041864697be3 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 16 Jun 2023 08:01:43 +0800 Subject: vim-patch:9.0.1634: message is cleared when removing mode message Problem: Message is cleared when removing mode message (Gary Johnson). Solution: Do not clear the command line after displaying a message. https://github.com/vim/vim/commit/800cdbb7caeb5dd4379c6cb071bb12391f20bcf3 Co-authored-by: Bram Moolenaar --- test/functional/legacy/messages_spec.lua | 48 ++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'test/functional/legacy/messages_spec.lua') diff --git a/test/functional/legacy/messages_spec.lua b/test/functional/legacy/messages_spec.lua index 794676153c..0a4d418e9c 100644 --- a/test/functional/legacy/messages_spec.lua +++ b/test/functional/legacy/messages_spec.lua @@ -49,6 +49,54 @@ describe('messages', function() ]]) end) + -- oldtest: Test_message_not_cleared_after_mode() + it('clearing mode does not remove message', function() + screen = Screen.new(60, 10) + screen:set_default_attr_ids({ + [0] = {bold = true, foreground = Screen.colors.Blue}, -- NonText + }) + screen:attach() + exec([[ + nmap gx :call DebugSilent('normal') + vmap gx :call DebugSilent('visual') + function DebugSilent(arg) + echomsg "from DebugSilent" a:arg + endfunction + set showmode + set cmdheight=1 + call setline(1, ['one', 'two', 'three']) + ]]) + + feed('gx') + screen:expect([[ + ^one | + two | + three | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + from DebugSilent normal | + ]]) + + -- removing the mode message used to also clear the intended message + feed('vEgx') + screen:expect([[ + ^one | + two | + three | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + from DebugSilent visual | + ]]) + end) + describe('more prompt', function() before_each(function() command('set more') -- cgit From 11060793d6544e893f31d65e8f964453c463407c Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 16 Jun 2023 08:13:42 +0800 Subject: vim-patch:9.0.1635: error message is cleared when removing mode message Problem: Error message is cleared when removing mode message. Solution: Also reset flags when the message is further down. https://github.com/vim/vim/commit/da51ad51bf4fbd66619786d0e6a83fb3ca09930b Co-authored-by: Bram Moolenaar --- test/functional/legacy/messages_spec.lua | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'test/functional/legacy/messages_spec.lua') diff --git a/test/functional/legacy/messages_spec.lua b/test/functional/legacy/messages_spec.lua index 0a4d418e9c..a604e68822 100644 --- a/test/functional/legacy/messages_spec.lua +++ b/test/functional/legacy/messages_spec.lua @@ -54,6 +54,7 @@ describe('messages', function() screen = Screen.new(60, 10) screen:set_default_attr_ids({ [0] = {bold = true, foreground = Screen.colors.Blue}, -- NonText + [1] = {background = Screen.colors.Red, foreground = Screen.colors.White}, -- ErrorMsg }) screen:attach() exec([[ @@ -64,13 +65,13 @@ describe('messages', function() endfunction set showmode set cmdheight=1 - call setline(1, ['one', 'two', 'three']) + call setline(1, ['one', 'NoSuchFile', 'three']) ]]) feed('gx') screen:expect([[ ^one | - two | + NoSuchFile | three | {0:~ }| {0:~ }| @@ -85,7 +86,7 @@ describe('messages', function() feed('vEgx') screen:expect([[ ^one | - two | + NoSuchFile | three | {0:~ }| {0:~ }| @@ -95,6 +96,22 @@ describe('messages', function() {0:~ }| from DebugSilent visual | ]]) + + -- removing the mode message used to also clear the error message + command('set cmdheight=2') + feed('2GvEgf') + screen:expect([[ + one | + NoSuchFil^e | + three | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + from DebugSilent visual | + {1:E447: Can't find file "NoSuchFile" in path} | + ]]) end) describe('more prompt', function() -- cgit