# HG changeset patch # User Bram Moolenaar # Date 1607777104 -3600 # Node ID 5e6855ebc4eaf2bf76d6eb1f411a1ef6f197038a # Parent 56ca83d325b512e4212e1a9ad66d3b086db2f4ce patch 8.2.2130: Insert mode completion messages end up in message history Commit: https://github.com/vim/vim/commit/cc2335896ba707bf0d8cf03cca2de7c66fab62a0 Author: Bram Moolenaar Date: Sat Dec 12 13:32:07 2020 +0100 patch 8.2.2130: Insert mode completion messages end up in message history Problem: Insert mode completion messages end up in message history. Solution: Set msg_hist_off. (closes https://github.com/vim/vim/issues/7452 diff --git a/src/insexpand.c b/src/insexpand.c --- a/src/insexpand.c +++ b/src/insexpand.c @@ -1298,6 +1298,7 @@ ins_compl_files( fp = mch_fopen((char *)files[i], "r"); // open dictionary file if (flags != DICT_EXACT) { + msg_hist_off = TRUE; // reset in msg_trunc_attr() vim_snprintf((char *)IObuff, IOSIZE, _("Scanning dictionary: %s"), (char *)files[i]); (void)msg_trunc_attr((char *)IObuff, TRUE, HL_ATTR(HLF_R)); @@ -2778,6 +2779,7 @@ ins_compl_get_exp(pos_T *ini) dict = ins_buf->b_fname; dict_f = DICT_EXACT; } + msg_hist_off = TRUE; // reset in msg_trunc_attr() vim_snprintf((char *)IObuff, IOSIZE, _("Scanning: %s"), ins_buf->b_fname == NULL ? buf_spname(ins_buf) @@ -2812,6 +2814,7 @@ ins_compl_get_exp(pos_T *ini) #endif else if (*e_cpt == ']' || *e_cpt == 't') { + msg_hist_off = TRUE; // reset in msg_trunc_attr() type = CTRL_X_TAGS; vim_snprintf((char *)IObuff, IOSIZE, _("Scanning tags.")); (void)msg_trunc_attr((char *)IObuff, TRUE, HL_ATTR(HLF_R)); @@ -3423,9 +3426,11 @@ ins_compl_next( MB_PTR_ADV(s); } } + msg_hist_off = TRUE; vim_snprintf((char *)IObuff, IOSIZE, "%s %s%s", lead, s > compl_shown_match->cp_fname ? "<" : "", s); msg((char *)IObuff); + msg_hist_off = FALSE; redraw_cmdline = FALSE; // don't overwrite! } } @@ -4105,9 +4110,13 @@ ins_complete(int c, int enable_pum) if (edit_submode_extra != NULL) { if (!p_smd) + { + msg_hist_off = TRUE; msg_attr((char *)edit_submode_extra, edit_submode_highl < HLF_COUNT ? HL_ATTR(edit_submode_highl) : 0); + msg_hist_off = FALSE; + } } else msg_clr_cmdline(); // necessary for "noshowmode" diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -114,7 +114,7 @@ func Test_omni_dash() set omnifunc=Omni new exe "normal Gofind -\\" - call assert_equal("\n-\nmatch 1 of 2", execute(':2mess')) + call assert_equal("find -help", getline('$')) bwipe! delfunc Omni @@ -714,4 +714,16 @@ func Test_issue_7021() set completeslash= endfunc +" Test to ensure 'Scanning...' messages are not recorded in messages history +func Test_z1_complete_no_history() + new + messages clear + let currmess = execute('messages') + setlocal dictionary=README.txt + exe "normal owh\\" + exe "normal owh\" + call assert_equal(currmess, execute('messages')) + close! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2130, +/**/ 2129, /**/ 2128,