---@module "lazy.nvim" ---@type LazySpec[] return { {"nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", "nvim-tree/nvim-web-devicons", }, lazy = false, opts = function () ---@module 'neo-tree' ---@type neotree.Config local opts = { enable_git_status = true, enable_diagnostics = true, sort_case_insensitive = true, open_files_do_not_replace_types = { "terminal", "trouble", "qf", "help", }, filesystem = { filtered_items = { visible = false, hide_dotfiles = true, hide_gitignored = true, hide_hidden = true, }, bind_to_cwd = true, cwd_target = { sidebar = "global", window = "global", }, follow_current_file = { enabled = true }, hijack_netrw_behaviour = "open_default", use_libuv_file_watcher = true, }, window = { position = "left" }, buffers = { follow_current_file = { enabled = true }, }, } local function on_move(data) Snacks.rename.on_rename_file(data.source, data.destination) end local events = require("neo-tree.events") opts.event_handlers = opts.event_handlers or {} vim.list_extend(opts.event_handlers, { { event = events.FILE_MOVED, handler = on_move }, { event = events.FILE_RENAMED, handler = on_move}, }) return opts end, keys = { { "n", function() require("neo-tree.command").execute{toggle = true} end, mode = "n", noremap = true, silent = true, desc = "Toggle Neotree" } } } }