mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -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:
parent
b49ad28d73
commit
e3daa06be1
@ -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];
|
||||
|
8
src/testdir/dumps/Test_prop_with_text_empty_line_6.dump
Normal file
8
src/testdir/dumps/Test_prop_with_text_empty_line_6.dump
Normal file
@ -0,0 +1,8 @@
|
||||
|X+0&#ffff4012@59
|
||||
|a+0&#e0e0e08@1>a+0&#ffffff0| @56
|
||||
|X+0&#ffff4012@59
|
||||
@1| +0&#ffffff0@58
|
||||
|b+0&#e0e0e08@2|b+0&#ffffff0@2| @53
|
||||
|~+0#4040ff13&| @58
|
||||
|~| @58
|
||||
|-+2#0000000&@1| |V|I|S|U|A|L| |B|L|O|C|K| |-@1| +0&&@13|3|x|3| @6|2|,|3| @10|A|l@1|
|
8
src/testdir/dumps/Test_prop_with_text_empty_line_7.dump
Normal file
8
src/testdir/dumps/Test_prop_with_text_empty_line_7.dump
Normal file
@ -0,0 +1,8 @@
|
||||
|X+0&#ffff4012@59
|
||||
>a+0&#ffffff0@2| @56
|
||||
|X+0&#ffff4012@59
|
||||
@1| +0&#ffffff0@58
|
||||
|b@5| @53
|
||||
|~+0#4040ff13&| @58
|
||||
|~| @58
|
||||
|s+0#e000002&|e|a|r|c|h| |h|i|t| |B|O|T|.@2|t|i|n|u|i|n|g| |a|t| |T|O|P| +0#0000000&@10|2|,|1| @10|A|l@1|
|
8
src/testdir/dumps/Test_prop_with_text_empty_line_8.dump
Normal file
8
src/testdir/dumps/Test_prop_with_text_empty_line_8.dump
Normal file
@ -0,0 +1,8 @@
|
||||
|X+0&#ffff4012@59
|
||||
|a+0&#ffffff0@2| @56
|
||||
|c>X+0&#ffff4012@58
|
||||
@2| +0&#ffffff0@57
|
||||
|b@5| @53
|
||||
|~+0#4040ff13&| @58
|
||||
|~| @58
|
||||
|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@29|3|,|2| @10|A|l@1|
|
8
src/testdir/dumps/Test_prop_with_text_empty_line_9.dump
Normal file
8
src/testdir/dumps/Test_prop_with_text_empty_line_9.dump
Normal file
@ -0,0 +1,8 @@
|
||||
|X+0&#ffff4012@59
|
||||
>a+0&#ffffff0@2| @56
|
||||
|c|X+0&#ffff4012@58
|
||||
@2| +0&#ffffff0@57
|
||||
|b@5| @53
|
||||
|~+0#4040ff13&| @58
|
||||
|~| @58
|
||||
|s+0#e000002&|e|a|r|c|h| |h|i|t| |B|O|T|.@2|t|i|n|u|i|n|g| |a|t| |T|O|P| +0#0000000&@10|2|,|1| @10|A|l@1|
|
@ -3235,6 +3235,14 @@ func Test_props_with_text_empty_line()
|
||||
call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_4', {})
|
||||
call term_sendkeys(buf, "j")
|
||||
call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_5', {})
|
||||
call term_sendkeys(buf, "0\<C-V>2l2k")
|
||||
call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_6', {})
|
||||
call term_sendkeys(buf, "\<Esc>/aaa\\n\\%V\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_7', {})
|
||||
call term_sendkeys(buf, "3ggic")
|
||||
call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_8', {})
|
||||
call term_sendkeys(buf, "\<Esc>/aaa\\nc\\%V\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_9', {})
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
endfunc
|
||||
|
@ -699,6 +699,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1802,
|
||||
/**/
|
||||
1801,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user