diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-08-15 11:53:38 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-08-15 12:20:46 -0400 |
commit | b89c08901c1e619b9aeca6f109f6ba73a7be4e9f (patch) | |
tree | 140e2d99f095c0739740189755f619306a6f3f0d /src | |
parent | b5cfac089409faf17a290d4bfe1b669212e2984e (diff) | |
download | rneovim-b89c08901c1e619b9aeca6f109f6ba73a7be4e9f.tar.gz rneovim-b89c08901c1e619b9aeca6f109f6ba73a7be4e9f.tar.bz2 rneovim-b89c08901c1e619b9aeca6f109f6ba73a7be4e9f.zip |
vim-patch:8.0.1364: there is no easy way to get the window position
Problem: There is no easy way to get the window position.
Solution: Add win_screenpos().
https://github.com/vim/vim/commit/22044dc31788d9f1c2da7725269884d9923b4795
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 9 | ||||
-rw-r--r-- | src/nvim/eval.lua | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_window_cmd.vim | 13 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 86f57ee5a2..17057ea28d 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -10310,6 +10310,15 @@ static void f_getwininfo(typval_T *argvars, typval_T *rettv, FunPtr fptr) } } +// "win_screenpos()" function +static void f_win_screenpos(typval_T *argvars, typval_T *rettv, FunPtr fptr) +{ + tv_list_alloc_ret(rettv, 2); + const win_T *const wp = find_win_by_nr(&argvars[0], NULL); + tv_list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_winrow + 1); + tv_list_append_number(rettv->vval.v_list, wp == NULL ? 0 : wp->w_wincol + 1); +} + /* * "getwinposx()" function */ diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 23959f348a..328f46443f 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -338,6 +338,7 @@ return { win_gotoid={args=1}, win_id2tabwin={args=1}, win_id2win={args=1}, + win_screenpos={args=1}, winbufnr={args=1}, wincol={}, winheight={args=1}, diff --git a/src/nvim/testdir/test_window_cmd.vim b/src/nvim/testdir/test_window_cmd.vim index ad60c8d3c7..b3ab6957dc 100644 --- a/src/nvim/testdir/test_window_cmd.vim +++ b/src/nvim/testdir/test_window_cmd.vim @@ -374,6 +374,19 @@ func Test_equalalways_on_close() set equalalways& endfunc +func Test_win_screenpos() + call assert_equal(1, winnr('$')) + split + vsplit + 10wincmd _ + 30wincmd | + call assert_equal([1, 1], win_screenpos(1)) + call assert_equal([1, 32], win_screenpos(2)) + call assert_equal([12, 1], win_screenpos(3)) + call assert_equal([0, 0], win_screenpos(4)) + only +endfunc + func Test_window_jump_tag() help /iccf |