vim-patch:8.2.3430: no generic way to trigger an autocommand on mode change

Problem:    No generic way to trigger an autocommand on mode change.
Solution:   Add the ModeChanged autocommand event. (Magnus Gross, closes vim/vim#8856)
f1e8876fa2

N/A patches for version.c:

vim-patch:8.2.3434: function prototype for trigger_modechanged() is incomplete

Problem:    Function prototype for trigger_modechanged() is incomplete.
Solution:   Add "void".
28e591dd50

Fixes #4399.
Fixes #7416.
This commit is contained in:
Magnus Groß
2021-09-29 16:36:48 +02:00
parent 36538417f0
commit 69bd1e4e36
13 changed files with 101 additions and 8 deletions

View File

@@ -3050,6 +3050,7 @@ static int get_mouse_class(char_u *p)
void end_visual_mode(void)
{
VIsual_active = false;
trigger_modechanged();
setmouse();
mouse_dragging = 0;
@@ -6680,6 +6681,7 @@ static void nv_visual(cmdarg_T *cap)
// or char/line mode
VIsual_mode = cap->cmdchar;
showmode();
trigger_modechanged();
}
redraw_curbuf_later(INVERTED); // update the inversion
} else { // start Visual mode
@@ -6782,6 +6784,7 @@ static void n_start_visual_mode(int c)
VIsual_mode = c;
VIsual_active = true;
VIsual_reselect = true;
trigger_modechanged();
// Corner case: the 0 position in a tab may change when going into
// virtualedit. Recalculate curwin->w_cursor to avoid bad highlighting.
//