diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-12-13 19:35:55 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-12-13 19:35:55 +0100 |
commit | 3b68123cd271fb781da4055cf1a1cf52f4fee6a5 (patch) | |
tree | 5790985125861514c018ba26a269428a655f38fb | |
parent | 74ee5e2384b7f51b3dcff52720235b08a380e0ed (diff) | |
download | vim-git-3b68123cd271fb781da4055cf1a1cf52f4fee6a5.tar.gz |
patch 8.2.0002: "dj" only deletes first line of closed foldv8.2.0002
Problem: "dj" only deletes first line of closed fold.
Solution: Adjust last line of operator for linewise motion. (closes #5354)
-rw-r--r-- | src/ops.c | 3 | ||||
-rw-r--r-- | src/testdir/test_fold.vim | 25 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 29 insertions, 1 deletions
@@ -4233,7 +4233,8 @@ do_pending_operator(cmdarg_T *cap, int old_col, int gui_yank) { if (hasFolding(oap->start.lnum, &oap->start.lnum, NULL)) oap->start.col = 0; - if ((curwin->w_cursor.col > 0 || oap->inclusive) + if ((curwin->w_cursor.col > 0 || oap->inclusive + || oap->motion_type == MLINE) && hasFolding(curwin->w_cursor.lnum, NULL, &curwin->w_cursor.lnum)) curwin->w_cursor.col = (colnr_T)STRLEN(ml_get_curline()); diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim index 824a4f22f..36de13656 100644 --- a/src/testdir/test_fold.vim +++ b/src/testdir/test_fold.vim @@ -769,3 +769,28 @@ func Test_fold_delete_with_marker_and_whichwrap() set fdm& ww& bwipe! endfunc + +func Test_fold_delete_first_line() + new + call setline(1, [ + \ '" x {{{1', + \ '" a', + \ '" aa', + \ '" x {{{1', + \ '" b', + \ '" bb', + \ '" x {{{1', + \ '" c', + \ '" cc', + \ ]) + set foldmethod=marker + 1 + normal dj + call assert_equal([ + \ '" x {{{1', + \ '" c', + \ '" cc', + \ ], getline(1,'$')) + bwipe! + set foldmethod& +endfunc diff --git a/src/version.c b/src/version.c index b3f1fdb96..4573e5af4 100644 --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2, +/**/ 1, /**/ 0 |