aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-05-22 21:03:22 +0800
committerGitHub <noreply@github.com>2022-05-22 21:03:22 +0800
commit70e3caec4a570e6ab1375aec98ebbfa1dd673961 (patch)
treeb88c0c27dd4429b7c98091bb797e333566d6c35a /src
parente7b3fd8ad603ba064ce9457a8866430c436c3737 (diff)
downloadrneovim-70e3caec4a570e6ab1375aec98ebbfa1dd673961.tar.gz
rneovim-70e3caec4a570e6ab1375aec98ebbfa1dd673961.tar.bz2
rneovim-70e3caec4a570e6ab1375aec98ebbfa1dd673961.zip
fix(folds): fix fold regression with :move (#18685)
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_cmds.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 8369db7de1..ce3afba19b 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -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);