return { "nvim-tree/nvim-tree.lua", version = "*", lazy = false, keys = { { "et", ":NvimTreeToggle", desc = "Explorer Toggle", silent = true }, }, config = function() require("nvim-tree").setup({ hijack_cursor = true, disable_netrw = true, hijack_netrw = true, hijack_unnamed_buffer_when_opening = true, root_dirs = { ".git", "package.json" }, prefer_startup_root = true, sync_root_with_cwd = true, reload_on_bufenter = true, respect_buf_cwd = true, view = { centralize_selection = false, cursorline = true, cursorlineopt = "both", debounce_delay = 15, side = "left", preserve_window_proportions = false, number = false, relativenumber = false, signcolumn = "no", width = 30, }, renderer = { add_trailing = false, group_empty = false, full_name = false, root_folder_label = false, -- special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" }, special_files = {}, -- keep to overwrite defaults symlink_destination = true, icons = { padding = "", glyphs = { folder = { arrow_closed = "+", arrow_open = "-", }, }, show = { file = false, folder = false, folder_arrow = true, git = false, modified = false, hidden = false, diagnostics = false, bookmarks = false, }, }, }, hijack_directories = { enable = true, auto_open = true, }, update_focused_file = { enable = true, update_root = { enable = true, ignore_list = {}, }, exclude = false, }, filters = { enable = true, git_ignored = true, dotfiles = false, git_clean = false, no_buffer = false, no_bookmark = false, custom = {}, exclude = {}, }, live_filter = { prefix = "[FILTER]: ", always_show_folders = true, }, filesystem_watchers = { enable = true, debounce_delay = 50, ignore_dirs = { -- C / C++ "/.ccls-cache", "/build", "/out", "/cmake-build-*", -- Node.js / Web "/node_modules", "/dist", "/.next", "/.nuxt", "/coverage", "/storybook-static", -- Rust "/target", -- Java / JVM "/target", -- (Maven) "/build", -- (Gradle) "/out", -- (IDEA / javac) -- Python "/.venv", "/venv", "/__pycache__", "/.mypy_cache", "/.pytest_cache", -- Go "/bin", "/pkg", -- General "/tmp", "/.cache", "/.idea", "/.vscode", "/logs", }, }, trash = { cmd = "gio trash", }, }) end, } -- return { -- "nvim-neo-tree/neo-tree.nvim", -- version = "*", -- dependencies = { -- "nvim-lua/plenary.nvim", -- "nvim-tree/nvim-web-devicons", -- "MunifTanjim/nui.nvim", -- }, -- cmd = "Neotree", -- keys = { -- { "et", ":Neotree position=left toggle", desc = "Explorer Toggle", silent = true }, -- { "E", ":Neotree focus", desc = "Explorer Focus", silent = true }, -- { "ef", ":Neotree float", desc = "Explorer Float", silent = true }, -- { "eb", ":Neotree buffers", desc = "Explorer Buffers", silent = true }, -- { "eg", ":Neotree git_status", desc = "Explorer Git", silent = true }, -- }, -- opts = { -- event_handlers = { -- { -- event = require("neo-tree.ui.events").NEO_TREE_WINDOW_AFTER_OPEN, -- handler = function(args) -- if args and args.winid and vim.api.nvim_win_is_valid(args.winid) then -- vim.api.nvim_win_set_option(args.winid, "colorcolumn", "") -- vim.api.nvim_win_set_option(args.winid, "signcolumn", "no") -- end -- end, -- }, -- }, -- popup_border_style = "single", -- window = { -- mappings = { -- ["e"] = "close_window", -- }, -- }, -- default_component_configs = { -- icon = { enabled = false }, -- git_status = { symbols = {}, align = "none" }, -- name = { trailing_slash = true } -- }, -- enable_git_status = false, -- enable_diagnostics = false, -- filesystem = { -- follow_current_file = { -- enabled = true, -- Enable this feature -- leave_dirs_open = true, -- Leave directories open when following -- }, -- filtered_items = { -- visible = true, -- } -- }, -- }, -- }