From 589afcfc758d47b4963e526a82a4fba6e5f436f3 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 28 May 2014 21:40:52 +0200 Subject: [PATCH] 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) --- runtime/doc/options.txt | 3 +++ src/edit.c | 23 ++++++++++++++--------- src/option.h | 3 ++- src/screen.c | 5 +++-- src/version.c | 2 ++ 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 7c772dfcc1..f2e6e66cc7 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6254,6 +6254,9 @@ A jump table for the options with a short description can be found at |Q_op|. 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 index a0ad9aaed7..94ec789769 100644 --- 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 (!shortmess(SHM_COMPLETIONMENU)) { - if (!p_smd) - msg_attr(edit_submode_extra, - edit_submode_highl < HLF_COUNT - ? hl_attr(edit_submode_highl) : 0); + 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" */ } - 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 index 4ccde58a2b..dc56629484 100644 --- 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 index aea3f75a49..87b1259110 100644 --- 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 index dc5988be50..0ebf14d65d 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 314, /**/ 313, /**/