mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
patch 9.1.1475: completion: regression when "nearest" in 'completeopt'
Problem: completion: regression when "nearest" in 'completeopt' Solution: fix compare function (Girish Palya) closes: #17577 Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
1cbe3e89c9
commit
cd68f21f60
@ -1404,7 +1404,7 @@ cp_compare_nearest(const void* a, const void* b)
|
|||||||
{
|
{
|
||||||
int score_a = ((compl_T*)a)->cp_score;
|
int score_a = ((compl_T*)a)->cp_score;
|
||||||
int score_b = ((compl_T*)b)->cp_score;
|
int score_b = ((compl_T*)b)->cp_score;
|
||||||
if (score_a < 0 || score_b < 0)
|
if (score_a == 0 || score_b == 0)
|
||||||
return 0;
|
return 0;
|
||||||
return (score_a > score_b) ? 1 : (score_a < score_b) ? -1 : 0;
|
return (score_a > score_b) ? 1 : (score_a < score_b) ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
@ -4492,6 +4492,22 @@ func Test_nearest_cpt_option()
|
|||||||
exe "normal! of\<c-n>\<c-r>=PrintMenuWords()\<cr>"
|
exe "normal! of\<c-n>\<c-r>=PrintMenuWords()\<cr>"
|
||||||
call assert_equal('f{''matches'': [''foo1'', ''foo3'', ''foo2''], ''selected'': -1}', getline(2))
|
call assert_equal('f{''matches'': [''foo1'', ''foo3'', ''foo2''], ''selected'': -1}', getline(2))
|
||||||
|
|
||||||
|
" Multiple sources
|
||||||
|
func F1(findstart, base)
|
||||||
|
if a:findstart
|
||||||
|
return col('.') - 1
|
||||||
|
endif
|
||||||
|
return ['foo4', 'foo5']
|
||||||
|
endfunc
|
||||||
|
%d
|
||||||
|
set complete+=FF1
|
||||||
|
call setline(1, ["foo1", "foo2", "bar1", "foo3"])
|
||||||
|
exe "normal! 2jof\<c-n>\<c-r>=PrintMenuWords()\<cr>"
|
||||||
|
call assert_equal('f{''matches'': [''foo3'', ''foo2'', ''foo1'', ''foo4'', ''foo5''],
|
||||||
|
\ ''selected'': -1}', getline(4))
|
||||||
|
set complete-=FF1
|
||||||
|
delfunc F1
|
||||||
|
|
||||||
set completeopt=menu,longest,nearest
|
set completeopt=menu,longest,nearest
|
||||||
%d
|
%d
|
||||||
call setline(1, ["fo", "foo", "foobar", "foobarbaz"])
|
call setline(1, ["fo", "foo", "foobar", "foobarbaz"])
|
||||||
|
@ -709,6 +709,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1475,
|
||||||
/**/
|
/**/
|
||||||
1474,
|
1474,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user