diff --git a/lua/plugins/spec/neo-tree.lua b/lua/plugins/spec/neo-tree.lua index be3cd7f..29c288a 100644 --- a/lua/plugins/spec/neo-tree.lua +++ b/lua/plugins/spec/neo-tree.lua @@ -1,5 +1,7 @@ +---@module "lazy.nvim" +---@type LazySpec[] return { - "nvim-neo-tree/neo-tree.nvim", + {"nvim-neo-tree/neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", @@ -7,29 +9,68 @@ return { "nvim-tree/nvim-web-devicons", }, lazy = false, + opts = function () + ---@module 'neo-tree' ---@type neotree.Config - opts = { - enable_git_status = true, - enable_diagnostics = true, - sort_case_insensitive = true, + local opts = { + enable_git_status = true, + enable_diagnostics = true, + sort_case_insensitive = true, - filesystem = { - filtered_items = { - visible = false, - hide_dotfiles = true, - hide_gitignored = true, - hide_hidden = true, + open_files_do_not_replace_types = { + "terminal", + "trouble", + "qf", + "help", }, - follow_current_file = { enabled = true }, - hijack_netrw_behaviour = "open_default", - use_libuv_file_watcher = true, - }, - window = { position = "left" }, + 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, + }, - buffers = { - follow_current_file = { enabled = 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" + } + } + } }