diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2025-02-05 23:09:29 +0000 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2025-02-05 23:09:29 +0000 |
commit | d5f194ce780c95821a855aca3c19426576d28ae0 (patch) | |
tree | d45f461b19f9118ad2bb1f440a7a08973ad18832 /src/nvim/api/window.c | |
parent | c5d770d311841ea5230426cc4c868e8db27300a8 (diff) | |
parent | 44740e561fc93afe3ebecfd3618bda2d2abeafb0 (diff) | |
download | rneovim-rahm.tar.gz rneovim-rahm.tar.bz2 rneovim-rahm.zip |
Diffstat (limited to 'src/nvim/api/window.c')
-rw-r--r-- | src/nvim/api/window.c | 77 |
1 files changed, 29 insertions, 48 deletions
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index 5a4972ef23..d968af421d 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -1,4 +1,3 @@ -#include <limits.h> #include <stdbool.h> #include <stdint.h> #include <stdlib.h> @@ -28,7 +27,7 @@ #include "nvim/window.h" #ifdef INCLUDE_GENERATED_DECLARATIONS -# include "api/window.c.generated.h" +# include "api/window.c.generated.h" // IWYU pragma: keep #endif /// Gets the current buffer in a window @@ -63,11 +62,6 @@ void nvim_win_set_buf(Window window, Buffer buffer, Error *err) return; } - if (win->w_p_wfb) { - api_set_error(err, kErrorTypeException, "%s", e_winfixbuf_cannot_go_to_buffer); - return; - } - if (win == cmdwin_win || win == cmdwin_old_curwin || buf == cmdwin_buf) { api_set_error(err, kErrorTypeException, "%s", e_cmdwin); return; @@ -187,14 +181,9 @@ void nvim_win_set_height(Window window, Integer height, Error *err) return; } - if (height > INT_MAX || height < INT_MIN) { - api_set_error(err, kErrorTypeValidation, "Height value outside range"); - return; - } - - try_start(); - win_setheight_win((int)height, win); - try_end(err); + TRY_WRAP(err, { + win_setheight_win((int)height, win); + }); } /// Gets the window width @@ -229,14 +218,9 @@ void nvim_win_set_width(Window window, Integer width, Error *err) return; } - if (width > INT_MAX || width < INT_MIN) { - api_set_error(err, kErrorTypeValidation, "Width value outside range"); - return; - } - - try_start(); - win_setwidth_win((int)width, win); - try_end(err); + TRY_WRAP(err, { + win_setwidth_win((int)width, win); + }); } /// Gets a window-scoped (w:) variable @@ -383,19 +367,16 @@ void nvim_win_hide(Window window, Error *err) } tabpage_T *tabpage = win_find_tabpage(win); - TryState tstate; - try_enter(&tstate); - - // Never close the autocommand window. - if (is_aucmd_win(win)) { - emsg(_(e_autocmd_close)); - } else if (tabpage == curtab) { - win_close(win, false, false); - } else { - win_close_othertab(win, false, tabpage); - } - - vim_ignored = try_leave(&tstate, err); + TRY_WRAP(err, { + // Never close the autocommand window. + if (is_aucmd_win(win)) { + emsg(_(e_autocmd_close)); + } else if (tabpage == curtab) { + win_close(win, false, false); + } else { + win_close_othertab(win, false, tabpage); + } + }); } /// Closes the window (like |:close| with a |window-ID|). @@ -415,10 +396,9 @@ void nvim_win_close(Window window, Boolean force, Error *err) } tabpage_T *tabpage = win_find_tabpage(win); - TryState tstate; - try_enter(&tstate); - ex_win_close(force, win, tabpage == curtab ? NULL : tabpage); - vim_ignored = try_leave(&tstate, err); + TRY_WRAP(err, { + ex_win_close(force, win, tabpage == curtab ? NULL : tabpage); + }); } /// Calls a function with window as temporary current window. @@ -441,15 +421,15 @@ Object nvim_win_call(Window window, LuaRef fun, Error *err) } tabpage_T *tabpage = win_find_tabpage(win); - try_start(); Object res = OBJECT_INIT; - win_execute_T win_execute_args; - if (win_execute_before(&win_execute_args, win, tabpage)) { - Array args = ARRAY_DICT_INIT; - res = nlua_call_ref(fun, NULL, args, kRetLuaref, NULL, err); - } - win_execute_after(&win_execute_args); - try_end(err); + TRY_WRAP(err, { + win_execute_T win_execute_args; + if (win_execute_before(&win_execute_args, win, tabpage)) { + Array args = ARRAY_DICT_INIT; + res = nlua_call_ref(fun, NULL, args, kRetLuaref, NULL, err); + } + win_execute_after(&win_execute_args); + }); return res; } @@ -476,6 +456,7 @@ void nvim_win_set_hl_ns(Window window, Integer ns_id, Error *err) } win->w_ns_hl = (NS)ns_id; + win->w_ns_hl_winhl = -1; win->w_hl_needs_update = true; redraw_later(win, UPD_NOT_VALID); } |