return { "nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", "MunifTanjim/nui.nvim", }, config = function() local neotree = require("neo-tree") neotree.setup({ close_if_last_window = true, sort_case_insensitive = true, window = { position = "right", width = 30, mappings = { [""] = { "toggle_node", nowait = false, }, ["<2-LeftMouse>"] = "open", [""] = "open", [""] = "cancel", ["P"] = { "toggle_preview", config = { use_float = true } }, ["l"] = "focus_preview", ["h"] = "open_split", ["s"] = "open_vsplit", ["t"] = "open_tabnew", ["w"] = "open_with_window_picker", ["C"] = "close_node", ["z"] = "close_all_nodes", ["a"] = { "add", config = { show_path = "relative", }, }, ["A"] = { "add_directory", config = { show_path = "relative", }, }, ["d"] = "delete", ["r"] = "rename", ["y"] = "copy_to_clipboard", ["x"] = "cut_to_clipboard", ["p"] = "paste_from_clipboard", ["c"] = "copy", ["m"] = "move", ["q"] = "close_window", ["R"] = "refresh", ["?"] = "show_help", ["<"] = "prev_source", [">"] = "next_source", ["i"] = "show_file_details", }, }, filesystem = { filtered_items = { visible = true, hide_dotfiles = false, hide_gitignored = false, hide_hidden = false, hide_by_name = {}, hide_by_pattern = {}, always_show = { ".gitignore", ".env", }, never_show = { ".git", "node_modules", }, never_show_by_pattern = {}, }, follow_current_file = { enabled = false, leave_dirs_open = false, }, group_empty_dirs = false, hijack_netrw_behavior = "open_default", use_libuv_file_watcher = false, window = { mappings = { [""] = "navigate_up", ["."] = "set_root", ["H"] = "toggle_hidden", ["/"] = "fuzzy_finder", ["D"] = "fuzzy_finder_directory", ["#"] = "fuzzy_sorter", ["f"] = "filter_on_submit", [""] = "clear_filter", ["[g"] = "prev_git_modified", ["]g"] = "next_git_modified", ["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } }, ["oc"] = { "order_by_created", nowait = false }, ["od"] = { "order_by_diagnostics", nowait = false }, ["og"] = { "order_by_git_status", nowait = false }, ["om"] = { "order_by_modified", nowait = false }, ["on"] = { "order_by_name", nowait = false }, ["os"] = { "order_by_size", nowait = false }, ["ot"] = { "order_by_type", nowait = false }, }, fuzzy_finder_mappings = { [""] = "move_cursor_down", [""] = "move_cursor_down", [""] = "move_cursor_up", [""] = "move_cursor_up", }, }, }, }) end, }