0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

patch 9.0.1802: Multiline regex with Visual selection fails with virtual text

Problem:  Multiline regex with Visual selection fails when Visual
          selection contains virtual text after last char.
Solution: Only include virtual text after last char when getting full
          line length.

closes: #12908

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
This commit is contained in:
zeertzjq
2023-08-27 19:11:46 +02:00
committed by Christian Brabandt
parent b49ad28d73
commit e3daa06be1
7 changed files with 44 additions and 3 deletions

View File

@@ -809,7 +809,7 @@ win_linetabsize_cts(chartabsize_T *cts, colnr_T len)
cts->cts_vcol += win_lbr_chartabsize(cts, NULL);
#ifdef FEAT_PROP_POPUP
// check for a virtual text at the end of a line or on an empty line
if (cts->cts_has_prop_with_text && *cts->cts_ptr == NUL)
if (len == MAXCOL && cts->cts_has_prop_with_text && *cts->cts_ptr == NUL)
{
(void)win_lbr_chartabsize(cts, NULL);
cts->cts_vcol += cts->cts_cur_text_width;
@@ -1196,8 +1196,7 @@ win_lbr_chartabsize(
|| (tp->tp_col == MAXCOL
&& ((tp->tp_flags & TP_FLAG_ALIGN_ABOVE)
? col == 0
: s[0] == NUL
&& cts->cts_with_trailing)))
: s[0] == NUL && cts->cts_with_trailing)))
&& -tp->tp_id - 1 < gap->ga_len)
{
char_u *p = ((char_u **)gap->ga_data)[-tp->tp_id - 1];