aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorglacambre <code@lacamb.re>2021-02-09 13:26:52 +0100
committerglacambre <code@lacamb.re>2021-02-10 13:04:02 +0100
commitdbf3c5d953ee9143494aa88b1aeb849d34ca64dd (patch)
treeeb83a63c82b70bc7d2f84240d3193b0de346c5a9
parent00423730b5eddc628a4b996b9e226fe23d7ce1f2 (diff)
downloadrneovim-dbf3c5d953ee9143494aa88b1aeb849d34ca64dd.tar.gz
rneovim-dbf3c5d953ee9143494aa88b1aeb849d34ca64dd.tar.bz2
rneovim-dbf3c5d953ee9143494aa88b1aeb849d34ca64dd.zip
Clear prompt_for_number messages
This fixes issues in GUIs: https://github.com/akiyosi/goneovim/issues/94 https://github.com/glacambre/firenvim/issues/448
-rw-r--r--src/nvim/spell.c9
-rw-r--r--test/functional/ui/messages_spec.lua40
2 files changed, 48 insertions, 1 deletions
diff --git a/src/nvim/spell.c b/src/nvim/spell.c
index fd1e01395a..55f9594de2 100644
--- a/src/nvim/spell.c
+++ b/src/nvim/spell.c
@@ -112,6 +112,7 @@
#include "nvim/strings.h"
#include "nvim/syntax.h"
#include "nvim/undo.h"
+#include "nvim/ui.h"
#include "nvim/os/os.h"
#include "nvim/os/input.h"
@@ -2889,8 +2890,14 @@ void spell_suggest(int count)
msg_col = 0;
// Ask for choice.
selected = prompt_for_number(&mouse_used);
- if (mouse_used)
+
+ if (ui_has(kUIMessages)) {
+ ui_call_msg_clear();
+ }
+
+ if (mouse_used) {
selected -= lines_left;
+ }
lines_left = Rows; // avoid more prompt
// don't delay for 'smd' in normal_cmd()
msg_scroll = msg_scroll_save;
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua
index 5df4a1d533..1fe3a4128e 100644
--- a/test/functional/ui/messages_spec.lua
+++ b/test/functional/ui/messages_spec.lua
@@ -29,6 +29,7 @@ describe('ui/ext_messages', function()
[6] = {bold = true, reverse = true},
[7] = {background = Screen.colors.Yellow},
[8] = {foreground = Screen.colors.Red},
+ [9] = {special = Screen.colors.Red, undercurl = true},
})
end)
after_each(function()
@@ -795,6 +796,45 @@ describe('ui/ext_messages', function()
pos = 9,
}}}
end)
+
+ it('hides prompt_for_number messages', function()
+ command('set spell')
+ feed('ihelllo<esc>')
+
+ feed('z=')
+ screen:expect{grid=[[
+ {9:helllo} |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:^~ }|
+ ]], messages={
+ {content = { { 'Change "helllo" to:\n 1 "Hello"\n 2 "Hallo"\n 3 "Helli"\nType number and <Enter> or click with mouse (empty cancels): ' } }, kind = ""}
+ }}
+
+ feed('1')
+ screen:expect{grid=[[
+ {9:helllo} |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:^~ }|
+ ]], messages={
+ {content = { { 'Change "helllo" to:\n 1 "Hello"\n 2 "Hallo"\n 3 "Helli"\nType number and <Enter> or click with mouse (empty cancels): ' } }, kind = ""},
+ { content = { { "1" } }, kind = "" }
+ }}
+
+ feed('<cr>')
+ screen:expect{grid=[[
+ ^Hello |
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ ]]}
+
+ end)
+
end)
describe('ui/builtin messages', function()