vim-patch:8.2.4865: :startinsert right after :stopinsert may not work

Problem:    :startinsert right after :stopinsert does not work when popup menu
            is still visible.
Solution:   Use ins_compl_active() instead of pum_visible(). (closes vim/vim#10352)
cd5dbad184
(cherry picked from commit 97d86c45af)
This commit is contained in:
zeertzjq
2022-05-05 06:07:07 +08:00
committed by github-actions[bot]
parent 1e28068d0d
commit 3b4881afc2
2 changed files with 10 additions and 1 deletions

View File

@@ -553,7 +553,7 @@ static int insert_check(VimState *state)
Insstart_orig = Insstart;
}
if (stop_insert_mode && !pum_visible()) {
if (stop_insert_mode && !compl_started) {
// ":stopinsert" used or 'insertmode' reset
s->count = 0;
return 0; // exit insert mode

View File

@@ -516,6 +516,15 @@ func Test_pum_stopped_by_timer()
call delete('Xpumscript')
endfunc
func Test_complete_stopinsert_startinsert()
nnoremap <F2> <Cmd>startinsert<CR>
inoremap <F2> <Cmd>stopinsert<CR>
" This just checks if this causes an error
call feedkeys("i\<C-X>\<C-N>\<F2>\<F2>", 'x')
nunmap <F2>
iunmap <F2>
endfunc
func Test_pum_with_folds_two_tabs()
CheckScreendump