# HG changeset patch # User Bram Moolenaar # Date 1401306052 -7200 # Node ID 4d7af1962d6ce61df65fdc5c86544a61951f9517 # Parent 5976b378f610faaba3c963031e0da58f79f88698 updated for version 7.4.314 Problem: Completion messages can get in the way of a plugin. Solution: Add 'c' flag to 'shortmess' option. (Shougo Matsu) diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6254,6 +6254,9 @@ A jump table for the options with a shor A don't give the "ATTENTION" message when an existing swap file is found. I don't give the intro message when starting Vim |:intro|. + c don't give |ins-completion-menu| messages. For example, + "-- XXX completion (YYY)", "match 1 of 2", "The only match", + "Pattern not found", "Back at original", etc. This gives you the opportunity to avoid that a change between buffers requires you to hit , but still gives as useful a message as diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -3854,7 +3854,8 @@ ins_compl_prep(c) ins_compl_free(); compl_started = FALSE; compl_matches = 0; - msg_clr_cmdline(); /* necessary for "noshowmode" */ + if (!shortmess(SHM_COMPLETIONMENU)) + msg_clr_cmdline(); /* necessary for "noshowmode" */ ctrl_x_mode = 0; compl_enter_selects = FALSE; if (edit_submode != NULL) @@ -5285,7 +5286,8 @@ ins_complete(c) { ctrl_x_mode = 0; edit_submode = NULL; - msg_clr_cmdline(); + if (!shortmess(SHM_COMPLETIONMENU)) + msg_clr_cmdline(); return FAIL; } @@ -5544,15 +5546,18 @@ ins_complete(c) /* Show a message about what (completion) mode we're in. */ showmode(); - if (edit_submode_extra != NULL) - { - if (!p_smd) - msg_attr(edit_submode_extra, - edit_submode_highl < HLF_COUNT - ? hl_attr(edit_submode_highl) : 0); - } - else - msg_clr_cmdline(); /* necessary for "noshowmode" */ + if (!shortmess(SHM_COMPLETIONMENU)) + { + if (edit_submode_extra != NULL) + { + if (!p_smd) + msg_attr(edit_submode_extra, + edit_submode_highl < HLF_COUNT + ? hl_attr(edit_submode_highl) : 0); + } + else + msg_clr_cmdline(); /* necessary for "noshowmode" */ + } /* Show the popup menu, unless we got interrupted. */ if (!compl_interrupted) diff --git a/src/option.h b/src/option.h --- a/src/option.h +++ b/src/option.h @@ -212,7 +212,8 @@ #define SHM_SEARCH 's' /* no search hit bottom messages */ #define SHM_ATTENTION 'A' /* no ATTENTION messages */ #define SHM_INTRO 'I' /* intro messages */ -#define SHM_ALL "rmfixlnwaWtToOsAI" /* all possible flags for 'shm' */ +#define SHM_COMPLETIONMENU 'c' /* completion menu messages */ +#define SHM_ALL "rmfixlnwaWtToOsAIc" /* all possible flags for 'shm' */ /* characters for p_go: */ #define GO_ASEL 'a' /* autoselect */ diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -42,7 +42,7 @@ * * The part of the buffer that is displayed in a window is set with: * - w_topline (first buffer line in window) - * - w_topfill (filler line above the first line) + * - w_topfill (filler lines above the first line) * - w_leftcol (leftmost window cell in window), * - w_skipcol (skipped window cells of first line) * @@ -9683,7 +9683,8 @@ showmode() } #endif #ifdef FEAT_INS_EXPAND - if (edit_submode != NULL) /* CTRL-X in Insert mode */ + /* CTRL-X in Insert mode */ + if (edit_submode != NULL && !shortmess(SHM_COMPLETIONMENU)) { /* These messages can get long, avoid a wrap in a narrow * window. Prefer showing edit_submode_extra. */ diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 314, +/**/ 313, /**/ 312,