return { { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", "nvim-tree/nvim-web-devicons", }, keys = { { "t", function() require("neo-tree.command").execute({ toggle = true, source = "filesystem", position = "left", }) end, desc = "Buffers (root dir)", }, }, config = function() -- automatically close file tree if file is selected require("neo-tree").setup({ close_if_last_window = true, event_handlers = { { event = "file_open_requested", handler = function() require("neo-tree.command").execute({ action = "close" }) end, }, -- makes it so quitting inside buffer quits all buffers { event = "neo_tree_buffer_enter", handler = function() vim.cmd("cabbrev q qall") end, }, }, }) -- auto open file tree on empty buffer or directory vim.api.nvim_create_autocmd("VimEnter", { callback = function(data) local is_directory = vim.fn.isdirectory(data.file) == 1 local no_name = data.file == "" and vim.bo[data.buf].buftype == "" if is_directory or no_name then require("neo-tree.command").execute({ action = "focus", source = "filesystem", position = "left", }) end end, }) end, lazy = false, -- neo-tree lazy loads itself }, { "nvim-telescope/telescope.nvim", branch = "0.1.x", event = "VimEnter", dependencies = { "nvim-lua/plenary.nvim"}, opts = { defaults = { layout_config = { horizontal = { width = 0.9 } }, }, }, keys = { { "f", "Telescope find_files", desc = "Find files" }, { "s", "Telescope spell_suggest", desc = "Spelling suggestions" }, }, } }