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;
|
last_line = curbuf->b_ml.ml_line_count;
|
||||||
mark_adjust_nofold(line1, line2, last_line - line2, 0L, kExtmarkNOOP);
|
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);
|
changed_lines(last_line - num_lines + 1, 0, last_line + 1, num_lines, false);
|
||||||
|
disable_fold_update--;
|
||||||
|
|
||||||
int line_off = 0;
|
int line_off = 0;
|
||||||
bcount_t byte_off = 0;
|
bcount_t byte_off = 0;
|
||||||
if (dest >= line2) {
|
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,
|
mark_adjust_nofold(last_line - num_lines + 1, last_line,
|
||||||
-(last_line - dest - extra), 0L, kExtmarkNOOP);
|
-(last_line - dest - extra), 0L, kExtmarkNOOP);
|
||||||
|
|
||||||
|
disable_fold_update++;
|
||||||
changed_lines(last_line - num_lines + 1, 0, last_line + 1, -extra, false);
|
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
|
// send update regarding the new lines that were added
|
||||||
buf_updates_send_changes(curbuf, dest + 1, num_lines, 0, true);
|
buf_updates_send_changes(curbuf, dest + 1, num_lines, 0, true);
|
||||||
|
@ -1757,6 +1757,67 @@ describe("folded lines", function()
|
|||||||
end
|
end
|
||||||
assert_alive()
|
assert_alive()
|
||||||
end)
|
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
|
end
|
||||||
|
|
||||||
describe("with ext_multigrid", function()
|
describe("with ext_multigrid", function()
|
||||||
|
Loading…
Reference in New Issue
Block a user