mirror of
https://github.com/neovim/neovim.git
synced 2026-04-01 05:12:02 +00:00
fix(inccommand): skip input() during preview #35272
Problem:
During preview, the `input` still prompts the user to enter something
that won't be used later, which could be a bit confusing.
e.g., `:s/a/\=input("")`.
Solution:
Make the input() return early during 'inccommand' preview.
This commit is contained in:
@@ -4819,6 +4819,10 @@ void get_user_input(const typval_T *const argvars, typval_T *const rettv, const
|
|||||||
rettv->v_type = VAR_STRING;
|
rettv->v_type = VAR_STRING;
|
||||||
rettv->vval.v_string = NULL;
|
rettv->vval.v_string = NULL;
|
||||||
|
|
||||||
|
if (cmdpreview) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const char *prompt;
|
const char *prompt;
|
||||||
const char *defstr = "";
|
const char *defstr = "";
|
||||||
typval_T *cancelreturn = NULL;
|
typval_T *cancelreturn = NULL;
|
||||||
|
|||||||
@@ -2937,3 +2937,15 @@ it("'inccommand' disables preview if preview buffer can't be created #27086", fu
|
|||||||
]])
|
]])
|
||||||
eq('nosplit', api.nvim_get_option_value('inccommand', {}))
|
eq('nosplit', api.nvim_get_option_value('inccommand', {}))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it(':substitute with inccommand, does not show prompt during preview #11940', function()
|
||||||
|
clear()
|
||||||
|
local screen = Screen.new(30, 3)
|
||||||
|
common_setup(screen, 'split', 'foo')
|
||||||
|
feed([[:s/f/\=input("sub: ")]])
|
||||||
|
screen:expect([[
|
||||||
|
oo |
|
||||||
|
{1:~ }|
|
||||||
|
:s/f/\=input("sub: ")^ |
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
|||||||
Reference in New Issue
Block a user