From e16bec41b6505678d640755cebe8ec320dec2d45 Mon Sep 17 00:00:00 2001 From: luukvbaal Date: Thu, 20 Feb 2025 23:04:27 +0100 Subject: feat(messages): confirm kind for z=, :tselect, inputlist() #32521 Problem: Messages preceding a `cmdline_show->prompt` event can not be distinguished as such when receiving the event. (But since `msg_show` handlers should be scheduled, one can already check whether a prompt is active when displaying the message.) Solution: Rather than add a new kind again, use the `confirm` kind. Could be seen as slightly misleading where it is more of a choice rather than a confirmation, but that already applies to `confirm()` as well... --- test/functional/ui/messages_spec.lua | 51 +++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 4 deletions(-) (limited to 'test/functional') diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua index 5c55dfe910..26254be58e 100644 --- a/test/functional/ui/messages_spec.lua +++ b/test/functional/ui/messages_spec.lua @@ -33,6 +33,7 @@ describe('ui/ext_messages', function() screen = Screen.new(25, 5, { rgb = true, ext_messages = true, ext_popupmenu = true }) screen:add_extra_attr_ids { [100] = { undercurl = true, special = Screen.colors.Red }, + [101] = { foreground = Screen.colors.Magenta1, bold = true }, } end) after_each(function() @@ -391,10 +392,52 @@ describe('ui/ext_messages', function() }, }) + feed('') + n.add_builddir_to_rtp() + feed(':help:tselect') + local tagfile = t.paths.test_build_dir .. '/runtime/doc/help.txt' + if t.is_os('win') then + tagfile = tagfile:gsub('/', '\\') + end + screen:expect({ + grid = [[ + ^*help.txt* Nvim | + | + {3:help.txt [Help][RO] }| + line | + {2: 1 F ' }, + { 'help.txt', 101, 23 }, + { ' \n ' }, + { tagfile, 18, 5 }, + { '\n *help.txt*\n' }, + }, + history = false, + kind = 'confirm', + }, + }, + }) + feed(':bd') + -- kind=shell for :!cmd messages local cmd = t.is_os('win') and 'echo stdout& echo stderr>&2& exit 3' or '{ echo stdout; echo stderr >&2; exit 3; }' - feed((':!%s'):format(cmd)) + feed((':!%s'):format(cmd)) screen:expect({ cmdline = { { abort = false } }, messages = { @@ -1266,7 +1309,7 @@ stack traceback: { content = { { 'Change "helllo" to:\n 1 "Hello"\n 2 "Hallo"\n 3 "Hullo"\n' } }, history = false, - kind = 'list_cmd', + kind = 'confirm', }, }, }) @@ -1289,7 +1332,7 @@ stack traceback: { content = { { 'Change "helllo" to:\n 1 "Hello"\n 2 "Hallo"\n 3 "Hullo"\n' } }, history = false, - kind = 'list_cmd', + kind = 'confirm', }, }, }) @@ -1321,7 +1364,7 @@ stack traceback: { content = { { 'input0\ninput1\n' } }, history = false, - kind = 'list_cmd', + kind = 'confirm', }, }, }) -- cgit