mirror of
https://github.com/neovim/neovim.git
synced 2025-10-16 14:56:08 +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