break;
case K_COMPLETE_DELAY: // 'autocompletedelay' expired
+ // If CTRL-G U was used apply it to the next typed key.
+ if (dont_sync_undo == TRUE)
+ dont_sync_undo = MAYBE;
ins_compl_clear_autocomplete_delay();
if (!ins_compl_has_autocomplete() || char_avail()
|| curwin->w_cursor.col == 0)
call StopVimInTerminal(buf)
endfunc
+func Run_test_autocompletedelay_ctrl_g_U(delay1, delay2)
+ new
+ call setline(1, 'foo bar baz')
+ inoremap <buffer> ( ()<C-g>U
+ set autocomplete autocompletedelay=200
+
+ call timer_start(a:delay1, { -> feedkeys('(', 't') })
+ call timer_start(a:delay2, { -> feedkeys("\<Left>a\<Esc>", 't') })
+ call feedkeys('ob', 'tx!')
+ call assert_equal(['foo bar baz', 'b(a)'], getline(1, '$'))
+ undo
+ call assert_equal(['foo bar baz'], getline(1, '$'))
+
+ set autocomplete& autocompletedelay&
+ bwipe!
+endfunc
+
+func Test_autocompletedelay_ctrl_g_U()
+ " '(' typed after 'autocompletedelay' expires
+ call Run_test_autocompletedelay_ctrl_g_U(250, 500)
+ " '(' typed before 'autocompletedelay' expires
+ call Run_test_autocompletedelay_ctrl_g_U(150, 500)
+endfunc
+
" Preinsert longest prefix when autocomplete
func Test_autocomplete_longest()
func GetLine()