Problem: completion: crash with fuzzy completion
(Christian Brabandt)
Solution: When completion candidates are gathered from a different
window, and when completing `<c-p>`, linked list should be
sorted only after all items are collected (Girish Palya).
fixes: #18752
closes: #18756
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
}
may_trigger_modechanged();
- if (is_nearest_active() && !ins_compl_has_preinsert())
- sort_compl_match_list(cp_compare_nearest);
+ if (match_count > 0)
+ {
+ if (is_nearest_active() && !ins_compl_has_preinsert())
+ sort_compl_match_list(cp_compare_nearest);
- if ((get_cot_flags() & COT_FUZZY) && ins_compl_leader_len() > 0)
- ins_compl_fuzzy_sort();
+ if ((get_cot_flags() & COT_FUZZY) && ins_compl_leader_len() > 0)
+ ins_compl_fuzzy_sort();
+ }
return match_count;
}
set completeopt& cfc& cpt&
endfunc
+" Issue #18752
+func Test_complete_fuzzy_collect_multiwin()
+ new
+ set completefuzzycollect=keyword,files,whole_line
+ set completeopt=fuzzy
+
+ vnew
+ call setline(1, ["completeness,", "compatibility", "Composite", "Omnipotent"])
+ wincmd p
+ call feedkeys("Somp\<C-P>\<Esc>0", 'tx!')
+ call assert_equal('Omnipotent', getline('.'))
+
+ bw!
+ set completeopt& cfc&
+endfunc
+
func Test_cfc_with_longest()
new
set completefuzzycollect=keyword,files,whole_line
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1918,
/**/
1917,
/**/