diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2025-06-06 10:46:01 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-06 02:46:01 +0000 |
| commit | 552983515f2aed9d1017ba67b24b7673fdfcabe8 (patch) | |
| tree | b51f6aff56b7af5e6d990fe50b3fd309bbd7473e /runtime/lua/vim | |
| parent | 4e71d3bfab3d21059bb3492c447a383e91931541 (diff) | |
| download | rneovim-552983515f2aed9d1017ba67b24b7673fdfcabe8.tar.gz rneovim-552983515f2aed9d1017ba67b24b7673fdfcabe8.tar.bz2 rneovim-552983515f2aed9d1017ba67b24b7673fdfcabe8.zip | |
vim-patch:9.1.1435: completion: various flaws in fuzzy completion (#34335)
Problem: completion: various flaws in fuzzy completion
Solution: fix the issues (Girish Palya)
- Remove the brittle `qsort()` on `compl_match_array`.
- Add a stable, non-recursive `mergesort` for the internal doubly
linked list of matches.
- The sort now happens directly on the internal representation (`compl_T`),
preserving sync with external structures and making sorting stable.
- Update fuzzy match logic to enforce `max_matches` limits after
sorting.
- Remove `trim_compl_match_array()`, which is no longer necessary.
- Fixe test failures by correctly setting `selected` index and
maintaining match consistency.
- Introduce `mergesort_list()` in `misc2.c`, which operates generically
over doubly linked lists.
- Remove `pum_score` and `pum_idx` variables
fixes: vim/vim#17387
closes: vim/vim#17430
https://github.com/vim/vim/commit/8cd42a58b49c948ab59ced6ca5f5ccfae5d9ecea
Co-authored-by: Girish Palya <girishji@gmail.com>
Diffstat (limited to 'runtime/lua/vim')
0 files changed, 0 insertions, 0 deletions