mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.0991: cannot get window type for autocmd and preview window
Problem: Cannot get window type for autocmd and preview window. Solution: Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277)
This commit is contained in:
parent
a1bc6f1293
commit
0fe937fd86
@ -10864,7 +10864,10 @@ win_getid([{win} [, {tab}]]) *win_getid()*
|
|||||||
|
|
||||||
win_gettype([{nr}]) *win_gettype()*
|
win_gettype([{nr}]) *win_gettype()*
|
||||||
Return the type of the window:
|
Return the type of the window:
|
||||||
|
"aucmdwin" autocommand window. Temporary window
|
||||||
|
used to execute autocommands.
|
||||||
"popup" popup window |popup|
|
"popup" popup window |popup|
|
||||||
|
"preview" preview window |preview-window|
|
||||||
"command" command-line window |cmdwin|
|
"command" command-line window |cmdwin|
|
||||||
(empty) normal window
|
(empty) normal window
|
||||||
"unknown" window {nr} not found
|
"unknown" window {nr} not found
|
||||||
|
@ -858,13 +858,18 @@ f_win_gettype(typval_T *argvars, typval_T *rettv)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (wp == aucmd_win)
|
||||||
|
rettv->vval.v_string = vim_strsave((char_u *)"aucmdwin");
|
||||||
|
#if defined(FEAT_QUICKFIX)
|
||||||
|
else if (wp->w_p_pvw)
|
||||||
|
rettv->vval.v_string = vim_strsave((char_u *)"preview");
|
||||||
|
#endif
|
||||||
#ifdef FEAT_PROP_POPUP
|
#ifdef FEAT_PROP_POPUP
|
||||||
if (WIN_IS_POPUP(wp))
|
else if (WIN_IS_POPUP(wp))
|
||||||
rettv->vval.v_string = vim_strsave((char_u *)"popup");
|
rettv->vval.v_string = vim_strsave((char_u *)"popup");
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_CMDWIN
|
#ifdef FEAT_CMDWIN
|
||||||
if (wp == curwin && cmdwin_type != 0)
|
else if (wp == curwin && cmdwin_type != 0)
|
||||||
rettv->vval.v_string = vim_strsave((char_u *)"command");
|
rettv->vval.v_string = vim_strsave((char_u *)"command");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -2579,4 +2579,26 @@ func Test_BufDelete_changebuf()
|
|||||||
close!
|
close!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for the temporary internal window used to execute autocmds
|
||||||
|
func Test_autocmd_window()
|
||||||
|
%bw!
|
||||||
|
edit one.txt
|
||||||
|
tabnew two.txt
|
||||||
|
let g:blist = []
|
||||||
|
augroup aucmd_win_test
|
||||||
|
au!
|
||||||
|
au BufEnter * call add(g:blist, [expand('<afile>'),
|
||||||
|
\ win_gettype(bufwinnr(expand('<afile>')))])
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
doautoall BufEnter
|
||||||
|
call assert_equal([['one.txt', 'aucmdwin'], ['two.txt', '']], g:blist)
|
||||||
|
|
||||||
|
augroup aucmd_win_test
|
||||||
|
au!
|
||||||
|
augroup END
|
||||||
|
augroup! aucmd_win_test
|
||||||
|
%bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -25,6 +25,7 @@ func Test_window_preview()
|
|||||||
" Go to the preview window
|
" Go to the preview window
|
||||||
wincmd P
|
wincmd P
|
||||||
call assert_equal(1, &previewwindow)
|
call assert_equal(1, &previewwindow)
|
||||||
|
call assert_equal('preview', win_gettype())
|
||||||
|
|
||||||
" Close preview window
|
" Close preview window
|
||||||
wincmd z
|
wincmd z
|
||||||
|
@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
991,
|
||||||
/**/
|
/**/
|
||||||
990,
|
990,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user