mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 06:28:35 +00:00
vim-patch:9.0.2075: TextChangedI may not always trigger (#25808)
Problem: TextChangedI may not always trigger
Solution: trigger it in more cases: for insert/
append/change operations, and when
opening a new line,
fixes: vim/vim#13367
closes: vim/vim#13375
4bca4897a1
Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -5724,6 +5724,8 @@ static void n_opencmd(cmdarg_T *cap)
|
||||
(void)hasFolding(curwin->w_cursor.lnum,
|
||||
NULL, &curwin->w_cursor.lnum);
|
||||
}
|
||||
// trigger TextChangedI for the 'o/O' command
|
||||
curbuf->b_last_changedtick_i = buf_get_changedtick(curbuf);
|
||||
if (u_save(curwin->w_cursor.lnum - (cap->cmdchar == 'O' ? 1 : 0),
|
||||
curwin->w_cursor.lnum + (cap->cmdchar == 'o' ? 1 : 0))
|
||||
&& open_line(cap->cmdchar == 'O' ? BACKWARD : FORWARD,
|
||||
@@ -6265,6 +6267,11 @@ static void invoke_edit(cmdarg_T *cap, int repl, int cmd, int startln)
|
||||
// Always reset "restart_edit", this is not a restarted edit.
|
||||
restart_edit = 0;
|
||||
|
||||
// Reset Changedtick_i, so that TextChangedI will only be triggered for stuff
|
||||
// from insert mode, for 'o/O' this has already been done in n_opencmd
|
||||
if (cap->cmdchar != 'O' && cap->cmdchar != 'o') {
|
||||
curbuf->b_last_changedtick_i = buf_get_changedtick(curbuf);
|
||||
}
|
||||
if (edit(cmd, startln, cap->count1)) {
|
||||
cap->retval |= CA_COMMAND_BUSY;
|
||||
}
|
||||
|
Reference in New Issue
Block a user