forked from aniani/vim
patch 9.0.0725: virtual text "after" wraps to next line when 'wrap' is off
Problem: Virtual text "after" wraps to next line even when 'wrap' is off and 'list' is set. Solution: Do not use the minimum width when 'wrap' is off. (issue #11336)
This commit is contained in:
@@ -583,8 +583,9 @@ textprop_size_after_trunc(
|
|||||||
int strsize = 0;
|
int strsize = 0;
|
||||||
int n_used;
|
int n_used;
|
||||||
|
|
||||||
// if the remaining size is to small wrap anyway and use the next line
|
// if the remaining size is to small and 'wrap' is set we wrap anyway and
|
||||||
if (space < PROP_TEXT_MIN_CELLS)
|
// use the next line
|
||||||
|
if (space < PROP_TEXT_MIN_CELLS && wp->w_p_wrap)
|
||||||
space += wp->w_width;
|
space += wp->w_width;
|
||||||
if (flags & (TP_FLAG_ALIGN_BELOW | TP_FLAG_ALIGN_ABOVE))
|
if (flags & (TP_FLAG_ALIGN_BELOW | TP_FLAG_ALIGN_ABOVE))
|
||||||
space -= padding;
|
space -= padding;
|
||||||
@@ -658,7 +659,8 @@ text_prop_position(
|
|||||||
? (col_with_padding <= col_off || !wp->w_p_wrap)
|
? (col_with_padding <= col_off || !wp->w_p_wrap)
|
||||||
: (n_used < *n_extra)))
|
: (n_used < *n_extra)))
|
||||||
{
|
{
|
||||||
if (right && (wrap || room < PROP_TEXT_MIN_CELLS))
|
if (right && (wrap
|
||||||
|
|| (room < PROP_TEXT_MIN_CELLS && wp->w_p_wrap)))
|
||||||
{
|
{
|
||||||
// right-align on next line instead of wrapping if possible
|
// right-align on next line instead of wrapping if possible
|
||||||
before = wp->w_width - col_off - strsize + room;
|
before = wp->w_width - col_off - strsize + room;
|
||||||
|
8
src/testdir/dumps/Test_text_after_nowrap_5.dump
Normal file
8
src/testdir/dumps/Test_text_after_nowrap_5.dump
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|f+0&#ffffff0|i|r|s|t| |l|i|n|e|$+0#4040ff13&| +0#0000000&@1|j+0&#ffd7ff255|u|s|t| |a|f|t|e|r| |t|x|t| |j|u|s|t| |a|f|t|e|r| |t|x|t| |j|u|s|t| |a|f|t|e|r| |t|x|t| | +0&#ffffff0|i+0&#ffd7ff255
|
||||||
|
>0+0&#ffffff0| |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| |2
|
||||||
|
|t|h|i|r|d|$+0#4040ff13&| +0#0000000&@53
|
||||||
|
|f|o|u|r|t|h|$+0#4040ff13&| +0#0000000&@52
|
||||||
|
|~+0#4040ff13&| @58
|
||||||
|
|~| @58
|
||||||
|
|~| @58
|
||||||
|
|:+0#0000000&|c|a|l@1| |C|h|a|n|g|e|T|e|x|t|(|)| @23|2|,|1| @10|A|l@1|
|
@@ -3289,6 +3289,22 @@ func Test_text_after_nowrap()
|
|||||||
text_padding_left: 1,
|
text_padding_left: 1,
|
||||||
})
|
})
|
||||||
normal 2Gw
|
normal 2Gw
|
||||||
|
def g:ChangeText()
|
||||||
|
prop_clear(1)
|
||||||
|
set list
|
||||||
|
prop_add(1, 0, {
|
||||||
|
type: 'theprop',
|
||||||
|
text: 'just after txt '->repeat(3),
|
||||||
|
text_align: 'after',
|
||||||
|
text_padding_left: 2,
|
||||||
|
})
|
||||||
|
prop_add(1, 0, {
|
||||||
|
type: 'theprop',
|
||||||
|
text: 'in the middle '->repeat(4),
|
||||||
|
text_align: 'after',
|
||||||
|
text_padding_left: 1,
|
||||||
|
})
|
||||||
|
enddef
|
||||||
END
|
END
|
||||||
call writefile(lines, 'XTextAfterNowrap', 'D')
|
call writefile(lines, 'XTextAfterNowrap', 'D')
|
||||||
let buf = RunVimInTerminal('-S XTextAfterNowrap', #{rows: 8, cols: 60})
|
let buf = RunVimInTerminal('-S XTextAfterNowrap', #{rows: 8, cols: 60})
|
||||||
@@ -3303,6 +3319,10 @@ func Test_text_after_nowrap()
|
|||||||
call term_sendkeys(buf, "$")
|
call term_sendkeys(buf, "$")
|
||||||
call VerifyScreenDump(buf, 'Test_text_after_nowrap_4', {})
|
call VerifyScreenDump(buf, 'Test_text_after_nowrap_4', {})
|
||||||
|
|
||||||
|
call term_sendkeys(buf, "0")
|
||||||
|
call term_sendkeys(buf, ":call ChangeText()\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_text_after_nowrap_5', {})
|
||||||
|
|
||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@@ -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 */
|
||||||
|
/**/
|
||||||
|
725,
|
||||||
/**/
|
/**/
|
||||||
724,
|
724,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user