mirror of
https://github.com/neovim/neovim.git
synced 2025-09-23 19:48:32 +00:00
vim-patch:9.1.1121: Enter does not insert newline with "noselect"
Problem: Enter does not insert newline with "noselect" when the pum is
visible (lifepillar)
Solution: When Enter is pressed and no complete-item is selected,
ins_compl_prep returns false, and the edit function continues
processing Enter to insert a new line. (glepnir)
fixes: vim/vim#1653
closes: vim/vim#16653
07f0dbe3aa
Co-authored-by: glepnir <glephunter@gmail.com>
This commit is contained in:
@@ -1744,6 +1744,7 @@ void ins_compl_clear(void)
|
||||
compl_cont_status = 0;
|
||||
compl_started = false;
|
||||
compl_matches = 0;
|
||||
compl_selected_item = -1;
|
||||
compl_ins_end_col = 0;
|
||||
API_CLEAR_STRING(compl_pattern);
|
||||
API_CLEAR_STRING(compl_leader);
|
||||
@@ -2300,6 +2301,7 @@ bool ins_compl_prep(int c)
|
||||
{
|
||||
bool retval = false;
|
||||
const int prev_mode = ctrl_x_mode;
|
||||
bool handle_enter = ((c == CAR || c == NL || c == K_KENTER) && compl_selected_item == -1);
|
||||
|
||||
// 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.
|
||||
@@ -2366,6 +2368,12 @@ bool ins_compl_prep(int c)
|
||||
&& !ins_compl_pum_key(c))
|
||||
|| ctrl_x_mode == CTRL_X_FINISHED) {
|
||||
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) {
|
||||
// Trigger the CompleteDone event to give scripts a chance to act
|
||||
|
Reference in New Issue
Block a user