diff options
-rw-r--r-- | src/nvim/screen.c | 2 | ||||
-rw-r--r-- | test/functional/ui/fold_spec.lua | 77 |
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() |