mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix(options): do not change inccommand during preview (#25462)
This commit is contained in:
parent
cd63a9addd
commit
9af03bcd47
@ -1569,6 +1569,9 @@ const char *did_set_iconstring(optset_T *args)
|
|||||||
/// The 'inccommand' option is changed.
|
/// The 'inccommand' option is changed.
|
||||||
const char *did_set_inccommand(optset_T *args FUNC_ATTR_UNUSED)
|
const char *did_set_inccommand(optset_T *args FUNC_ATTR_UNUSED)
|
||||||
{
|
{
|
||||||
|
if (cmdpreview) {
|
||||||
|
return e_invarg;
|
||||||
|
}
|
||||||
return did_set_opt_strings(p_icm, p_icm_values, false);
|
return did_set_opt_strings(p_icm, p_icm_values, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3167,3 +3167,31 @@ it("with 'inccommand' typing :filter doesn't segfault or leak memory #19057", fu
|
|||||||
feed('i')
|
feed('i')
|
||||||
assert_alive()
|
assert_alive()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it("'inccommand' cannot be changed during preview #23136", function()
|
||||||
|
clear()
|
||||||
|
local screen = Screen.new(30, 6)
|
||||||
|
common_setup(screen, 'nosplit', 'foo\nbar\nbaz')
|
||||||
|
source([[
|
||||||
|
function! IncCommandToggle()
|
||||||
|
let prev = &inccommand
|
||||||
|
|
||||||
|
if &inccommand ==# 'split'
|
||||||
|
set inccommand=nosplit
|
||||||
|
elseif &inccommand ==# 'nosplit'
|
||||||
|
set inccommand=split
|
||||||
|
elseif &inccommand ==# ''
|
||||||
|
set inccommand=nosplit
|
||||||
|
else
|
||||||
|
throw 'unknown inccommand'
|
||||||
|
endif
|
||||||
|
|
||||||
|
return " \<BS>"
|
||||||
|
endfun
|
||||||
|
|
||||||
|
cnoremap <expr> <C-E> IncCommandToggle()
|
||||||
|
]])
|
||||||
|
|
||||||
|
feed(':%s/foo/bar<C-E><C-E><C-E>')
|
||||||
|
assert_alive()
|
||||||
|
end)
|
||||||
|
Loading…
Reference in New Issue
Block a user