diff --git a/home/.config/nvim/lua/plugs/oil.lua b/home/.config/nvim/lua/plugs/oil.lua index c27a350..ac30f9a 100644 --- a/home/.config/nvim/lua/plugs/oil.lua +++ b/home/.config/nvim/lua/plugs/oil.lua @@ -4,6 +4,8 @@ local oil = nil local oil_window = nil local function toggle_oil_window() + assert(oil, "Oil is not loaded") + if oil_window and vim.api.nvim_win_is_valid(oil_window) then vim.api.nvim_win_close(oil_window, true) oil_window = nil @@ -46,10 +48,14 @@ return { }, }) - require("utils").add_keymaps({ + local wm = require("window_management") + utils.add_keymaps({ n = { ["o"] = { - cmd = toggle_oil_window, + cmd = function() + toggle_oil_window() + wm.autosize_windows() + end, } } }) diff --git a/home/.config/nvim/lua/plugs/trouble.lua b/home/.config/nvim/lua/plugs/trouble.lua index d26d0bc..b9bc33b 100644 --- a/home/.config/nvim/lua/plugs/trouble.lua +++ b/home/.config/nvim/lua/plugs/trouble.lua @@ -1,25 +1,68 @@ +local wm = require("window_management") + +local is_trouble_window = false + +local function setup_autosize_callback() + local auname = "TroubleWinEnter" + local augroup = vim.api.nvim_create_augroup(auname, { clear = true }) + + vim.api.nvim_create_autocmd("WinEnter", { + group = augroup, + callback = function() + if not is_trouble_window then + return + end + + is_trouble_window = false + wm.autosize_windows() + end, + }) +end + return { "folke/trouble.nvim", config = function() - require("trouble").setup({}) + local trouble = require("trouble") + trouble.setup({}) + setup_autosize_callback() require("utils").add_keymaps({ n = { ["x"] = { - cmd = "Trouble diagnostics toggle", + cmd = function() + is_trouble_window = true + trouble.toggle({ + mode = "diagnostics", + focus = true, + }) + end }, ["ls"] = { - cmd = "Trouble symbols toggle focus=false", + cmd = function() + is_trouble_window = true + trouble.toggle({ + mode = "symbols", + focus = true, + }) + end }, - -- Stick with using the references feature fom lspsaga for now, might change later - -- ["cl"] = { - -- cmd = "Trouble lsp toggle focus=false win.position=right", - -- }, ["ll"] = { - cmd = "Trouble loclist toggle", + cmd = function() + is_trouble_window = true + trouble.toggle({ + mode = "loclist", + focus = true, + }) + end }, ["lq"] = { - cmd = "Trouble qflist toggle", + cmd = function() + is_trouble_window = true + trouble.toggle({ + mode = "quickfix", + focus = true, + }) + end }, } }) diff --git a/home/.config/nvim/lua/terminal.lua b/home/.config/nvim/lua/terminal.lua index 4fcd651..165c86f 100644 --- a/home/.config/nvim/lua/terminal.lua +++ b/home/.config/nvim/lua/terminal.lua @@ -40,10 +40,14 @@ local function toggle_terminal() end function M.setup() + local wm = require("window_management") utils.add_keymaps({ n = { ["h"] = { - cmd = toggle_terminal + cmd = function() + toggle_terminal() + wm.autosize_windows() + end, } } })