return { { "guess-indent.nvim", for_cat = "core.general", event = "DeferredUIEnter", after = function() require("guess-indent").setup({ auto_cmd = true, override_editorconfig = true, filetype_exclude = { "netrw", "tutor", "oil", "gitcommit", }, buftype_exclude = { "help", "nofile", "terminal", "prompt", }, on_tab_options = { ["expandtab"] = false, }, on_space_options = { ["expandtab"] = true, ["tabstop"] = "detected", ["softtabstop"] = "detected", ["shiftwidth"] = "detected", }, }) end, }, { "nvim-surround", for_cat = "core.general", event = { "BufReadPre", "BufNewFile" }, after = function() require("nvim-surround").setup() end, }, { "oil.nvim", keys = { { "o", "Oil", desc = "Open oil" } }, for_cat = "core.general", after = function() require("oil").setup({ default_file_explorer = true, columns = { "icon", "permissions", "size" }, keymaps = { ["-"] = "actions.parent", [""] = "actions.select", [""] = "actions.select_vsplit", [""] = "actions.select_split", }, }) end, }, { "undotree", for_cat = "core.general", cmd = { "UndotreeToggle", "UndotreeHide", "UndotreeShow", "UndotreeFocus", "UndotreePersistUndo" }, keys = { { "U", "UndotreeToggle", mode = { "n" }, desc = "Undo Tree" } }, before = function(_) vim.g.undotree_WindowLayout = 1 vim.g.undotree_SplitWidth = 40 vim.g.undotree_WindowLayout = 3 end, }, { "lazydev.nvim", ft = "lua", after = function() require("lazydev").setup({ library = { { path = "${3rd}/luv/library", words = { "vim%.uv" } }, }, integrations = { -- Fixes lspconfig's workspace management for LuaLS -- Only create a new workspace if the buffer is not part -- of an existing workspace or one of its libraries lspconfig = true, -- add the cmp source for completion of: -- `require "modname"` -- `---@module "modname"` cmp = true, -- same, but for Coq coq = false, }, }) end, }, { "trouble.nvim", for_cat = "core.general", cmd = "Trouble", keys = { { "xx", "Trouble diagnostics toggle", desc = "Diagnostics (Trouble)", }, { "xX", "Trouble diagnostics toggle filter.buf=0", desc = "Buffer Diagnostics (Trouble)", }, { "cs", "Trouble symbols toggle focus=false", desc = "Symbols (Trouble)", }, { "cl", "Trouble lsp toggle focus=false win.position=right", desc = "LSP Definitions / references / ... (Trouble)", }, { "xL", "Trouble loclist toggle", desc = "Location List (Trouble)", }, { "xQ", "Trouble qflist toggle", desc = "Quickfix List (Trouble)", }, }, after = function() require("trouble").setup() end, }, }