mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.0.0247: need to type Ctrl-N twice to select a completion
Problem: Under some circumstances, one needs to type Ctrl-N or Ctrl-P twice to have a menu entry selected. (Lifepillar) Solution: call ins_compl_free(). (Christian Brabandt, closes #1411)
This commit is contained in:
@@ -2821,6 +2821,7 @@ set_completion(colnr_T startcol, list_T *list)
|
||||
if (ctrl_x_mode != 0)
|
||||
ins_compl_prep(' ');
|
||||
ins_compl_clear();
|
||||
ins_compl_free();
|
||||
|
||||
compl_direction = FORWARD;
|
||||
if (startcol > curwin->w_cursor.col)
|
||||
|
@@ -7,10 +7,10 @@ func! ListMonths()
|
||||
if g:setting != ''
|
||||
exe ":set" g:setting
|
||||
endif
|
||||
let mth=copy(g:months)
|
||||
let mth = copy(g:months)
|
||||
let entered = strcharpart(getline('.'),0,col('.'))
|
||||
if !empty(entered)
|
||||
let mth=filter(mth, 'v:val=~"^".entered')
|
||||
let mth = filter(mth, 'v:val=~"^".entered')
|
||||
endif
|
||||
call complete(1, mth)
|
||||
return ''
|
||||
@@ -468,7 +468,7 @@ endfunc
|
||||
" auto-wrap text.
|
||||
func Test_completion_ctrl_e_without_autowrap()
|
||||
new
|
||||
let tw_save=&tw
|
||||
let tw_save = &tw
|
||||
set tw=78
|
||||
let li = [
|
||||
\ '" zzz',
|
||||
@@ -478,8 +478,37 @@ func Test_completion_ctrl_e_without_autowrap()
|
||||
call feedkeys("A\<C-X>\<C-N>\<C-E>\<Esc>", "tx")
|
||||
call assert_equal(li, getline(1, '$'))
|
||||
|
||||
let &tw=tw_save
|
||||
let &tw = tw_save
|
||||
q!
|
||||
endfunc
|
||||
|
||||
function! DummyCompleteSix()
|
||||
call complete(1, ['Hello', 'World'])
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
" complete() correctly clears the list of autocomplete candidates
|
||||
" See #1411
|
||||
func Test_completion_clear_candidate_list()
|
||||
new
|
||||
%d
|
||||
" select first entry from the completion popup
|
||||
call feedkeys("a xxx\<C-N>\<C-R>=DummyCompleteSix()\<CR>", "tx")
|
||||
call assert_equal('Hello', getline(1))
|
||||
%d
|
||||
" select second entry from the completion popup
|
||||
call feedkeys("a xxx\<C-N>\<C-R>=DummyCompleteSix()\<CR>\<C-N>", "tx")
|
||||
call assert_equal('World', getline(1))
|
||||
%d
|
||||
" select original text
|
||||
call feedkeys("a xxx\<C-N>\<C-R>=DummyCompleteSix()\<CR>\<C-N>\<C-N>", "tx")
|
||||
call assert_equal(' xxx', getline(1))
|
||||
%d
|
||||
" back at first entry from completion list
|
||||
call feedkeys("a xxx\<C-N>\<C-R>=DummyCompleteSix()\<CR>\<C-N>\<C-N>\<C-N>", "tx")
|
||||
call assert_equal('Hello', getline(1))
|
||||
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@@ -764,6 +764,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
247,
|
||||
/**/
|
||||
246,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user