aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/mapping.c4
-rw-r--r--test/functional/ui/messages_spec.lua13
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)