diff options
-rw-r--r-- | runtime/doc/eval.txt | 2 | ||||
-rw-r--r-- | src/evalfunc.c | 2 | ||||
-rw-r--r-- | src/testdir/test_bufwintabinfo.vim | 21 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 25 insertions, 2 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index bd538d523..9394ece21 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -4994,8 +4994,10 @@ getwininfo([{winid}]) *getwininfo()* variables a reference to the dictionary with window-local variables width window width + wincol leftmost screen column of the window winid |window-ID| winnr window number + winrow topmost screen column of the window To obtain all window-local variables use: > gettabwinvar({tabnr}, {winnr}, '&') diff --git a/src/evalfunc.c b/src/evalfunc.c index 5775c78db..13c60b993 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -5648,10 +5648,12 @@ get_win_info(win_T *wp, short tpnr, short winnr) dict_add_number(dict, "winnr", winnr); dict_add_number(dict, "winid", wp->w_id); dict_add_number(dict, "height", wp->w_height); + dict_add_number(dict, "winrow", wp->w_winrow); #ifdef FEAT_MENU dict_add_number(dict, "winbar", wp->w_winbar_height); #endif dict_add_number(dict, "width", wp->w_width); + dict_add_number(dict, "wincol", wp->w_wincol); dict_add_number(dict, "bufnr", wp->w_buffer->b_fnum); #ifdef FEAT_TERMINAL diff --git a/src/testdir/test_bufwintabinfo.vim b/src/testdir/test_bufwintabinfo.vim index 31b465002..bcf3c52ed 100644 --- a/src/testdir/test_bufwintabinfo.vim +++ b/src/testdir/test_bufwintabinfo.vim @@ -46,17 +46,34 @@ function Test_getbufwintabinfo() let w2_id = win_getid() tabnew | let w3_id = win_getid() new | let w4_id = win_getid() - new | let w5_id = win_getid() + vert new | let w5_id = win_getid() call setwinvar(0, 'signal', 'green') tabfirst let winlist = getwininfo() call assert_equal(5, len(winlist)) + call assert_equal(winwidth(1), winlist[0].width) + call assert_equal(0, winlist[0].wincol) + call assert_equal(1, winlist[0].winrow) " tabline adds one + call assert_equal(winbufnr(2), winlist[1].bufnr) call assert_equal(winheight(2), winlist[1].height) + call assert_equal(0, winlist[1].wincol) + call assert_equal(winheight(1) + 2, winlist[1].winrow) + call assert_equal(1, winlist[2].winnr) + call assert_equal(1, winlist[2].winrow) + call assert_equal(0, winlist[2].wincol) + + call assert_equal(winlist[2].width + 1, winlist[3].wincol) + call assert_equal(0, winlist[4].wincol) + + call assert_equal(1, winlist[0].tabnr) + call assert_equal(1, winlist[1].tabnr) + call assert_equal(2, winlist[2].tabnr) call assert_equal(2, winlist[3].tabnr) + call assert_equal(2, winlist[4].tabnr) + call assert_equal('green', winlist[2].variables.signal) - call assert_equal(winwidth(1), winlist[0].width) call assert_equal(w4_id, winlist[3].winid) let winfo = getwininfo(w5_id)[0] call assert_equal(2, winfo.tabnr) diff --git a/src/version.c b/src/version.c index 0cda7a5ae..a1535f682 100644 --- a/src/version.c +++ b/src/version.c @@ -790,6 +790,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 184, +/**/ 183, /**/ 182, |