2025-01-16 00:19:31 -06:00
|
|
|
return {
|
2026-04-11 14:47:56 -05:00
|
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
|
|
|
branch = "v3.x",
|
|
|
|
|
dependencies = {
|
|
|
|
|
"nvim-lua/plenary.nvim",
|
|
|
|
|
"nvim-tree/nvim-web-devicons",
|
|
|
|
|
"MunifTanjim/nui.nvim",
|
|
|
|
|
},
|
|
|
|
|
config = function()
|
|
|
|
|
require("neo-tree").setup({
|
2025-01-18 00:15:54 -06:00
|
|
|
filesystem = {
|
2025-01-27 21:55:42 -06:00
|
|
|
use_libuv_file_watcher = true,
|
2025-01-18 00:15:54 -06:00
|
|
|
filtered_items = {
|
|
|
|
|
visible = true,
|
2026-04-11 14:47:56 -05:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
window = {
|
|
|
|
|
mappings = {
|
|
|
|
|
["Y"] = {
|
|
|
|
|
function(state)
|
|
|
|
|
local node = state.tree:get_node()
|
|
|
|
|
local path = node:get_id()
|
|
|
|
|
vim.fn.setreg("+", path, "c")
|
|
|
|
|
vim.notify("Copied: " .. path .. " to clipboard")
|
|
|
|
|
end,
|
|
|
|
|
desc = "Copy path to clipboard",
|
|
|
|
|
},
|
|
|
|
|
["O"] = {
|
|
|
|
|
function(state)
|
|
|
|
|
local node = state.tree:get_node()
|
|
|
|
|
vim.notify("Opening: " .. node.path)
|
|
|
|
|
|
|
|
|
|
local _, err = vim.ui.open(node.path)
|
|
|
|
|
|
|
|
|
|
if err then
|
|
|
|
|
vim.notify("Error opening explorer: " .. err, vim.log.levels.ERROR)
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
desc = "Open in default app",
|
|
|
|
|
},
|
|
|
|
|
["P"] = { "toggle_preview", config = { use_float = false } },
|
|
|
|
|
},
|
2025-05-30 14:56:04 -05:00
|
|
|
},
|
|
|
|
|
event_handlers = {
|
2026-04-11 14:47:56 -05:00
|
|
|
{
|
|
|
|
|
event = "file_open_requested",
|
|
|
|
|
handler = function()
|
|
|
|
|
vim.cmd("Neotree close")
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
},
|
2025-01-18 00:15:54 -06:00
|
|
|
})
|
|
|
|
|
vim.keymap.set("n", "<C-b>", ":Neotree filesystem reveal right<CR>", { desc = "Neotree show explorer" })
|
2026-04-11 14:47:56 -05:00
|
|
|
end,
|
2025-01-16 00:19:31 -06:00
|
|
|
}
|