mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.1393: too much highlighting with 'hlsearch' and 'incsearch' set
Problem: Too much highlighting with 'hlsearch' and 'incsearch' set. Solution: Do not highlight matches when the pattern matches everything.
This commit is contained in:
parent
8b42328cef
commit
6621605eb9
@ -172,6 +172,22 @@ abandon_cmdline(void)
|
||||
redraw_cmdline = TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Guess that the pattern matches everything. Only finds specific cases, such
|
||||
* as a trailing \|, which can happen while typing a pattern.
|
||||
*/
|
||||
static int
|
||||
empty_pattern(char_u *p)
|
||||
{
|
||||
int n = STRLEN(p);
|
||||
|
||||
/* remove trailing \v and the like */
|
||||
while (n >= 2 && p[n - 2] == '\\'
|
||||
&& vim_strchr((char_u *)"mMvVcCZ", p[n - 1]) != NULL)
|
||||
n -= 2;
|
||||
return n == 0 || (n >= 2 && p[n - 2] == '\\' && p[n - 1] == '|');
|
||||
}
|
||||
|
||||
/*
|
||||
* getcmdline() - accept a command line starting with firstc.
|
||||
*
|
||||
@ -2023,6 +2039,11 @@ cmdline_changed:
|
||||
else
|
||||
end_pos = curwin->w_cursor; /* shutup gcc 4 */
|
||||
|
||||
/* Disable 'hlsearch' highlighting if the pattern matches
|
||||
* everything. Avoids a flash when typing "foo\|". */
|
||||
if (empty_pattern(ccline.cmdbuff))
|
||||
SET_NO_HLSEARCH(TRUE);
|
||||
|
||||
validate_cursor();
|
||||
/* May redraw the status line to show the cursor position. */
|
||||
if (p_ru && curwin->w_status_height > 0)
|
||||
|
@ -771,6 +771,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1393,
|
||||
/**/
|
||||
1392,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user