diff options
author | HampusM <hampus@hampusmat.com> | 2024-05-30 19:15:41 +0200 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2024-05-30 19:58:44 +0200 |
commit | a6123a6dd5ee3f7e63077cf72a40a1085cebada1 (patch) | |
tree | bfe00bca1b126c951a70fed2e37ceafa718ca185 /lua/functions.lua | |
parent | 397231322ba179218eb89b2b9c6470387f99e221 (diff) |
make terminal resizing more robust
Diffstat (limited to 'lua/functions.lua')
-rw-r--r-- | lua/functions.lua | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/lua/functions.lua b/lua/functions.lua index 12eca3a..1f088a8 100644 --- a/lua/functions.lua +++ b/lua/functions.lua @@ -12,6 +12,14 @@ function table.filter(list, predicate) return filtered_list end +local function set_terminal_height(height) + if not vim.api.nvim_win_is_valid(vim.g.term_win) then + return + end + + vim.api.nvim_win_set_height(vim.g.term_win, height) +end + function _G.check_back_space() local col = vim.api.nvim_win_get_cursor(0)[2] @@ -32,14 +40,13 @@ function _G.show_documentation() end end -function _G.toggle_terminal(height) +function _G.toggle_terminal() if vim.fn.win_gotoid(vim.g.term_win) == 1 then - vim.g.is_term_open = 0 vim.cmd("quit!") else vim.cmd("botright new") - vim.cmd("resize " .. height) + vim.api.nvim_win_set_height(vim.fn.win_getid(), vim.g.terminal_height) if not pcall(function() vim.cmd("buffer " .. vim.g.term_buf) end) then vim.fn.termopen(vim.env.SHELL, {detach=0}) @@ -54,7 +61,6 @@ function _G.toggle_terminal(height) vim.cmd("startinsert!") vim.g.term_win = vim.fn.win_getid() - vim.g.is_term_open = 1 if vim.fn.exists("g:NERDTree") and vim.api.nvim_eval("g:NERDTree.IsOpen()") then vim.cmd("NERDTreeFocus") @@ -114,11 +120,6 @@ function _G.close_current_buffer() vim.api.nvim_buf_delete(current_buf_nr, { force = true }) - -- Resize terminal - if vim.g.is_term_open == 1 then - vim.cmd("wincmd j") - vim.cmd("resize " .. vim.g.terminal_height) - vim.cmd("wincmd k") - end + set_terminal_height(vim.g.terminal_height) end |