diff options
author | Bara C. Tudor <vector2025@gmail.com> | 2023-11-22 03:50:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-22 09:50:28 +0800 |
commit | 91ef26dece6d34dbb6e1b5722ce2d3f6f7e3a6de (patch) | |
tree | d9e989b4271f4ee8bb953f29a0a111006424eff2 | |
parent | 76635847086344b1b6e7ac9e9a4d9276852be000 (diff) | |
download | rneovim-91ef26dece6d34dbb6e1b5722ce2d3f6f7e3a6de.tar.gz rneovim-91ef26dece6d34dbb6e1b5722ce2d3f6f7e3a6de.tar.bz2 rneovim-91ef26dece6d34dbb6e1b5722ce2d3f6f7e3a6de.zip |
fix(messages): :map output with ext_messages (#26126)
-rw-r--r-- | src/nvim/mapping.c | 4 | ||||
-rw-r--r-- | test/functional/ui/messages_spec.lua | 13 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/nvim/mapping.c b/src/nvim/mapping.c index a758bd16bd..6fcade82e0 100644 --- a/src/nvim/mapping.c +++ b/src/nvim/mapping.c @@ -45,6 +45,7 @@ #include "nvim/search.h" #include "nvim/strings.h" #include "nvim/types.h" +#include "nvim/ui.h" #include "nvim/vim.h" /// List used for abbreviations. @@ -220,7 +221,8 @@ static void showmap(mapblock_T *mp, bool local) return; } - if (msg_didout || msg_silent != 0) { + // When ext_messages is active, msg_didout is never set. + if (msg_didout || msg_silent != 0 || ui_has(kUIMessages)) { msg_putchar('\n'); if (got_int) { // 'q' typed at MORE prompt return; diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua index 215e763fd1..a4f13aebc2 100644 --- a/test/functional/ui/messages_spec.lua +++ b/test/functional/ui/messages_spec.lua @@ -834,6 +834,19 @@ stack traceback: end} end) + it('supports multiline messages for :map', function() + command('mapclear') + command('nmap Y y$') + command('nmap Q @@') + command('nnoremap j k') + feed(':map<cr>') + + screen:expect{messages={{ + content = {{ "\nn Q @@\nn Y y$\nn j " }, { "*", 5 }, { " k" }}, + kind = '' + }}} + end) + it('wildmode=list', function() screen:try_resize(25, 7) screen:set_option('ext_popupmenu', false) |