diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2021-03-28 19:07:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-28 19:07:56 +0200 |
commit | 6d4a922e07e857b46d882ea96decce7c7c6e2a30 (patch) | |
tree | 04440e96a40cf8e0271d6ee8a20bfb1bc008394f /src | |
parent | 2ed5a776028f50177526a3fe0d7650282316195d (diff) | |
parent | 45236981d887e3a535adc0fc1e91cadce54c9463 (diff) | |
download | rneovim-6d4a922e07e857b46d882ea96decce7c7c6e2a30.tar.gz rneovim-6d4a922e07e857b46d882ea96decce7c7c6e2a30.tar.bz2 rneovim-6d4a922e07e857b46d882ea96decce7c7c6e2a30.zip |
Merge pull request #14091 from euclidianAce/euclidianAce/nvim_win_hide
api: add vim.api.nvim_win_hide
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/window.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index f4af1632ec..89fa2f86fb 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -492,6 +492,35 @@ Dictionary nvim_win_get_config(Window window, Error *err) return rv; } +/// Closes the window and hide the buffer it contains (like |:hide| with a +/// |window-ID|). +/// +/// Like |:hide| the buffer becomes hidden unless another window is editing it, +/// or 'bufhidden' is `unload`, `delete` or `wipe` as opposed to |:close| or +/// |nvim_win_close|, which will close the buffer. +/// +/// @param window Window handle, or 0 for current window +/// @param[out] err Error details, if any +void nvim_win_hide(Window window, Error *err) + FUNC_API_SINCE(7) + FUNC_API_CHECK_TEXTLOCK +{ + win_T *win = find_window_by_handle(window, err); + if (!win) { + return; + } + + tabpage_T *tabpage = win_find_tabpage(win); + TryState tstate; + try_enter(&tstate); + if (tabpage == curtab) { + win_close(win, false); + } else { + win_close_othertab(win, false, tabpage); + } + vim_ignored = try_leave(&tstate, err); +} + /// Closes the window (like |:close| with a |window-ID|). /// /// @param window Window handle, or 0 for current window |