commit 767a52ba308655f72ac4d255b4f13fd2c635f6d1
parent f4ddbaeb9e3dd68f8d6b90e805246a24b7960019
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sun, 1 Sep 2024 06:22:37 +0800
vim-patch:9.1.0705: Sorting of fuzzy filename completion is not stable
Problem: Sorting of fuzzy filename completion is not stable
Solution: Compare indexes when scores are equal. Fix some typos.
(zeertzjq)
closes: vim/vim#15593
https://github.com/vim/vim/commit/58d705238c0794ee3baa4173831ab157e709a48a
Diffstat:
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c
@@ -3306,7 +3306,8 @@ static int compare_scores(const void *a, const void *b)
int idx_b = *(const int *)b;
int score_a = compl_fuzzy_scores[idx_a];
int score_b = compl_fuzzy_scores[idx_b];
- return (score_a > score_b) ? -1 : (score_a < score_b) ? 1 : 0;
+ return score_a == score_b ? (idx_a == idx_b ? 0 : (idx_a < idx_b ? -1 : 1))
+ : (score_a > score_b ? -1 : 1);
}
/// Get the next set of filename matching "compl_pattern".
diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua
@@ -6955,9 +6955,9 @@ describe('builtin popupmenu', function()
{2:-- }{5:match 2 of 3} |
]])
- feed('<Esc>S/non_exit_folder<C-X><C-F>')
+ feed('<Esc>S/non_existing_folder<C-X><C-F>')
screen:expect([[
- /non_exit_folder^ |
+ /non_existing_folder^ |
{1:~ }|*18
{2:-- }{6:Pattern not found} |
]])
diff --git a/test/old/testdir/test_popup.vim b/test/old/testdir/test_popup.vim
@@ -1514,7 +1514,7 @@ func Test_pum_highlights_match()
call VerifyScreenDump(buf, 'Test_pum_highlights_11', {})
" issue #15357
- call term_sendkeys(buf, "\<ESC>S/non_exit_folder\<C-X>\<C-F>")
+ call term_sendkeys(buf, "\<ESC>S/non_existing_folder\<C-X>\<C-F>")
call TermWait(buf, 50)
call VerifyScreenDump(buf, 'Test_pum_highlights_15', {})