local function on_attach(bufnr) local api = require("nvim-tree.api") -- default mappings api.config.mappings.default_on_attach(bufnr) local function opts(desc) return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } end -- navigation vim.keymap.set("n", "", api.tree.change_root_to_parent, opts("Up")) vim.keymap.set("n", "", api.tree.change_root_to_node, opts("Enter")) -- open folders with a single click vim.keymap.set("n", "", function() vim.defer_fn(function () local win = vim.api.nvim_get_current_win() local view = require("nvim-tree.view") if view.get_winnr() ~= win then return end api.node.open.edit() api.tree.focus() -- local node = api.tree.get_node_under_cursor() -- if node.nodes ~= nil then -- api.node.open.edit() -- end end, 10) end, opts("Open folder/file")) end return { "nvim-tree/nvim-tree.lua", event = "VeryLazy", dependencies = { "nvim-tree/nvim-web-devicons", }, keys = { { "e", function() require("nvim-tree.api").tree.toggle() end, desc = "Toggle files" }, }, opts = { filesystem_watchers = { enable = true, }, filters = { dotfiles = false, }, on_attach = on_attach, renderer = { root_folder_label = false, highlight_git = true, icons = { show = { git = false, }, glyphs = { git = { unstaged = "", untracked = "", deleted = "", }, }, }, }, sync_root_with_cwd = true, update_focused_file = { enable = true, update_root = false, }, view = { width = 35, }, }, config = true, }