summaryrefslogtreecommitdiffstats
path: root/src/drawline.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-10-19 17:38:03 +0200
committerBram Moolenaar <Bram@vim.org>2019-10-19 17:38:03 +0200
commita74fda6f4d21d8e0652e9cfa04dd3e041f779f62 (patch)
tree1220a8808f31a0d960ed39fe07e9f67d46849aae /src/drawline.c
parent00e192becd50a38cb21a1bc3f86fcc7a21f8ee88 (diff)
patch 8.1.2181: highlighting wrong when item follows tabv8.1.2181
Problem: Highlighting wrong when item follows tab. Solution: Don't use syntax attribute when n_extra is non-zero. (Christian Brabandt, closes #5076)
Diffstat (limited to 'src/drawline.c')
-rw-r--r--src/drawline.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/drawline.c b/src/drawline.c
index ef3b69f8c2..a13c330c51 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -1399,14 +1399,14 @@ win_line(
}
#endif
- if (extra_check)
+#ifdef FEAT_SYN_HL
+ syntax_attr = 0;
+ if (extra_check && n_extra == 0)
{
-#ifdef FEAT_TERMINAL
+# ifdef FEAT_TERMINAL
if (get_term_attr)
syntax_attr = term_get_attr(wp->w_buffer, lnum, vcol);
-#endif
-
-#ifdef FEAT_SYN_HL
+# endif
// Get syntax attribute.
if (has_syntax)
{
@@ -1463,8 +1463,8 @@ win_line(
syntax_flags = get_syntax_info(&syntax_seqnr);
# endif
}
-#endif
}
+#endif
// Decide which of the highlight attributes to use.
attr_pri = TRUE;
@@ -1502,7 +1502,7 @@ win_line(
// Use line_attr when not in the Visual or 'incsearch' area
// (area_attr may be 0 when "noinvcur" is set).
# ifdef FEAT_SYN_HL
- if (has_syntax)
+ if (syntax_attr != 0)
char_attr = hl_combine_attr(syntax_attr, line_attr);
else
# endif
@@ -1531,15 +1531,10 @@ win_line(
else
#endif
#ifdef FEAT_SYN_HL
- if (has_syntax
-# ifdef FEAT_TERMINAL
- || get_term_attr
-# endif
- )
- char_attr = syntax_attr;
- else
-#endif
+ char_attr = syntax_attr;
+#else
char_attr = 0;
+#endif
}
}
if (char_attr == 0)