--- @type LazyPluginSpec return { "nvim-neo-tree/neo-tree.nvim", init = function() vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 end, branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", "MunifTanjim/nui.nvim", }, config = function() vim.keymap.set("n", "", "Neotree toggle", { silent = true, desc = "Toggle neotree" }) 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 } }, ["C"] = "close_node", ["z"] = "close_all_nodes", ["a"] = { "add", config = { show_path = "relative", }, }, ["A"] = { "add_directory", config = { show_path = "relative", }, }, ["q"] = "close_window", ["R"] = "refresh", ["?"] = "show_help", ["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_current", 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, }