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
index 7c772df..f2e6e66 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -6254,6 +6254,9 @@
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 <Enter>, but still gives as useful a message as
diff --git a/src/edit.c b/src/edit.c
index a0ad9aa..94ec789 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -3854,7 +3854,8 @@
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 @@
{
ctrl_x_mode = 0;
edit_submode = NULL;
- msg_clr_cmdline();
+ if (!shortmess(SHM_COMPLETIONMENU))
+ msg_clr_cmdline();
return FAIL;
}
@@ -5544,15 +5546,18 @@
/* 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 4ccde58..dc56629 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 aea3f75..87b1259 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 @@
}
#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 dc5988b..0ebf14d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 314,
+/**/
313,
/**/
312,