feat(messages): add :!cmd shell message kinds

Also print stderr error messages with ErrorMsg highlight group.
This commit is contained in:
Luuk van Baal
2025-01-14 12:05:23 +01:00
parent c5f93d7ab0
commit 5bae80899d
5 changed files with 51 additions and 8 deletions

View File

@@ -331,6 +331,7 @@ describe('ui/ext_messages', function()
},
})
-- kind=verbose for :verbose messages
feed(':1verbose filter Diff[AC] hi<CR>')
screen:expect({
cmdline = { {
@@ -380,6 +381,43 @@ describe('ui/ext_messages', function()
},
},
})
-- 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(('<CR>:!%s<CR>'):format(cmd))
screen:expect({
cmdline = { {
abort = false,
} },
messages = {
{
content = { { (':!%s\r\n[No write since last change]\n'):format(cmd) } },
history = false,
kind = '',
},
{
content = { { ('stdout%s\n'):format(t.is_os('win') and '\r' or '') } },
history = false,
kind = 'shell_out',
},
{
content = { { ('stderr%s\n'):format(t.is_os('win') and '\r' or ''), 9, 6 } },
history = false,
kind = 'shell_err',
},
{
content = { { '\nshell returned 3\n\n' } },
history = false,
kind = 'shell_ret',
},
{
content = { { 'Press ENTER or type command to continue', 6, 18 } },
history = false,
kind = 'return_prompt',
},
},
})
end)
it(':echoerr', function()