aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ops.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-10-28 10:42:18 +0800
committerGitHub <noreply@github.com>2023-10-28 10:42:18 +0800
commitac353e87aecf02315d82a3ad22725d2bc8140f0c (patch)
treec5160c0dfe383fd218c716a16ba2ce7b195e35ae /src/nvim/ops.c
parentf97248db757ee300b7808c3dd67858d489b604fd (diff)
downloadrneovim-ac353e87aecf02315d82a3ad22725d2bc8140f0c.tar.gz
rneovim-ac353e87aecf02315d82a3ad22725d2bc8140f0c.tar.bz2
rneovim-ac353e87aecf02315d82a3ad22725d2bc8140f0c.zip
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 https://github.com/vim/vim/commit/4bca4897a12dfb91b3b27e3083fd5f370bd857d1 Co-authored-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/nvim/ops.c')
-rw-r--r--src/nvim/ops.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 260019da33..f325eceaaf 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -6226,6 +6226,9 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank)
// Restore linebreak, so that when the user edits it looks as before.
restore_lbr(lbr_saved);
+ // trigger TextChangedI
+ curbuf->b_last_changedtick_i = buf_get_changedtick(curbuf);
+
if (op_change(oap)) { // will call edit()
cap->retval |= CA_COMMAND_BUSY;
}
@@ -6324,6 +6327,9 @@ void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank)
// Restore linebreak, so that when the user edits it looks as before.
restore_lbr(lbr_saved);
+ // trigger TextChangedI
+ curbuf->b_last_changedtick_i = buf_get_changedtick(curbuf);
+
op_insert(oap, cap->count1);
// Reset linebreak, so that formatting works correctly.