diff options
author | notomo <notomo.motono@gmail.com> | 2020-01-14 22:34:05 +0900 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2020-01-18 17:06:03 -0800 |
commit | 2b8e66c6ce0a5ccae09023732c06da90f96ed5f5 (patch) | |
tree | c55c4b887cd8be295bf9bfda233b934f78ba8816 | |
parent | 757aad92e84709a08320a06870b6acb086bc6876 (diff) | |
download | rneovim-2b8e66c6ce0a5ccae09023732c06da90f96ed5f5.tar.gz rneovim-2b8e66c6ce0a5ccae09023732c06da90f96ed5f5.tar.bz2 rneovim-2b8e66c6ce0a5ccae09023732c06da90f96ed5f5.zip |
autocmd: WinClosed exposes window id as <afile>
-rw-r--r-- | src/nvim/fileio.c | 3 | ||||
-rw-r--r-- | src/nvim/window.c | 6 | ||||
-rw-r--r-- | test/functional/autocmd/autocmd_spec.lua | 7 |
3 files changed, 13 insertions, 3 deletions
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c index 865da25009..7a46957151 100644 --- a/src/nvim/fileio.c +++ b/src/nvim/fileio.c @@ -6862,7 +6862,8 @@ static bool apply_autocmds_group(event_T event, char_u *fname, char_u *fname_io, || event == EVENT_SPELLFILEMISSING || event == EVENT_SYNTAX || event == EVENT_SIGNAL - || event == EVENT_TABCLOSED) { + || event == EVENT_TABCLOSED + || event == EVENT_WINCLOSED) { fname = vim_strsave(fname); } else { fname = (char_u *)FullName_save((char *)fname, false); diff --git a/src/nvim/window.c b/src/nvim/window.c index 4743dca3ff..9efed49e70 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -2695,8 +2695,10 @@ static void do_autocmd_winclosed(win_T *win) return; } recursive = true; - apply_autocmds(EVENT_WINCLOSED, win->w_buffer->b_fname, - win->w_buffer->b_fname, false, win->w_buffer); + + char_u winid[10]; + vim_snprintf((char *)winid, sizeof(winid), "%i", win->handle); + apply_autocmds(EVENT_WINCLOSED, winid, winid, false, win->w_buffer); recursive = false; } diff --git a/test/functional/autocmd/autocmd_spec.lua b/test/functional/autocmd/autocmd_spec.lua index 31c6edb940..6cb12750a1 100644 --- a/test/functional/autocmd/autocmd_spec.lua +++ b/test/functional/autocmd/autocmd_spec.lua @@ -50,6 +50,13 @@ describe('autocmd', function() eq(1, eval('g:triggered')) end) + it('WinClosed event exposes window id as <afile>', function() + command('new') + local id = meths.get_current_win().id + helpers.nvim('command', 'au! WinClosed * echom "winclosed:".expand("<afile>").":".expand("<amatch>").":".win_getid()') + eq(string.format("winclosed:%s:%s:%s", id, id, id), helpers.nvim('exec', 'close', true)) + end) + it(':bdelete triggers WinClosed event', function() command('let g:triggered = 0') command('autocmd WinClosed <buffer> :let g:triggered+=1') |