mirror of
https://github.com/neovim/neovim.git
synced 2025-12-14 10:25:42 +00:00
vim-patch:9.1.1069: preinsert text completions not deleted with <C-W>/<C-U> (#32296)
Problem: preinsert text completions not deleted with <C-W>/<C-U>
(ddad431, after v9.1.1059)
Solution: handle <C-W> or <C-U> specifically and clear the completion
(glepnir)
fixes: vim/vim#16557
closes: vim/vim#16565
001c26cd61
This commit is contained in:
@@ -2228,6 +2228,10 @@ static bool ins_compl_stop(const int c, const int prev_mode, bool retval)
|
|||||||
retval = true;
|
retval = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((c == Ctrl_W || c == Ctrl_U) && ins_compl_preinsert_effect()) {
|
||||||
|
ins_compl_delete(false);
|
||||||
|
}
|
||||||
|
|
||||||
auto_format(false, true);
|
auto_format(false, true);
|
||||||
|
|
||||||
// Trigger the CompleteDonePre event to give scripts a chance to
|
// Trigger the CompleteDonePre event to give scripts a chance to
|
||||||
|
|||||||
@@ -3042,6 +3042,14 @@ function Test_completeopt_preinsert()
|
|||||||
call assert_equal("fo ", getline('.'))
|
call assert_equal("fo ", getline('.'))
|
||||||
call assert_equal(3, col('.'))
|
call assert_equal(3, col('.'))
|
||||||
|
|
||||||
|
call feedkeys("She\<C-X>\<C-N>\<C-U>", 'tx')
|
||||||
|
call assert_equal("", getline('.'))
|
||||||
|
call assert_equal(1, col('.'))
|
||||||
|
|
||||||
|
call feedkeys("She\<C-X>\<C-N>\<C-W>", 'tx')
|
||||||
|
call assert_equal("", getline('.'))
|
||||||
|
call assert_equal(1, col('.'))
|
||||||
|
|
||||||
" whole line
|
" whole line
|
||||||
call feedkeys("Shello hero\<CR>\<C-X>\<C-L>", 'tx')
|
call feedkeys("Shello hero\<CR>\<C-X>\<C-L>", 'tx')
|
||||||
call assert_equal("hello hero", getline('.'))
|
call assert_equal("hello hero", getline('.'))
|
||||||
|
|||||||
Reference in New Issue
Block a user