summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-11-18 23:13:47 +0000
committerBram Moolenaar <Bram@vim.org>2022-11-18 23:13:47 +0000
commit02edfaa610a2bedd6e2a58a1ee64488d51cfc33d (patch)
tree794704e651f9591bdd31331b6173204102717759
parent88456cd3c49a3dd1fda17cf350daa9b8216b1aa6 (diff)
downloadvim-git-02edfaa610a2bedd6e2a58a1ee64488d51cfc33d.tar.gz
patch 9.0.0905: virtual text after the line wraps when 'wrap' is offv9.0.0905
Problem: Virtual text after the line wraps when 'wrap' is off. Solution: Only set text_prop_follows when wrapping. (closes #11463)
-rw-r--r--src/drawline.c4
-rw-r--r--src/testdir/dumps/Test_text_after_nowrap_list_1.dump6
-rw-r--r--src/testdir/test_textprop.vim36
-rw-r--r--src/version.c2
4 files changed, 47 insertions, 1 deletions
diff --git a/src/drawline.c b/src/drawline.c
index 137b88865..c1ff24c73 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -2043,7 +2043,9 @@ win_line(
p_extra_free2 = wlv.p_extra;
}
- if (lcs_eol_one < 0 && wlv.col
+ if (lcs_eol_one < 0
+ && wp->w_p_wrap
+ && wlv.col
+ wlv.n_extra - 2 > wp->w_width)
// don't bail out at end of line
text_prop_follows = TRUE;
diff --git a/src/testdir/dumps/Test_text_after_nowrap_list_1.dump b/src/testdir/dumps/Test_text_after_nowrap_list_1.dump
new file mode 100644
index 000000000..bbbbe289f
--- /dev/null
+++ b/src/testdir/dumps/Test_text_after_nowrap_list_1.dump
@@ -0,0 +1,6 @@
+|s+0&#ffffff0|o|m|e| |t|e|x|t| |h|e|r|e|$+0#4040ff13&| +0#0000000&@1|T+0&#ffd7ff255|h|e| |q|u|i|c|k| |b|r|o|w|n| |f|o|x| |j|u|m|p|s|.| +0&#ffffff0@1|■+0&#ffd7ff255| |T|h|e| |f|o|x| |j|u|m|p|>+0#4040ff13#ffffff0
+|$| +0#0000000&@58
+|l|a|s|t| |l|i|n>e|$+0#4040ff13&| +0#0000000&@49
+|~+0#4040ff13&| @58
+|~| @58
+| +0#0000000&@41|3|,|9| @10|A|l@1|
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index c03c5b3fb..c2ee233e3 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -3393,6 +3393,42 @@ func Test_text_after_nowrap()
call StopVimInTerminal(buf)
endfunc
+func Test_text_after_nowrap_list()
+ CheckRunVimInTerminal
+
+ let lines =<< trim END
+ vim9script
+
+ set nowrap
+ set listchars+=extends:>
+ set list
+ setline(1, ['some text here', '', 'last line'])
+
+ prop_type_add('test', {highlight: 'DiffChange'})
+ prop_add(1, 0, {
+ type: 'test',
+ text: 'The quick brown fox jumps.',
+ text_padding_left: 2,
+ })
+ prop_add(1, 0, {
+ type: 'test',
+ text: '■ The fox jumps over the lazy dog.',
+ text_padding_left: 2,
+ })
+ prop_add(1, 0, {
+ type: 'test',
+ text: '■ The lazy dog.',
+ text_padding_left: 2,
+ })
+ normal 3G$
+ END
+ call writefile(lines, 'XTextAfterNowrapList', 'D')
+ let buf = RunVimInTerminal('-S XTextAfterNowrapList', #{rows: 6, cols: 60})
+ call VerifyScreenDump(buf, 'Test_text_after_nowrap_list_1', {})
+
+ call StopVimInTerminal(buf)
+endfunc
+
func Test_text_below_nowrap()
CheckRunVimInTerminal
diff --git a/src/version.c b/src/version.c
index fbb68419d..d91a417f4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 905,
+/**/
904,
/**/
903,