mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(folds): fix fold regression with :move (#18685)
This commit is contained in:
parent
e7b3fd8ad6
commit
70e3caec4a
@ -971,7 +971,11 @@ int do_move(linenr_T line1, linenr_T line2, linenr_T dest)
|
||||
*/
|
||||
last_line = curbuf->b_ml.ml_line_count;
|
||||
mark_adjust_nofold(line1, line2, last_line - line2, 0L, kExtmarkNOOP);
|
||||
|
||||
disable_fold_update++;
|
||||
changed_lines(last_line - num_lines + 1, 0, last_line + 1, num_lines, false);
|
||||
disable_fold_update--;
|
||||
|
||||
int line_off = 0;
|
||||
bcount_t byte_off = 0;
|
||||
if (dest >= line2) {
|
||||
@ -1005,7 +1009,9 @@ int do_move(linenr_T line1, linenr_T line2, linenr_T dest)
|
||||
mark_adjust_nofold(last_line - num_lines + 1, last_line,
|
||||
-(last_line - dest - extra), 0L, kExtmarkNOOP);
|
||||
|
||||
disable_fold_update++;
|
||||
changed_lines(last_line - num_lines + 1, 0, last_line + 1, -extra, false);
|
||||
disable_fold_update--;
|
||||
|
||||
// send update regarding the new lines that were added
|
||||
buf_updates_send_changes(curbuf, dest + 1, num_lines, 0, true);
|
||||
|
@ -1757,6 +1757,67 @@ describe("folded lines", function()
|
||||
end
|
||||
assert_alive()
|
||||
end)
|
||||
|
||||
it('work correctly with :move #18668', function()
|
||||
screen:try_resize(45, 12)
|
||||
source([[
|
||||
set foldmethod=expr foldexpr=indent(v:lnum)
|
||||
let content = ['', '', 'Line1', ' Line2', ' Line3',
|
||||
\ 'Line4', ' Line5', ' Line6',
|
||||
\ 'Line7', ' Line8', ' Line9']
|
||||
call append(0, content)
|
||||
normal! zM
|
||||
call cursor(4, 1)
|
||||
move 2
|
||||
move 1
|
||||
]])
|
||||
if multigrid then
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[2:---------------------------------------------]|
|
||||
[3:---------------------------------------------]|
|
||||
## grid 2
|
||||
|
|
||||
{5:^+-- 2 lines: Line2··························}|
|
||||
|
|
||||
Line1 |
|
||||
Line4 |
|
||||
{5:+-- 2 lines: Line5··························}|
|
||||
Line7 |
|
||||
{5:+-- 2 lines: Line8··························}|
|
||||
|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
## grid 3
|
||||
|
|
||||
]])
|
||||
else
|
||||
screen:expect([[
|
||||
|
|
||||
{5:^+-- 2 lines: Line2··························}|
|
||||
|
|
||||
Line1 |
|
||||
Line4 |
|
||||
{5:+-- 2 lines: Line5··························}|
|
||||
Line7 |
|
||||
{5:+-- 2 lines: Line8··························}|
|
||||
|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
|
|
||||
]])
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
describe("with ext_multigrid", function()
|
||||
|
Loading…
Reference in New Issue
Block a user