mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 15:28:17 +00:00
vim-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 vim/vim#7504)
d0a1dee3f1
This commit is contained in:
@@ -3716,7 +3716,7 @@ static bool ins_compl_prep(int c)
|
|||||||
retval = true;
|
retval = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto_format(FALSE, TRUE);
|
auto_format(false, true);
|
||||||
|
|
||||||
// Trigger the CompleteDonePre event to give scripts a chance to
|
// Trigger the CompleteDonePre event to give scripts a chance to
|
||||||
// act upon the completion before clearing the info, and restore
|
// act upon the completion before clearing the info, and restore
|
||||||
@@ -6503,7 +6503,7 @@ stop_insert (
|
|||||||
curwin->w_cursor = tpos;
|
curwin->w_cursor = tpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto_format(TRUE, FALSE);
|
auto_format(true, false);
|
||||||
|
|
||||||
if (ascii_iswhite(cc)) {
|
if (ascii_iswhite(cc)) {
|
||||||
if (gchar_cursor() != NUL)
|
if (gchar_cursor() != NUL)
|
||||||
|
@@ -1683,6 +1683,7 @@ int op_delete(oparg_T *oap)
|
|||||||
(int)oap->line_count-1, n, deleted_bytes,
|
(int)oap->line_count-1, n, deleted_bytes,
|
||||||
0, 0, 0, kExtmarkUndo);
|
0, 0, 0, kExtmarkUndo);
|
||||||
}
|
}
|
||||||
|
auto_format(false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
msgmore(curbuf->b_ml.ml_line_count - old_lcount);
|
msgmore(curbuf->b_ml.ml_line_count - old_lcount);
|
||||||
|
@@ -957,6 +957,18 @@ func Test_fo_a_w()
|
|||||||
call assert_equal('g uu uu ', getline(1)[-8:])
|
call assert_equal('g uu uu ', getline(1)[-8:])
|
||||||
call assert_equal(['uu. foo'], getline(2, '$'))
|
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!
|
%bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user