0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 7.4.700

Problem:    Fold can't be opened after ":move". (Ein Brown)
Solution:   Delete the folding information and update it afterwards.
            (Christian Brabandt)
This commit is contained in:
Bram Moolenaar
2015-04-15 12:43:50 +02:00
parent 05b20fb14e
commit d5f6933d5c
5 changed files with 35 additions and 2 deletions

View File

@@ -741,6 +741,16 @@ do_move(line1, line2, dest)
linenr_T extra; /* Num lines added before line1 */
linenr_T num_lines; /* Num lines moved */
linenr_T last_line; /* Last line in file after adding new text */
#ifdef FEAT_FOLDING
int isFolded;
/* Moving lines seems to corrupt the folds, delete folding info now
* and recreate it when finished. Don't do this for manual folding, it
* would delete all folds. */
isFolded = hasAnyFolding(curwin) && !foldmethodIsManual(curwin);
if (isFolded)
deleteFoldRecurse(&curwin->w_folds);
#endif
if (dest >= line1 && dest < line2)
{
@@ -839,6 +849,12 @@ do_move(line1, line2, dest)
else
changed_lines(dest + 1, 0, line1 + num_lines, 0L);
#ifdef FEAT_FOLDING
/* recreate folds */
if (isFolded)
foldUpdateAll(curwin);
#endif
return OK;
}