0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 9.0.0131: virtual text with Tab is not displayed correctly

Problem:    Virtual text with Tab is not displayed correctly.
Solution:   Change any Tab to a space.
This commit is contained in:
Bram Moolenaar
2022-08-01 16:11:06 +01:00
parent 1f4ee19eef
commit 783ef7214b
4 changed files with 13 additions and 3 deletions

View File

@@ -187,6 +187,8 @@ prop_add({lnum}, {col}, {props})
in the text will move the cursor to the first character after in the text will move the cursor to the first character after
the text, or the last character of the line. the text, or the last character of the line.
A negative "id" will be chosen and is returned. Once a A negative "id" will be chosen and is returned. Once a
Any Tab in the text will be changed to a space (Rationale:
otherwise the size of the text is difficult to compute).
property with "text" has been added for a buffer then using a property with "text" has been added for a buffer then using a
negative "id" for any other property will give an error: negative "id" for any other property will give an error:
*E1293* *E1293*

View File

@@ -2197,7 +2197,7 @@ func Test_prop_inserts_text()
call prop_type_add('otherprop', #{highlight: 'Search'}) call prop_type_add('otherprop', #{highlight: 'Search'})
call prop_type_add('moreprop', #{highlight: 'DiffAdd'}) call prop_type_add('moreprop', #{highlight: 'DiffAdd'})
call prop_add(1, 18, #{type: 'someprop', text: 'SOME '}) call prop_add(1, 18, #{type: 'someprop', text: 'SOME '})
call prop_add(1, 38, #{type: 'otherprop', text: 'OTHER '}) call prop_add(1, 38, #{type: 'otherprop', text: "OTHER\t"})
call prop_add(1, 69, #{type: 'moreprop', text: 'MORE '}) call prop_add(1, 69, #{type: 'moreprop', text: 'MORE '})
redraw redraw
normal $ normal $
@@ -2222,7 +2222,7 @@ func Test_props_with_text_after()
call prop_type_add('afterprop', #{highlight: 'Search'}) call prop_type_add('afterprop', #{highlight: 'Search'})
call prop_type_add('belowprop', #{highlight: 'DiffAdd'}) call prop_type_add('belowprop', #{highlight: 'DiffAdd'})
call prop_add(1, 0, #{type: 'rightprop', text: ' RIGHT ', text_align: 'right'}) call prop_add(1, 0, #{type: 'rightprop', text: ' RIGHT ', text_align: 'right'})
call prop_add(1, 0, #{type: 'afterprop', text: ' AFTER ', text_align: 'after'}) call prop_add(1, 0, #{type: 'afterprop', text: "\tAFTER\t", text_align: 'after'})
call prop_add(1, 0, #{type: 'belowprop', text: ' BELOW ', text_align: 'below'}) call prop_add(1, 0, #{type: 'belowprop', text: ' BELOW ', text_align: 'below'})
call setline(2, 'Last line.') call setline(2, 'Last line.')

View File

@@ -227,6 +227,7 @@ prop_add_one(
if (text != NULL) if (text != NULL)
{ {
garray_T *gap = &buf->b_textprop_text; garray_T *gap = &buf->b_textprop_text;
char_u *p;
// double check we got the right ID // double check we got the right ID
if (-id - 1 != gap->ga_len) if (-id - 1 != gap->ga_len)
@@ -236,6 +237,11 @@ prop_add_one(
if (ga_grow(gap, 1) == FAIL) if (ga_grow(gap, 1) == FAIL)
goto theend; goto theend;
((char_u **)gap->ga_data)[gap->ga_len++] = text; ((char_u **)gap->ga_data)[gap->ga_len++] = text;
// change any Tab to a Space to make it simpler to compute the size
for (p = text; *p != NUL; MB_PTR_ADV(p))
if (*p == TAB)
*p = ' ';
text = NULL; text = NULL;
} }

View File

@@ -735,6 +735,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
131,
/**/ /**/
130, 130,
/**/ /**/