forked from aniani/vim
patch 9.0.0722: virtual text "after" does not show with 'list' set
Problem: Virtual text "after" does not show with 'list' set. Solution: Do not break out of the loop when another text prop follows. (closes #11337)
This commit is contained in:
@@ -3787,14 +3787,18 @@ win_line(
|
|||||||
|
|
||||||
// When not wrapping and finished diff lines, or when displayed
|
// When not wrapping and finished diff lines, or when displayed
|
||||||
// '$' and highlighting until last column, break here.
|
// '$' and highlighting until last column, break here.
|
||||||
if ((!wp->w_p_wrap
|
if (((!wp->w_p_wrap
|
||||||
#ifdef FEAT_DIFF
|
#ifdef FEAT_DIFF
|
||||||
&& wlv.filler_todo <= 0
|
&& wlv.filler_todo <= 0
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_PROP_POPUP
|
#ifdef FEAT_PROP_POPUP
|
||||||
&& !text_prop_above && !text_prop_follows
|
&& !text_prop_above
|
||||||
#endif
|
#endif
|
||||||
) || lcs_eol_one == -1)
|
) || lcs_eol_one == -1)
|
||||||
|
#ifdef FEAT_PROP_POPUP
|
||||||
|
&& !text_prop_follows
|
||||||
|
#endif
|
||||||
|
)
|
||||||
break;
|
break;
|
||||||
#ifdef FEAT_PROP_POPUP
|
#ifdef FEAT_PROP_POPUP
|
||||||
if (!wp->w_p_wrap && text_prop_follows && !text_prop_above)
|
if (!wp->w_p_wrap && text_prop_follows && !text_prop_above)
|
||||||
|
8
src/testdir/dumps/Test_props_after_1.dump
Normal file
8
src/testdir/dumps/Test_props_after_1.dump
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|o+0&#ffffff0|n|e| @2|0+0#e000e06&| |1| |2| |3| |4| |5| |6| |7| |8| |9| |1|0| |1@1| |1|2| |1|3| |1|4| |1|5| |1|6| |1|7| |1|8| |1|9| |2|0| |…
|
||||||
|
| +0#0000000&@4|0+0#e000e06&|-|1|-|2|-|3|-|4|-|5|-|6|-|7|-|8|-|9|-|1|0|-|1@1|-|1|2|-|1|3|-|1|4|-|1|5|-|1|6|-|1|7|-|1|8|-|1|9|-|2|0|-|2|…
|
||||||
|
| +0#0000000&|0+0#e000e06&|.|1|.|2|.|3|.|4|.|5|.|6|.|7|.|8|.|9|.|1|0|.|1@1|.|1|2|.|1|3|.|1|4|.|1|5|.|1|6|.|1|7|.|1|8|.|1|9|.|2|0|.|2|1|.|2@1|…
|
||||||
|
|t+0#0000000&|w>o| @56
|
||||||
|
|~+0#4040ff13&| @58
|
||||||
|
|~| @58
|
||||||
|
|~| @58
|
||||||
|
| +0#0000000&@41|2|,|3| @10|A|l@1|
|
8
src/testdir/dumps/Test_props_after_2.dump
Normal file
8
src/testdir/dumps/Test_props_after_2.dump
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|o+0&#ffffff0|n|e|$+0#4040ff13&| +0#0000000&@2|0+0#e000e06&| |1| |2| |3| |4| |5| |6| |7| |8| |9| |1|0| |1@1| |1|2| |1|3| |1|4| |1|5| |1|6| |1|7| |1|8| |1|9| |2|0|…
|
||||||
|
| +0#0000000&@4|0+0#e000e06&|-|1|-|2|-|3|-|4|-|5|-|6|-|7|-|8|-|9|-|1|0|-|1@1|-|1|2|-|1|3|-|1|4|-|1|5|-|1|6|-|1|7|-|1|8|-|1|9|-|2|0|-|2|…
|
||||||
|
| +0#0000000&|0+0#e000e06&|.|1|.|2|.|3|.|4|.|5|.|6|.|7|.|8|.|9|.|1|0|.|1@1|.|1|2|.|1|3|.|1|4|.|1|5|.|1|6|.|1|7|.|1|8|.|1|9|.|2|0|.|2|1|.|2@1|…
|
||||||
|
|t+0#0000000&|w>o|$+0#4040ff13&| +0#0000000&@55
|
||||||
|
|~+0#4040ff13&| @58
|
||||||
|
|~| @58
|
||||||
|
|~| @58
|
||||||
|
|:+0#0000000&|s|e|t| |l|i|s|t| @32|2|,|3| @10|A|l@1|
|
@@ -2628,6 +2628,43 @@ func Test_props_with_text_after()
|
|||||||
call assert_fails('call prop_add(1, 2, #{text: "yes", text_align: "right", type: "some"})', 'E1294:')
|
call assert_fails('call prop_add(1, 2, #{text: "yes", text_align: "right", type: "some"})', 'E1294:')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_props_with_text_after_and_list()
|
||||||
|
CheckRunVimInTerminal
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
vim9script
|
||||||
|
setline(1, ['one', 'two'])
|
||||||
|
prop_type_add('test', {highlight: 'Special'})
|
||||||
|
prop_add(1, 0, {
|
||||||
|
type: 'test',
|
||||||
|
text: range(50)->join(' '),
|
||||||
|
text_align: 'after',
|
||||||
|
text_padding_left: 3
|
||||||
|
})
|
||||||
|
prop_add(1, 0, {
|
||||||
|
type: 'test',
|
||||||
|
text: range(50)->join('-'),
|
||||||
|
text_align: 'after',
|
||||||
|
text_padding_left: 5
|
||||||
|
})
|
||||||
|
prop_add(1, 0, {
|
||||||
|
type: 'test',
|
||||||
|
text: range(50)->join('.'),
|
||||||
|
text_align: 'after',
|
||||||
|
text_padding_left: 1
|
||||||
|
})
|
||||||
|
normal G$
|
||||||
|
END
|
||||||
|
call writefile(lines, 'XscriptPropsAfter', 'D')
|
||||||
|
let buf = RunVimInTerminal('-S XscriptPropsAfter', #{rows: 8, cols: 60})
|
||||||
|
call VerifyScreenDump(buf, 'Test_props_after_1', {})
|
||||||
|
|
||||||
|
call term_sendkeys(buf, ":set list\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_props_after_2', {})
|
||||||
|
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_props_with_text_after_below_trunc()
|
func Test_props_with_text_after_below_trunc()
|
||||||
CheckRunVimInTerminal
|
CheckRunVimInTerminal
|
||||||
|
|
||||||
|
@@ -699,6 +699,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 */
|
||||||
|
/**/
|
||||||
|
722,
|
||||||
/**/
|
/**/
|
||||||
721,
|
721,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user