nvim_config/lua/mpx/plugins/neo-tree.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,
}