mirror of
https://github.com/vim/vim
synced 2025-07-15 16:51:57 +00:00
patch 9.1.1540: completion: menu state wrong on interruption
Problem: completion: menu state wrong on interruption (Maxim Kim) Solution: Call show_pum() if completion was interrupted (Girish Palya). Popup menu was not built after fuzzy sorting, so internal state wasn't reflected on screen. No test. Couldn't get the terminal test to trigger both interruption and refresh together. fixes: #17725 closes: #17736 Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
fe1d3c8af7
commit
f6a308c65b
@ -2395,6 +2395,8 @@ ins_compl_need_restart(void)
|
|||||||
ins_compl_new_leader(void)
|
ins_compl_new_leader(void)
|
||||||
{
|
{
|
||||||
int cur_cot_flags = get_cot_flags();
|
int cur_cot_flags = get_cot_flags();
|
||||||
|
int save_w_wrow;
|
||||||
|
int save_w_leftcol;
|
||||||
|
|
||||||
ins_compl_del_pum();
|
ins_compl_del_pum();
|
||||||
ins_compl_delete();
|
ins_compl_delete();
|
||||||
@ -2424,8 +2426,10 @@ ins_compl_new_leader(void)
|
|||||||
out_flush_cursor(FALSE, FALSE);
|
out_flush_cursor(FALSE, FALSE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
save_w_wrow = curwin->w_wrow;
|
||||||
|
save_w_leftcol = curwin->w_leftcol;
|
||||||
compl_restarting = TRUE;
|
compl_restarting = TRUE;
|
||||||
if (ins_complete(Ctrl_N, TRUE) == FAIL)
|
if (ins_complete(Ctrl_N, FALSE) == FAIL)
|
||||||
compl_cont_status = 0;
|
compl_cont_status = 0;
|
||||||
compl_restarting = FALSE;
|
compl_restarting = FALSE;
|
||||||
}
|
}
|
||||||
@ -2451,7 +2455,8 @@ ins_compl_new_leader(void)
|
|||||||
compl_enter_selects = !compl_used_match && compl_selected_item != -1;
|
compl_enter_selects = !compl_used_match && compl_selected_item != -1;
|
||||||
|
|
||||||
// Show the popup menu with a different set of matches.
|
// Show the popup menu with a different set of matches.
|
||||||
ins_compl_show_pum();
|
if (!compl_interrupted)
|
||||||
|
show_pum(save_w_wrow, save_w_leftcol);
|
||||||
|
|
||||||
// Don't let Enter select the original text when there is no popup menu.
|
// Don't let Enter select the original text when there is no popup menu.
|
||||||
if (compl_match_array == NULL)
|
if (compl_match_array == NULL)
|
||||||
|
@ -719,6 +719,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1540,
|
||||||
/**/
|
/**/
|
||||||
1539,
|
1539,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user