62 lines
1.8 KiB
Lua
62 lines
1.8 KiB
Lua
return
|
|
{
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
branch = "v3.x",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
|
|
"MunifTanjim/nui.nvim",
|
|
-- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
|
|
},
|
|
|
|
config = function()
|
|
require("neo-tree").setup({
|
|
close_if_last_window = true,
|
|
window = {
|
|
mappings = {
|
|
["l"] = "open",
|
|
["h"] = "close_node",
|
|
["<space>"] = "none",
|
|
["Y"] = {
|
|
function(state)
|
|
local node = state.tree:get_node()
|
|
local path = node:get_id()
|
|
vim.fn.setreg("+", path, "c")
|
|
end,
|
|
desc = "Copy Path to Clipboard",
|
|
},
|
|
["O"] = {
|
|
function(state)
|
|
require("lazy.util").open(state.tree:get_node().path, { system = true })
|
|
end,
|
|
desc = "Open with System Application",
|
|
},
|
|
["P"] = { "toggle_preview", config = { use_float = false } },
|
|
},
|
|
},
|
|
event_handlers = {
|
|
|
|
{
|
|
event = "file_open_requested",
|
|
handler = function()
|
|
-- auto close
|
|
-- vim.cmd("Neotree close")
|
|
-- OR
|
|
require("neo-tree.command").execute({ action = "close" })
|
|
end
|
|
},
|
|
|
|
},
|
|
-- set keymaps
|
|
})
|
|
local keymap = vim.keymap -- for conciseness
|
|
|
|
keymap.set("n", "<leader>ee", "<cmd>Neotree toggle<CR>", { desc = "Toggle file explorer" }) -- toggle file explorer
|
|
keymap.set("n", "<leader>ef", "<cmd>Neotree focus<CR>", { desc = "focus on file explorer" }) -- toggle file explorer on current file
|
|
end,
|
|
}
|
|
|
|
|
|
|
|
|