-- nvim/.config/nvim/lua/plugins/editor/neotree.lua
return {
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
cmd = "Neotree",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
keys = {
{ "<leader>e", "<cmd>Neotree toggle<cr>", desc = "neo-tree" },
{ "<leader>E", "<cmd>Neotree reveal<cr>", desc = "reveal current file" },
{ "<leader>ge", "<cmd>Neotree git_status<cr>", desc = "git changes" },
{ "<leader>be", "<cmd>Neotree buffers<cr>", desc = "buffer list" },
},
opts = {
sources = { "filesystem", "buffers", "git_status" },
close_if_last_window = true,
popup_border_style = "rounded",
enable_git_status = true,
enable_diagnostics = true,
default_component_configs = {
indent = { with_markers = true, indent_marker = "│", last_indent_marker = "└" },
icon = { folder_closed = "", folder_open = "", folder_empty = "" },
git_status = {
symbols = {
added = "+", modified = "~", deleted = "-",
renamed = ">", untracked = "?", ignored = "!",
unstaged = "U", staged = "S", conflict = "!",
},
},
},
window = {
width = 32,
mappings = {
["<cr>"] = "open",
["o"] = "open",
["s"] = "open_vsplit",
["S"] = "open_split",
["H"] = "toggle_hidden",
["P"] = { "toggle_preview", config = { use_float = true } },
["/"] = "fuzzy_finder",
},
},
filesystem = {
follow_current_file = { enabled = true },
use_libuv_file_watcher = true,
filtered_items = {
visible = false,
hide_dotfiles = false,
hide_gitignored = true,
hide_by_name = { "node_modules", ".DS_Store", "target" },
},
},
},
}