aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/edit.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-01-15 22:33:16 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-01-15 22:33:16 +0800
commit8e945c2524f26e019959e82072e783cdaa694818 (patch)
tree0ca18280b0f122b930580edc7da352e78a3b1e8b /src/nvim/edit.c
parentc09147aad99a88dc39c47c276b431ade4c83ac9d (diff)
downloadrneovim-8e945c2524f26e019959e82072e783cdaa694818.tar.gz
rneovim-8e945c2524f26e019959e82072e783cdaa694818.tar.bz2
rneovim-8e945c2524f26e019959e82072e783cdaa694818.zip
vim-patch:8.2.1762: when a timer uses :stopinsert completion isn't stopped
Problem: When a timer uses :stopinsert Insert mode completion isn't stopped. (Stanley Chan) Solution: Call ins_compl_prep(ESC). https://github.com/vim/vim/commit/d0e1b7103c14eb0d175c6b245b4b6ed93a204da9
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r--src/nvim/edit.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 9efe5a27c4..23e555c6de 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -663,8 +663,12 @@ static int insert_execute(VimState *state, int key)
InsertState *const s = (InsertState *)state;
if (stop_insert_mode) {
// Insert mode ended, possibly from a callback.
+ if (key != K_IGNORE && key != K_NOP) {
+ vungetc(key);
+ }
s->count = 0;
s->nomove = true;
+ ins_compl_prep(ESC);
return 0;
}