diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-04-10 07:20:35 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-04-10 08:02:22 +0800 |
commit | 263a7fde35f2341f526a536690122b927300021a (patch) | |
tree | 99339f45da62e1054f9384f102e686b557c02c40 /src/nvim/edit.c | |
parent | ff726cc569994aab61a42c40270e679dc80cca7c (diff) | |
download | rneovim-263a7fde35f2341f526a536690122b927300021a.tar.gz rneovim-263a7fde35f2341f526a536690122b927300021a.tar.bz2 rneovim-263a7fde35f2341f526a536690122b927300021a.zip |
vim-patch:8.2.4723: the ModeChanged autocmd event is inefficient
Problem: The ModeChanged autocmd event is inefficient.
Solution: Avoid allocating memory. (closes vim/vim#10134) Rename
trigger_modechanged() to may_trigger_modechanged().
https://github.com/vim/vim/commit/2bf52dd065495cbf28e28792f2c2d50d44546d9f
Make v:event readonly for ModeChanged.
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r-- | src/nvim/edit.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 3eb4ab9517..e223841326 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -387,7 +387,7 @@ static void insert_enter(InsertState *s) State = INSERT; } - trigger_modechanged(); + may_trigger_modechanged(); stop_insert_mode = false; // need to position cursor again when on a TAB @@ -2097,7 +2097,7 @@ static void ins_ctrl_x(void) ctrl_x_mode = CTRL_X_CMDLINE_CTRL_X; } - trigger_modechanged(); + may_trigger_modechanged(); } // Whether other than default completion has been selected. @@ -2710,7 +2710,7 @@ void set_completion(colnr_T startcol, list_T *list) show_pum(save_w_wrow, save_w_leftcol); } - trigger_modechanged(); + may_trigger_modechanged(); ui_flush(); } @@ -3890,7 +3890,7 @@ static bool ins_compl_prep(int c) ins_apply_autocmds(EVENT_COMPLETEDONE); } - trigger_modechanged(); + may_trigger_modechanged(); /* reset continue_* if we left expansion-mode, if we stay they'll be * (re)set properly in ins_complete() */ @@ -4641,7 +4641,7 @@ static int ins_compl_get_exp(pos_T *ini) compl_curr_match = compl_old_match; } } - trigger_modechanged(); + may_trigger_modechanged(); return i; } @@ -8051,7 +8051,7 @@ static bool ins_esc(long *count, int cmdchar, bool nomove) State = NORMAL; - trigger_modechanged(); + may_trigger_modechanged(); // need to position cursor again when on a TAB if (gchar_cursor() == TAB) { curwin->w_valid &= ~(VALID_WROW|VALID_WCOL|VALID_VIRTCOL); @@ -8155,7 +8155,7 @@ static void ins_insert(int replaceState) } else { State = replaceState | (State & LANGMAP); } - trigger_modechanged(); + may_trigger_modechanged(); AppendCharToRedobuff(K_INS); showmode(); ui_cursor_shape(); // may show different cursor shape |