Add autosizing whenever we open/close an edge panel, meaning we always

keep the relative width/height of the main windows
This commit is contained in:
Martin Larsson 2024-07-05 16:50:17 +02:00
parent 7c45912194
commit 7316bef23d
3 changed files with 65 additions and 12 deletions

View file

@ -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 = {
["<leader>o"] = {
cmd = toggle_oil_window,
cmd = function()
toggle_oil_window()
wm.autosize_windows()
end,
}
}
})

View file

@ -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 = {
["<leader>x"] = {
cmd = "<cmd>Trouble diagnostics toggle<cr>",
cmd = function()
is_trouble_window = true
trouble.toggle({
mode = "diagnostics",
focus = true,
})
end
},
["<leader>ls"] = {
cmd = "<cmd>Trouble symbols toggle focus=false<cr>",
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
-- ["<leader>cl"] = {
-- cmd = "<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
-- },
["<leader>ll"] = {
cmd = "<cmd>Trouble loclist toggle<cr>",
cmd = function()
is_trouble_window = true
trouble.toggle({
mode = "loclist",
focus = true,
})
end
},
["<leader>lq"] = {
cmd = "<cmd>Trouble qflist toggle<cr>",
cmd = function()
is_trouble_window = true
trouble.toggle({
mode = "quickfix",
focus = true,
})
end
},
}
})

View file

@ -40,10 +40,14 @@ local function toggle_terminal()
end
function M.setup()
local wm = require("window_management")
utils.add_keymaps({
n = {
["<leader>h"] = {
cmd = toggle_terminal
cmd = function()
toggle_terminal()
wm.autosize_windows()
end,
}
}
})