From: zeertzjq Date: Sun, 28 Jun 2026 19:30:58 +0000 (+0000) Subject: patch 9.2.0749: 'autocompletedelay' interferes with i_CTRL-K X-Git-Tag: v9.2.0749^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d292e20676cb399fa6bee8300d7ae3bebe97a8f;p=thirdparty%2Fvim.git patch 9.2.0749: 'autocompletedelay' interferes with i_CTRL-K Problem: 'autocompletedelay' interferes with i_CTRL-K (after 9.2.0739). Solution: Clear the pending autocompltion from the previous key when a new key is typed. closes: #20666 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- diff --git a/src/edit.c b/src/edit.c index 93910de6b5..bc8ce4128d 100644 --- a/src/edit.c +++ b/src/edit.c @@ -677,6 +677,9 @@ edit( // Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. did_cursorhold = TRUE; + if (c != K_CURSORHOLD && c != K_COMPLETE_DELAY) + // Don't want delayed autocompletion from the previous key either. + ins_compl_clear_autocomplete_delay(); #ifdef FEAT_RIGHTLEFT if (p_hkmap && KeyTyped) diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index b178ad272b..cdcdb217e3 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -6000,6 +6000,27 @@ func Test_autocompletedelay_ctrl_g_U() call Run_test_autocompletedelay_ctrl_g_U(150, 500) endfunc +func Run_test_autocompletedelay_ctrl_k(delay1, delay2) + new + call setline(1, 'foo bar baz') + set autocomplete autocompletedelay=200 + + call timer_start(a:delay1, { -> feedkeys("\", 't') }) + call timer_start(a:delay2, { -> feedkeys(".,\", 't') }) + call feedkeys('ob', 'tx!') + call assert_equal(['foo bar baz', 'b…'], getline(1, '$')) + + set autocomplete& autocompletedelay& + bwipe! +endfunc + +func Test_autocompletedelay_ctrl_k() + " Ctrl-K typed after 'autocompletedelay' expires + call Run_test_autocompletedelay_ctrl_k(250, 500) + " Ctrl-K typed before 'autocompletedelay' expires + call Run_test_autocompletedelay_ctrl_k(150, 500) +endfunc + " Preinsert longest prefix when autocomplete func Test_autocomplete_longest() func GetLine() diff --git a/src/version.c b/src/version.c index 784016772a..a42f2bd839 100644 --- a/src/version.c +++ b/src/version.c @@ -759,6 +759,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 749, /**/ 748, /**/