changeset 30807:442a574ffae3 v9.0.0738

patch 9.0.0738: cannot suppress completion "scanning" messages Commit: https://github.com/vim/vim/commit/91ccbad5ded8bcf2cc93a873ff2c3179b0c548c7 Author: =?UTF-8?q?Bj=C3=B6rn=20Linse?= <bjorn.linse@gmail.com> Date: Thu Oct 13 12:51:13 2022 +0100 patch 9.0.0738: cannot suppress completion "scanning" messages Problem: Cannot suppress completion "scanning" messages. Solution: Add the "C" flag in 'shortmess'. (Bjorn Linse, closes https://github.com/vim/vim/issues/11354)
author Bram Moolenaar <Bram@vim.org>
date Thu, 13 Oct 2022 14:00:05 +0200
parents 669a30fb92d7
children 384b77639588
files runtime/doc/options.txt src/insexpand.c src/option.h src/version.c
diffstat 4 files changed, 24 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -7079,6 +7079,8 @@ A jump table for the options with a shor
 	  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.
+	  C	don't give messages while scanning for ins-completion items,
+		for instance "scanning tags"
 	  q	use "recording" instead of "recording @a"
 	  F	don't give the file info when editing a file, like `:silent`
 		was used for the command; note that this also affects messages
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -1573,7 +1573,7 @@ ins_compl_files(
     for (i = 0; i < count && !got_int && !compl_interrupted; i++)
     {
 	fp = mch_fopen((char *)files[i], "r");  // open dictionary file
-	if (flags != DICT_EXACT)
+	if (flags != DICT_EXACT && !shortmess(SHM_COMPLETIONSCAN))
 	{
 	    msg_hist_off = TRUE;	// reset in msg_trunc_attr()
 	    vim_snprintf((char *)IObuff, IOSIZE,
@@ -3281,14 +3281,17 @@ process_next_cpt_value(
 	    st->dict = st->ins_buf->b_fname;
 	    st->dict_f = DICT_EXACT;
 	}
-	msg_hist_off = TRUE;	// reset in msg_trunc_attr()
-	vim_snprintf((char *)IObuff, IOSIZE, _("Scanning: %s"),
-		st->ins_buf->b_fname == NULL
-		    ? buf_spname(st->ins_buf)
-		    : st->ins_buf->b_sfname == NULL
-			? st->ins_buf->b_fname
-			: st->ins_buf->b_sfname);
-	(void)msg_trunc_attr((char *)IObuff, TRUE, HL_ATTR(HLF_R));
+	if (!shortmess(SHM_COMPLETIONSCAN))
+	{
+	    msg_hist_off = TRUE;	// reset in msg_trunc_attr()
+	    vim_snprintf((char *)IObuff, IOSIZE, _("Scanning: %s"),
+		    st->ins_buf->b_fname == NULL
+			? buf_spname(st->ins_buf)
+			: st->ins_buf->b_sfname == NULL
+			    ? st->ins_buf->b_fname
+			    : st->ins_buf->b_sfname);
+	    (void)msg_trunc_attr((char *)IObuff, TRUE, HL_ATTR(HLF_R));
+	}
     }
     else if (*st->e_cpt == NUL)
 	status = INS_COMPL_CPT_END;
@@ -3316,10 +3319,13 @@ process_next_cpt_value(
 #endif
 	else if (*st->e_cpt == ']' || *st->e_cpt == 't')
 	{
-	    msg_hist_off = TRUE;	// reset in msg_trunc_attr()
 	    compl_type = CTRL_X_TAGS;
-	    vim_snprintf((char *)IObuff, IOSIZE, _("Scanning tags."));
-	    (void)msg_trunc_attr((char *)IObuff, TRUE, HL_ATTR(HLF_R));
+	    if (!shortmess(SHM_COMPLETIONSCAN))
+	    {
+		msg_hist_off = TRUE;	// reset in msg_trunc_attr()
+		vim_snprintf((char *)IObuff, IOSIZE, _("Scanning tags."));
+		(void)msg_trunc_attr((char *)IObuff, TRUE, HL_ATTR(HLF_R));
+	    }
 	}
 	else
 	    compl_type = -1;
--- a/src/option.h
+++ b/src/option.h
@@ -265,11 +265,12 @@ typedef enum {
 #define SHM_ATTENTION	'A'		// no ATTENTION messages
 #define SHM_INTRO	'I'		// intro messages
 #define SHM_COMPLETIONMENU  'c'		// completion menu messages
+#define SHM_COMPLETIONSCAN  'C'		// completion scanning messages
 #define SHM_RECORDING	'q'		// short recording message
 #define SHM_FILEINFO	'F'		// no file info messages
 #define SHM_SEARCHCOUNT  'S'		// search stats: '[1/10]'
 #define SHM_POSIX       "AS"		// POSIX value
-#define SHM_ALL		"rmfixlnwaWtToOsAIcqFS" // all possible flags for 'shm'
+#define SHM_ALL		"rmfixlnwaWtToOsAIcCqFS" // all possible flags for 'shm'
 
 // characters for p_go:
 #define GO_TERMINAL	'!'		// use terminal for system commands
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    738,
+/**/
     737,
 /**/
     736,