forked from aniani/vim
patch 8.2.3700: text property highlighting continues over breakindent
Problem: Text property highlighting continues over breakindent. Solution: Stop before the end column. (closes #9242)
This commit is contained in:
@@ -265,6 +265,9 @@ win_line(
|
||||
int c_extra = NUL; // extra chars, all the same
|
||||
int c_final = NUL; // final char, mandatory if set
|
||||
int extra_attr = 0; // attributes when n_extra != 0
|
||||
#ifdef FEAT_LINEBREAK
|
||||
int in_linebreak = FALSE; // n_extra set for showing linebreak
|
||||
#endif
|
||||
static char_u *at_end_str = (char_u *)""; // used for p_extra when
|
||||
// displaying eol at end-of-line
|
||||
int lcs_eol_one = wp->w_lcs_chars.eol; // eol until it's been used
|
||||
@@ -1419,7 +1422,11 @@ win_line(
|
||||
int pi;
|
||||
int bcol = (int)(ptr - line);
|
||||
|
||||
if (n_extra > 0)
|
||||
if (n_extra > 0
|
||||
# ifdef FEAT_LINEBREAK
|
||||
&& !in_linebreak
|
||||
# endif
|
||||
)
|
||||
--bcol; // still working on the previous char, e.g. Tab
|
||||
|
||||
// Check if any active property ends.
|
||||
@@ -1437,6 +1444,11 @@ win_line(
|
||||
* (text_props_active - (pi + 1)));
|
||||
--text_props_active;
|
||||
--pi;
|
||||
# ifdef FEAT_LINEBREAK
|
||||
// not exactly right but should work in most cases
|
||||
if (in_linebreak && syntax_attr == text_prop_attr)
|
||||
syntax_attr = 0;
|
||||
# endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1705,6 +1717,10 @@ win_line(
|
||||
++p_extra;
|
||||
}
|
||||
--n_extra;
|
||||
#ifdef FEAT_LINEBREAK
|
||||
if (n_extra <= 0)
|
||||
in_linebreak = FALSE;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2030,6 +2046,8 @@ win_line(
|
||||
|
||||
c_extra = mb_off > 0 ? MB_FILLER_CHAR : ' ';
|
||||
c_final = NUL;
|
||||
if (n_extra > 0)
|
||||
in_linebreak = TRUE;
|
||||
if (VIM_ISWHITE(c))
|
||||
{
|
||||
# ifdef FEAT_CONCEAL
|
||||
|
||||
Reference in New Issue
Block a user