--- @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 = true, }, }) end, }