diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/edit.c | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_ins_complete.vim | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index f17ac52f15..f2c3f64790 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -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 diff --git a/src/nvim/testdir/test_ins_complete.vim b/src/nvim/testdir/test_ins_complete.vim index 24eaf9e8b1..90b57323af 100644 --- a/src/nvim/testdir/test_ins_complete.vim +++ b/src/nvim/testdir/test_ins_complete.vim @@ -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 |