diff options
-rw-r--r-- | src/nvim/insexpand.c | 4 | ||||
-rw-r--r-- | test/old/testdir/test_ins_complete.vim | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index 44e72b2b01..e21433f5ec 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -2228,6 +2228,10 @@ static bool ins_compl_stop(const int c, const int prev_mode, bool retval) retval = true; } + if ((c == Ctrl_W || c == Ctrl_U) && ins_compl_preinsert_effect()) { + ins_compl_delete(false); + } + auto_format(false, true); // Trigger the CompleteDonePre event to give scripts a chance to diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index f276d1e719..2fb1715634 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -3042,6 +3042,14 @@ function Test_completeopt_preinsert() call assert_equal("fo ", getline('.')) 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 call feedkeys("Shello hero\<CR>\<C-X>\<C-L>", 'tx') call assert_equal("hello hero", getline('.')) |