0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 7.4.1757

Problem:    When using complete() it may set 'modified' even though nothing
            was inserted.
Solution:   Use Down/Up instead of Next/Previous match. (Shougo, closes #745)
This commit is contained in:
Bram Moolenaar
2016-04-20 16:39:19 +02:00
parent a6e4250142
commit 8e42ae5069
2 changed files with 9 additions and 5 deletions

View File

@@ -2813,12 +2813,15 @@ set_completion(colnr_T startcol, list_T *list)
compl_cont_status = 0;
compl_curr_match = compl_first_match;
if (compl_no_insert)
if (compl_no_insert || compl_no_select)
{
ins_complete(K_DOWN, FALSE);
if (compl_no_select)
/* Down/Up has no real effect. */
ins_complete(K_UP, FALSE);
}
else
ins_complete(Ctrl_N, FALSE);
if (compl_no_select)
ins_complete(Ctrl_P, FALSE);
/* Lazily show the popup menu, unless we got interrupted. */
if (!compl_interrupted)
@@ -4969,8 +4972,7 @@ ins_compl_check_keys(int frequency)
ins_compl_key2dir(int c)
{
if (c == Ctrl_P || c == Ctrl_L
|| (pum_visible() && (c == K_PAGEUP || c == K_KPAGEUP
|| c == K_S_UP || c == K_UP)))
|| c == K_PAGEUP || c == K_KPAGEUP || c == K_S_UP || c == K_UP)
return BACKWARD;
return FORWARD;
}