return { { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", cmd = "Neotree", keys = { { "fe", function() require("neo-tree.command").execute({ toggle = true, dir = require("lazyvim.util").get_root() }) end, desc = "Explorer NeoTree (root dir)", }, { "fE", function() require("neo-tree.command").execute({ toggle = true, dir = vim.loop.cwd() }) end, desc = "Explorer NeoTree (cwd)", }, { "e", "fe", desc = "Explorer NeoTree (root dir)", remap = true }, { "E", "fE", desc = "Explorer NeoTree (cwd)", remap = true }, }, deactivate = function() vim.cmd([[Neotree close]]) end, init = function() if vim.fn.argc() == 1 then local stat = vim.loop.fs_stat(vim.fn.argv(0)) if stat and stat.type == "directory" then require("neo-tree") end end end, opts = { sources = { "filesystem", "git_status", "buffers", "document_symbols" }, open_files_do_not_replace_types = { "terminal", "Trouble", "qf", "Outline" }, enable_git_status = true, enable_diagnostics = true, filesystem = { bind_to_cwd = false, follow_current_file = { enabled = true }, use_libuv_file_watcher = true, }, window = { mappings = { [""] = "none", ["e"] = "open", }, }, default_component_configs = { indent = { with_expanders = true, -- if nil and file nesting is enabled, will enable expanders expander_collapsed = "", expander_expanded = "", expander_highlight = "NeoTreeExpander", }, }, }, config = function(_, opts) require("neo-tree").setup(opts) vim.api.nvim_create_autocmd("TermClose", { pattern = "*lazygit", callback = function() if package.loaded["neo-tree.sources.git_status"] then require("neo-tree.sources.git_status").refresh() end end, }) end, }, }