patch 9.1.1126: patch 9.1.1121 used a wrong way to handle enter
Problem: patch 9.1.1121 used a wrong way to handle enter
Solution: compl_enter_selects also needs to consider the selected item
in ins_compl_new_leader() (glepnir)
closes: #16673
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
3af0a8d8f5
commit
4418041698
@ -2109,7 +2109,7 @@ ins_compl_new_leader(void)
|
|||||||
compl_restarting = FALSE;
|
compl_restarting = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
compl_enter_selects = !compl_used_match;
|
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();
|
ins_compl_show_pum();
|
||||||
@ -2580,10 +2580,6 @@ ins_compl_prep(int c)
|
|||||||
{
|
{
|
||||||
int retval = FALSE;
|
int retval = FALSE;
|
||||||
int prev_mode = ctrl_x_mode;
|
int prev_mode = ctrl_x_mode;
|
||||||
int handle_enter = FALSE;
|
|
||||||
|
|
||||||
if ((c == CAR || c == NL || c == K_KENTER) && compl_selected_item == -1)
|
|
||||||
handle_enter = TRUE;
|
|
||||||
|
|
||||||
// Forget any previous 'special' messages if this is actually
|
// Forget any previous 'special' messages if this is actually
|
||||||
// a ^X mode key - bar ^R, in which case we wait to see what it gives us.
|
// a ^X mode key - bar ^R, in which case we wait to see what it gives us.
|
||||||
@ -2681,14 +2677,7 @@ ins_compl_prep(int c)
|
|||||||
if ((ctrl_x_mode_normal() && c != Ctrl_N && c != Ctrl_P
|
if ((ctrl_x_mode_normal() && c != Ctrl_N && c != Ctrl_P
|
||||||
&& c != Ctrl_R && !ins_compl_pum_key(c))
|
&& c != Ctrl_R && !ins_compl_pum_key(c))
|
||||||
|| ctrl_x_mode == CTRL_X_FINISHED)
|
|| ctrl_x_mode == CTRL_X_FINISHED)
|
||||||
{
|
|
||||||
retval = ins_compl_stop(c, prev_mode, retval);
|
retval = ins_compl_stop(c, prev_mode, retval);
|
||||||
// When it is the Enter key and no selected item, return false, and
|
|
||||||
// continue processing the Enter key to insert a new line in the
|
|
||||||
// edit function.
|
|
||||||
if (retval && handle_enter)
|
|
||||||
retval = FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (ctrl_x_mode == CTRL_X_LOCAL_MSG)
|
else if (ctrl_x_mode == CTRL_X_LOCAL_MSG)
|
||||||
// Trigger the CompleteDone event to give scripts a chance to act
|
// Trigger the CompleteDone event to give scripts a chance to act
|
||||||
|
|||||||
@ -594,7 +594,7 @@ func Test_edit_CTRL_I()
|
|||||||
call assert_equal([include, 'two', ''], getline(1, '$'))
|
call assert_equal([include, 'two', ''], getline(1, '$'))
|
||||||
call feedkeys("2ggC\<c-x>\<tab>\<down>\<down>\<cr>\<esc>", 'tnix')
|
call feedkeys("2ggC\<c-x>\<tab>\<down>\<down>\<cr>\<esc>", 'tnix')
|
||||||
call assert_equal([include, 'three', ''], getline(1, '$'))
|
call assert_equal([include, 'three', ''], getline(1, '$'))
|
||||||
call feedkeys("2ggC\<c-x>\<tab>\<down>\<down>\<down>\<C-y>\<esc>", 'tnix')
|
call feedkeys("2ggC\<c-x>\<tab>\<down>\<down>\<down>\<cr>\<esc>", 'tnix')
|
||||||
call assert_equal([include, '', ''], getline(1, '$'))
|
call assert_equal([include, '', ''], getline(1, '$'))
|
||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
@ -622,7 +622,7 @@ func Test_edit_CTRL_K()
|
|||||||
%d
|
%d
|
||||||
call setline(1, 'A')
|
call setline(1, 'A')
|
||||||
call cursor(1, 1)
|
call cursor(1, 1)
|
||||||
call feedkeys("A\<c-x>\<c-k>\<down>\<down>\<down>\<C-Y>\<esc>", 'tnix')
|
call feedkeys("A\<c-x>\<c-k>\<down>\<down>\<down>\<cr>\<esc>", 'tnix')
|
||||||
call assert_equal(['A'], getline(1, '$'))
|
call assert_equal(['A'], getline(1, '$'))
|
||||||
%d
|
%d
|
||||||
call setline(1, 'A')
|
call setline(1, 'A')
|
||||||
|
|||||||
@ -704,6 +704,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 */
|
||||||
|
/**/
|
||||||
|
1126,
|
||||||
/**/
|
/**/
|
||||||
1125,
|
1125,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user