diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-09-01 06:22:37 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2025-03-27 07:26:42 +0800 |
commit | 767a52ba308655f72ac4d255b4f13fd2c635f6d1 (patch) | |
tree | 500019b4c8fc60f5ace447ae6b9199cdd0306966 | |
parent | f4ddbaeb9e3dd68f8d6b90e805246a24b7960019 (diff) | |
download | rneovim-767a52ba308655f72ac4d255b4f13fd2c635f6d1.tar.gz rneovim-767a52ba308655f72ac4d255b4f13fd2c635f6d1.tar.bz2 rneovim-767a52ba308655f72ac4d255b4f13fd2c635f6d1.zip |
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
-rw-r--r-- | src/nvim/insexpand.c | 3 | ||||
-rw-r--r-- | test/functional/ui/popupmenu_spec.lua | 4 | ||||
-rw-r--r-- | test/old/testdir/test_popup.vim | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index af26e882dc..f2ad4c0757 100644 --- 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 index 6eb487d142..df236208c5 100644 --- 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 index 240529735f..5875341ab1 100644 --- 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', {}) |