return { "nvim-neo-tree/neo-tree.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", "MunifTanjim/nui.nvim", }, config = function() local tree = require("neo-tree") tree.setup({ clipboard = { sync = "universal", }, document_symbols = { custom_kinds = {}, }, window = { width = 30, mappings = { ["l"] = "open", ["h"] = "close_node", [""] = "open", [""] = "close_node", ["C"] = "convert_to_directory", ["F"] = "toggle_hidden", ["/"] = "none", }, }, filesystem = { filtered_items = { visible = false, show_hidden_count = true, hide_dotfiles = false, hide_gitignored = true, hide_by_name = { ".git", ".venv", ".copier-answers.yml", ".prettierrc.json", "package-lock.json", }, never_show = {}, }, }, commands = { convert_to_directory = function(state) local node = state.tree:get_node() local path = node.path if node.type ~= "file" then print("Node is not a file") return end local confirm = vim.fn.confirm("Convert " .. node.name .. " to directory?", "&Yes\n&No", 2) if confirm ~= 1 then return end vim.fn.delete(path) vim.fn.mkdir(path, "p") require("neo-tree.sources.manager").refresh(state.name) print("Converted to directory: " .. path) end, }, }) vim.keymap.set("n", "", "Neotree toggle") end, }