vim-patch:8.1.0397: no event triggered after updating diffs

Problem:    No event triggered after updating diffs.
Solution:   Add the DiffUpdated event.

e8fa05b5bc
This commit is contained in:
Anatolii Sakhnik 2018-12-09 19:26:12 +02:00
parent b7f2c7dd1d
commit 2c92a4d0c8
4 changed files with 14 additions and 0 deletions

View File

@ -628,6 +628,11 @@ CursorMoved After the cursor was moved in Normal or Visual
CursorMovedI After the cursor was moved in Insert mode.
Not triggered when the popup menu is visible.
Otherwise the same as CursorMoved.
*DiffUpdated*
DiffUpdated After diffs have been updated. Depending on
what kind of diff is being used (internal or
external) this can be triggered on every
change or when doing |:diffupdate|.
*DirChanged*
DirChanged After the |current-directory| was changed.
Sets these |v:event| keys:

View File

@ -33,6 +33,7 @@ return {
'CursorHoldI', -- idem, in Insert mode
'CursorMoved', -- cursor was moved
'CursorMovedI', -- cursor was moved in Insert mode
'DiffUpdated', -- diffs have been updated
'DirChanged', -- directory changed
'EncodingChanged', -- after changing the 'encoding' option
'ExitPre', -- before exiting

View File

@ -924,6 +924,8 @@ void ex_diffupdate(exarg_T *eap)
curwin->w_valid_cursor.lnum = 0;
diff_redraw(true);
apply_autocmds(EVENT_DIFFUPDATED, NULL, NULL, false, curbuf);
}
///

View File

@ -2,6 +2,9 @@
func Test_diff_fold_sync()
enew!
let g:update_count = 0
au DiffUpdated * let g:update_count += 1
let l = range(50)
call setline(1, l)
diffthis
@ -27,6 +30,9 @@ func Test_diff_fold_sync()
call win_gotoid(winone)
call assert_equal(23, getcurpos()[1])
call assert_equal(1, g:update_count)
au! DiffUpdated
windo diffoff
close!
set nomodified