aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/option.c
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2025-02-12 11:01:06 +0100
committerGitHub <noreply@github.com>2025-02-12 11:01:06 +0100
commit82a215cb2dc2b80c1b8bc455c90a928b636d8b3a (patch)
treeb264cb2900a0bd59b3ff4976f0cf47a06cfd5f19 /src/nvim/option.c
parent6982106f8ca5ceaa00c9909e64cc94d2794b9143 (diff)
downloadrneovim-82a215cb2dc2b80c1b8bc455c90a928b636d8b3a.tar.gz
rneovim-82a215cb2dc2b80c1b8bc455c90a928b636d8b3a.tar.bz2
rneovim-82a215cb2dc2b80c1b8bc455c90a928b636d8b3a.zip
feat(options): add 'eventignorewin' (#32152)
vim-patch:partial:9.1.1084: Unable to persistently ignore events in a window and its buffers Problem: Unable to persistently ignore events in a window and its buffers. Solution: Add 'eventignorewin' option to ignore events in a window and buffer (Luuk van Baal) Add the window-local 'eventignorewin' option that is analogous to 'eventignore', but applies to a certain window and its buffers. Identify events that should be allowed in 'eventignorewin', adapt "auto_event" and "event_tab" to encode this information. Window context is not passed onto apply_autocmds_group(), and when to ignore an event is a bit ambiguous when "buf" is not "curbuf", rather than a large refactor, only ignore an event when all windows into "buf" are ignoring the event. https://github.com/vim/vim/commit/b7147f8236c962cd74d1ce028d9106f1c449ea6c vim-patch:9.1.1102: tests: Test_WinScrolled_Resized_eiw() uses wrong filename Problem: tests: Test_WinScrolled_Resized_eiw() uses wrong filename (Luuk van Baal, after v9.1.1084) Solution: Rename the filename to something more unique https://github.com/vim/vim/commit/bfc7719e48ffc365ee0a1bd1888120d26b6365f0
Diffstat (limited to 'src/nvim/option.c')
-rw-r--r--src/nvim/option.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index 796165453c..f92ec349da 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -4580,6 +4580,8 @@ void *get_varp_from(vimoption_T *p, buf_T *buf, win_T *win)
return &(win->w_p_cc);
case kOptDiff:
return &(win->w_p_diff);
+ case kOptEventignorewin:
+ return &(win->w_p_eiw);
case kOptFoldcolumn:
return &(win->w_p_fdc);
case kOptFoldenable:
@@ -4875,6 +4877,7 @@ void copy_winopt(winopt_T *from, winopt_T *to)
to->wo_cc = copy_option_val(from->wo_cc);
to->wo_diff = from->wo_diff;
to->wo_diff_saved = from->wo_diff_saved;
+ to->wo_eiw = copy_option_val(from->wo_eiw);
to->wo_cocu = copy_option_val(from->wo_cocu);
to->wo_cole = from->wo_cole;
to->wo_fdc = copy_option_val(from->wo_fdc);
@@ -4919,6 +4922,7 @@ static void check_winopt(winopt_T *wop)
check_string_option(&wop->wo_fde);
check_string_option(&wop->wo_fdt);
check_string_option(&wop->wo_fmr);
+ check_string_option(&wop->wo_eiw);
check_string_option(&wop->wo_scl);
check_string_option(&wop->wo_rlc);
check_string_option(&wop->wo_sbr);
@@ -4946,6 +4950,7 @@ void clear_winopt(winopt_T *wop)
clear_string_option(&wop->wo_fde);
clear_string_option(&wop->wo_fdt);
clear_string_option(&wop->wo_fmr);
+ clear_string_option(&wop->wo_eiw);
clear_string_option(&wop->wo_scl);
clear_string_option(&wop->wo_rlc);
clear_string_option(&wop->wo_sbr);