From 24db59ca8fc6f2f5f96ad71d83c265170bc341db Mon Sep 17 00:00:00 2001 From: Rom Grk Date: Mon, 2 Nov 2020 02:11:22 -0500 Subject: feat: implement BufModified autocmd --- src/nvim/normal.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/nvim/normal.c') diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 771ca732f4..1362e95ee0 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -1229,6 +1229,16 @@ static void normal_check_text_changed(NormalState *s) } } +static void normal_check_buffer_modified(NormalState *s) +{ + // Trigger BufModified if b_modified changed + if (!finish_op && has_event(EVENT_BUFMODIFIED) + && curbuf->b_changed_notified == false) { + apply_autocmds(EVENT_BUFMODIFIED, NULL, NULL, false, curbuf); + curbuf->b_changed_notified = true; + } +} + static void normal_check_folds(NormalState *s) { // Include a closed fold completely in the Visual area. @@ -1336,6 +1346,7 @@ static int normal_check(VimState *state) normal_check_cursor_moved(s); normal_check_text_changed(s); normal_check_window_scrolled(s); + normal_check_buffer_modified(s); // Updating diffs from changed() does not always work properly, // esp. updating folds. Do an update just before redrawing if -- cgit