aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-07-29 21:47:21 +0800
committerGitHub <noreply@github.com>2022-07-29 21:47:21 +0800
commite59bc078de624a5f3220bfd2713be3f8978c5672 (patch)
tree245464a5271d4a7202a88bfe70bd5d647dfc8a9f
parent02efdb4d587242122df99b347a25fd4c96b0ca97 (diff)
downloadrneovim-e59bc078de624a5f3220bfd2713be3f8978c5672.tar.gz
rneovim-e59bc078de624a5f3220bfd2713be3f8978c5672.tar.bz2
rneovim-e59bc078de624a5f3220bfd2713be3f8978c5672.zip
fix(screen): check for col instead of vcol when drawing fold (#19572)
-rw-r--r--src/nvim/screen.c2
-rw-r--r--test/functional/ui/fold_spec.lua77
2 files changed, 78 insertions, 1 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index b9c38d9339..78fa10a555 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -2909,7 +2909,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool noc
if (draw_state == WL_LINE
&& has_fold
- && vcol == 0
+ && col == win_col_offset
&& n_extra == 0
&& row == startrow) {
char_attr = win_hl_attr(wp, HLF_FL);
diff --git a/test/functional/ui/fold_spec.lua b/test/functional/ui/fold_spec.lua
index 394f2f5f49..c79fc2989c 100644
--- a/test/functional/ui/fold_spec.lua
+++ b/test/functional/ui/fold_spec.lua
@@ -1818,6 +1818,83 @@ describe("folded lines", function()
]])
end
end)
+
+ it('fold text is shown when text has been scrolled to the right #19123', function()
+ insert(content1)
+ command('set number nowrap')
+ command('3,4fold')
+ feed('gg')
+ if multigrid then
+ screen:expect([[
+ ## grid 1
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [3:---------------------------------------------]|
+ ## grid 2
+ {8: 1 }^This is a |
+ {8: 2 }valid English |
+ {8: 3 }{5:+-- 2 lines: sentence composed by·······}|
+ {8: 5 }in his cave. |
+ {8: 6 } |
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ ]])
+ else
+ screen:expect([[
+ {8: 1 }^This is a |
+ {8: 2 }valid English |
+ {8: 3 }{5:+-- 2 lines: sentence composed by·······}|
+ {8: 5 }in his cave. |
+ {8: 6 } |
+ {1:~ }|
+ {1:~ }|
+ |
+ ]])
+ end
+
+ feed('zl')
+ if multigrid then
+ screen:expect([[
+ ## grid 1
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [2:---------------------------------------------]|
+ [3:---------------------------------------------]|
+ ## grid 2
+ {8: 1 }^his is a |
+ {8: 2 }alid English |
+ {8: 3 }{5:+-- 2 lines: sentence composed by·······}|
+ {8: 5 }n his cave. |
+ {8: 6 } |
+ {1:~ }|
+ {1:~ }|
+ ## grid 3
+ |
+ ]])
+ else
+ screen:expect([[
+ {8: 1 }^his is a |
+ {8: 2 }alid English |
+ {8: 3 }{5:+-- 2 lines: sentence composed by·······}|
+ {8: 5 }n his cave. |
+ {8: 6 } |
+ {1:~ }|
+ {1:~ }|
+ |
+ ]])
+ end
+ end)
end
describe("with ext_multigrid", function()