summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2023-02-19 14:34:37 +0000
committerBram Moolenaar <Bram@vim.org>2023-02-19 14:34:37 +0000
commita572b936ce7bbaf630b22a32c039738a783cdf41 (patch)
tree2c9c827718225f31e165149857858278069cb77b
parentf53e065bce1adff4bff202ed3ba9982ece90b745 (diff)
downloadvim-git-a572b936ce7bbaf630b22a32c039738a783cdf41.tar.gz
patch 9.0.1326: relative line number not updated with virtual text abovev9.0.1326
Problem: Relative line number not updated with virtual text above. Solution: Adjust the row for the line number for virtual text above. (closes #12004)
-rw-r--r--src/drawline.c9
-rw-r--r--src/testdir/dumps/Test_prop_above_below_empty_4.dump16
-rw-r--r--src/testdir/dumps/Test_prop_above_below_empty_5.dump16
-rw-r--r--src/testdir/test_textprop.vim8
-rw-r--r--src/version.c2
5 files changed, 51 insertions, 0 deletions
diff --git a/src/drawline.c b/src/drawline.c
index 74c736c24..5fe25f554 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -1598,6 +1598,15 @@ win_line(
}
}
}
+
+ if (number_only)
+ {
+ // skip over rows only used for virtual text above
+ wlv.row += wlv.text_prop_above_count;
+ if (wlv.row > endrow)
+ return wlv.row;
+ wlv.screen_row += wlv.text_prop_above_count;
+ }
#endif
// 'nowrap' or 'wrap' and a single line that doesn't fit: Advance to the
diff --git a/src/testdir/dumps/Test_prop_above_below_empty_4.dump b/src/testdir/dumps/Test_prop_above_below_empty_4.dump
new file mode 100644
index 000000000..cc3c27d0f
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_above_below_empty_4.dump
@@ -0,0 +1,16 @@
+| +0#af5f00255#ffffff0@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|4| |1+0#0000000&@7| @47
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|3| | +0#0000000&@55
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|2| |3+0#0000000&@8| @46
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|1| | +0#0000000&@55
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+|5+0#af5f00255&| @2>5+0#0000000&@10| @44
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+|:| @40|5|,|1|-|5|7| @7|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_above_below_empty_5.dump b/src/testdir/dumps/Test_prop_above_below_empty_5.dump
new file mode 100644
index 000000000..5ee4d8076
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_above_below_empty_5.dump
@@ -0,0 +1,16 @@
+| +0#af5f00255#ffffff0@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|2| |1+0#0000000&@7| @47
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|1| | +0#0000000&@55
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+|3+0#af5f00255&| @2>3+0#0000000&@8| @46
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|1| | +0#0000000&@55
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@3|-+0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+| +0#af5f00255&@1|2| |5+0#0000000&@10| @44
+| +0#af5f00255&@3|++0#0000001#ffff4012@2| +0#0000000#ffffff0@52
+|:| @40|3|,|1|-|5|7| @7|A|l@1|
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 158896f61..3bd08fe4d 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -2806,6 +2806,14 @@ func Test_prop_with_text_above_below_empty()
call term_sendkeys(buf, ":\<CR>")
call VerifyScreenDump(buf, 'Test_prop_above_below_empty_3', {})
+ call term_sendkeys(buf, ":set colorcolumn=\<CR>")
+ call term_sendkeys(buf, ":set relativenumber\<CR>")
+ call term_sendkeys(buf, ":\<CR>")
+ call VerifyScreenDump(buf, 'Test_prop_above_below_empty_4', {})
+
+ call term_sendkeys(buf, "kk")
+ call VerifyScreenDump(buf, 'Test_prop_above_below_empty_5', {})
+
call StopVimInTerminal(buf)
endfunc
diff --git a/src/version.c b/src/version.c
index 10b38d44a..53452bfbe 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 */
/**/
+ 1326,
+/**/
1325,
/**/
1324,