vim-patch:7.4.686 #3629

Problem:    "zr" and "zm" do not take a count.
Solution:   Implement the count, restrict the fold level to the maximum
            nesting depth.  (Marcin Szamotulski)

7d2757a472
This commit is contained in:
Johan Klokkhammer Helsing 2015-11-08 10:19:02 +01:00 committed by Florian Walch
parent cbb7044878
commit f65e7bf30c
3 changed files with 18 additions and 6 deletions

View File

@ -362,7 +362,7 @@ zX Undo manually opened and closed folds: re-apply 'foldlevel'.
Also forces recomputing folds, like |zx|. Also forces recomputing folds, like |zx|.
*zm* *zm*
zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was zm Fold more: Subtract |v:count1| from 'foldlevel'. If 'foldlevel' was
already zero nothing happens. already zero nothing happens.
'foldenable' will be set. 'foldenable' will be set.
@ -371,7 +371,7 @@ zM Close all folds: set 'foldlevel' to 0.
'foldenable' will be set. 'foldenable' will be set.
*zr* *zr*
zr Reduce folding: Add one to 'foldlevel'. zr Reduce folding: Add |v:count1| to 'foldlevel'.
*zR* *zR*
zR Open all folds. This sets 'foldlevel' to highest fold level. zR Open all folds. This sets 'foldlevel' to highest fold level.

View File

@ -4253,8 +4253,13 @@ dozet:
break; break;
/* "zm": fold more */ /* "zm": fold more */
case 'm': if (curwin->w_p_fdl > 0) case 'm':
--curwin->w_p_fdl; if (curwin->w_p_fdl > 0) {
curwin->w_p_fdl -= cap->count1;
if (curwin->w_p_fdl < 0) {
curwin->w_p_fdl = 0;
}
}
old_fdl = -1; /* force an update */ old_fdl = -1; /* force an update */
curwin->w_p_fen = true; curwin->w_p_fen = true;
break; break;
@ -4266,7 +4271,14 @@ dozet:
break; break;
/* "zr": reduce folding */ /* "zr": reduce folding */
case 'r': ++curwin->w_p_fdl; case 'r':
curwin->w_p_fdl += cap->count1;
{
int d = getDeepestNesting();
if (curwin->w_p_fdl >= d) {
curwin->w_p_fdl = d;
}
}
break; break;
/* "zR": open all folds */ /* "zR": open all folds */

View File

@ -238,7 +238,7 @@ static int included_patches[] = {
// 689, // 689,
// 688, // 688,
// 687 NA // 687 NA
// 686, 686,
// 685, // 685,
// 684, // 684,
// 683 NA // 683 NA