return { "nvim-neo-tree/neo-tree.nvim", dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons" }, cmd = "Neotree", init = function() vim.g.neo_tree_remove_legacy_commands = true end, pin = true, tag = "2.56", opts = { auto_clean_after_session_restore = true, close_if_last_window = true, sources = { "filesystem" }, filesystem = { follow_current_file = false, group_empty_dirs = true, filtered_items = { visible = true, hide_dotfiles = false, hide_gitignored = false, never_show = { ".DS_Store", }, }, }, use_libuv_file_watcher = true, nesting_rules = { ["ts"] = { ".cjs", ".cjs.map", ".d.ts", ".d.ts.map", ".js", ".js.map", ".mjs", ".mjs.map", ".test.ts" }, ["js"] = { ".cjs", ".cjs.map", ".d.js", ".d.js.map", ".js", ".js.map", ".mjs", ".mjs.map", ".test.js" }, ["tsx"] = { ".d.ts", ".d.ts.map", ".js;", ".js.map;", ".jsx;", ".jsx.map;", ".module.scss;", ".svg" }, ["scss"] = { ".css", ".css.map" }, }, }, keys = { { "e", "Neotree toggle", desc = "Toggle Explorer" }, { "o", function() if vim.bo.filetype == "neo-tree" then vim.cmd.wincmd("p") else vim.cmd.Neotree("reveal") end end, desc = "Toggle Explorer Focus", }, }, }