From 1ebb75b1ec5b22d7c7dba1c7fdc9e7969b81ad4d Mon Sep 17 00:00:00 2001 From: James McCoy Date: Mon, 3 Oct 2016 23:36:47 -0400 Subject: api: Support getting the number of a window/tabpage In order to provide better compatibility with the classic bindings, the API needs to provide the ability to query the number (really index) of the window/tabpage. This is needed for neovim/python-client#87, as discussed in neovim/neovim#1898. Signed-off-by: James McCoy --- src/nvim/api/tabpage.c | 17 +++++++++++++++++ src/nvim/api/window.c | 20 ++++++++++++++++++++ 2 files changed, 37 insertions(+) (limited to 'src/nvim/api') diff --git a/src/nvim/api/tabpage.c b/src/nvim/api/tabpage.c index 8b1fb041e2..fa00988ae3 100644 --- a/src/nvim/api/tabpage.c +++ b/src/nvim/api/tabpage.c @@ -159,6 +159,23 @@ Window nvim_tabpage_get_win(Tabpage tabpage, Error *err) } } +/// Gets the tab page number +/// +/// @param tabpage The tabpage handle +/// @param[out] err Details of an error that may have occurred +/// @return The tabpage number +Integer nvim_tabpage_get_number(Tabpage tabpage, Error *err) +{ + Integer rv = 0; + tabpage_T *tab = find_tab_by_handle(tabpage, err); + + if (!tab) { + return rv; + } + + return tabpage_index(tab); +} + /// Checks if a tab page is valid /// /// @param tabpage The tab page handle diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index 166e43f698..382f65e7d9 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -341,6 +341,26 @@ Tabpage nvim_win_get_tabpage(Window window, Error *err) return rv; } +/// Gets the window number +/// +/// @param window The window handle +/// @param[out] err Details of an error that may have occurred +/// @return The window number +Integer nvim_win_get_number(Window window, Error *err) +{ + Integer rv = 0; + win_T *win = find_window_by_handle(window, err); + + if (!win) { + return rv; + } + + int tabnr; + win_get_tabwin(window, &tabnr, (int *)&rv); + + return rv; +} + /// Checks if a window is valid /// /// @param window The window handle -- cgit