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. CursorMovedI After the cursor was moved in Insert mode.
Not triggered when the popup menu is visible. Not triggered when the popup menu is visible.
Otherwise the same as CursorMoved. 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*
DirChanged After the |current-directory| was changed. DirChanged After the |current-directory| was changed.
Sets these |v:event| keys: Sets these |v:event| keys:

View File

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

View File

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

View File

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