return { { "folke/edgy.nvim", event = "VeryLazy", keys = { { "ue", function() require("edgy").toggle() end, desc = "Edgy Toggle", }, -- stylua: ignore { "uE", function() require("edgy").select() end, desc = "Edgy Select Window" }, }, opts = function() local opts = { bottom = { { ft = "toggleterm", size = { height = 0.4 }, filter = function(buf, win) return vim.api.nvim_win_get_config(win).relative == "" end, }, { ft = "noice", size = { height = 0.4 }, filter = function(buf, win) return vim.api.nvim_win_get_config(win).relative == "" end, }, { ft = "lazyterm", title = "LazyTerm", size = { height = 0.4 }, filter = function(buf) return not vim.b[buf].lazyterm_cmd end, }, "Trouble", { ft = "qf", title = "QuickFix" }, { ft = "help", size = { height = 20 }, -- don't open help files in edgy that we're editing filter = function(buf) return vim.bo[buf].buftype == "help" end, }, { ft = "spectre_panel", size = { height = 0.4 } }, { title = "Neotest Output", ft = "neotest-output-panel", size = { height = 15 } }, }, left = { { title = "Neo-Tree", ft = "neo-tree", filter = function(buf) return vim.b[buf].neo_tree_source == "filesystem" end, pinned = true, open = function() vim.api.nvim_input("e") end, size = { height = 0.5 }, }, --[[ { title = "Neotest Summary", ft = "neotest-summary" }, { title = "Neo-Tree Git", ft = "neo-tree", filter = function(buf) return vim.b[buf].neo_tree_source == "git_status" end, pinned = true, open = "Neotree position=right git_status", }, ]] { title = "Neo-Tree Symbols", ft = "neo-tree", filter = function(buf) return vim.b[buf].neo_tree_source == "document_symbols" end, pinned = true, open = "Neotree position=top document_symbols", }, "neo-tree", }, keys = { -- increase width [""] = function(win) win:resize("width", 2) end, -- decrease width [""] = function(win) win:resize("width", -2) end, -- increase height [""] = function(win) win:resize("height", 2) end, -- decrease height [""] = function(win) win:resize("height", -2) end, }, } local Util = require("lazyvim.util") if Util.has("symbols-outline.nvim") then table.insert(opts.left, { title = "Outline", ft = "Outline", pinned = true, open = "SymbolsOutline", }) end return opts end, } }