changeset 23241:87acfcf65a2e v8.2.2166

patch 8.2.2166: auto format doesn't work when deleting text Commit: https://github.com/vim/vim/commit/d0a1dee3f197d41434df4cf0271066b6aeb690fc Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 20 13:07:48 2020 +0100 patch 8.2.2166: auto format doesn't work when deleting text Problem: Auto format doesn't work when deleting text. Solution: Make "x" trigger auto format. (closes https://github.com/vim/vim/issues/7504)
author Bram Moolenaar <Bram@vim.org>
date Sun, 20 Dec 2020 13:15:04 +0100
parents 8bb577c256d7
children 78ff69eb0675
files src/ops.c src/testdir/test_textformat.vim src/version.c
diffstat 3 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ops.c
+++ b/src/ops.c
@@ -938,6 +938,7 @@ op_delete(oparg_T *oap)
 	    curwin->w_cursor = curpos;	// restore curwin->w_cursor
 	    (void)do_join(2, FALSE, FALSE, FALSE, FALSE);
 	}
+	auto_format(FALSE, TRUE);
     }
 
     msgmore(curbuf->b_ml.ml_line_count - old_lcount);
--- a/src/testdir/test_textformat.vim
+++ b/src/testdir/test_textformat.vim
@@ -934,6 +934,18 @@ func Test_fo_a_w()
   call assert_equal('g uu uu ', getline(1)[-8:])
   call assert_equal(['uu. foo'], getline(2, '$'))
 
+  " using backspace or "x" triggers reformat
+  call setline(1, ['1 2 3 4 5 ', '6 7 8 9'])
+  set tw=10
+  set fo=taw
+  set bs=indent,eol,start
+  exe "normal 1G4la\<BS>\<BS>\<Esc>"
+  call assert_equal(['1 2 4 5 6 ', '7 8 9'], getline(1, 2))
+  exe "normal f4xx"
+  call assert_equal(['1 2 5 6 7 ', '8 9'], getline(1, 2))
+
+  set tw=0
+  set fo&
   %bw!
 endfunc
 
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2166,
+/**/
     2165,
 /**/
     2164,