patch 9.1.1441: completion: code can be improved
Problem: completion: code can be improved
Solution: remove reposition_match() and use mergesort_list(),
for fuzzy completion, sort by fuzzy score immediately after
setting a new leader (Girish Palya)
closes: #17460
Co-authored-by: glepnir <glephunter@gmail.com>
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index fcd2e6c..33c87cb 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -3394,8 +3394,11 @@
endif
if g:change == 0
return [#{word: "foo"}, #{word: "foobar"}, #{word: "fooBaz"}, #{word: "foobala"}, #{word: "你好吗"}, #{word: "我好"}]
+ elseif g:change == 1
+ return [#{word: "cp_match_array"}, #{word: "cp_str"}, #{word: "cp_score"}]
+ else
+ return [#{word: "for i = .."}, #{word: "bar"}, #{word: "foo"}, #{word: "for .. ipairs"}, #{word: "for .. pairs"}]
endif
- return [#{word: "for i = .."}, #{word: "bar"}, #{word: "foo"}, #{word: "for .. ipairs"}, #{word: "for .. pairs"}]
endfunc
new
@@ -3493,7 +3496,7 @@
call assert_equal('alpha bravio charlie', getline('.'))
set cot=fuzzy,menu,noinsert
- call feedkeys(":let g:change=1\<CR>")
+ call feedkeys(":let g:change=2\<CR>")
call feedkeys("S\<C-X>\<C-O>for\<C-N>\<C-N>\<C-N>", 'tx')
call assert_equal('for', getline('.'))
call feedkeys("S\<C-X>\<C-O>for\<C-P>", 'tx')
@@ -3501,6 +3504,10 @@
call feedkeys("S\<C-X>\<C-O>for\<C-P>\<C-P>", 'tx')
call assert_equal('for .. ipairs', getline('.'))
+ call feedkeys(":let g:change=1\<CR>")
+ call feedkeys("S\<C-X>\<C-O>c\<C-Y>", 'tx')
+ call assert_equal('cp_str', getline('.'))
+
" clean up
set omnifunc=
bw!