local M = {} M.config = function() local g = vim.g vim.o.termguicolors = true g.nvim_tree_side = "left" g.nvim_tree_width = 25 g.nvim_tree_ignore = {".git", "node_modules", ".cache"} g.nvim_tree_auto_open = 0 g.nvim_tree_auto_close = 0 g.nvim_tree_quit_on_open = 0 g.nvim_tree_follow = 1 g.nvim_tree_indent_markers = 1 g.nvim_tree_hide_dotfiles = 1 g.nvim_tree_git_hl = 1 g.nvim_tree_root_folder_modifier = ":t" g.nvim_tree_tab_open = 0 g.nvim_tree_allow_resize = 1 g.nvim_tree_show_icons = { git = 1, folders = 1, files = 1 } g.nvim_tree_icons = { default = "", symlink = "", git = { unstaged = "✗", staged = "✓", unmerged = "", renamed = "➜", untracked = "★", deleted = "", ignored = "◌" }, folder = { default = "", open = "", symlink = "", empty = "", empty_open = "", symlink_open = "" } } local tree_cb = require "nvim-tree.config".nvim_tree_callback g.nvim_tree_bindings = { ["u"] = ":lua require'some_module'.some_function()", -- default mappings [""] = tree_cb("edit"), ["o"] = tree_cb("edit"), ["<2-LeftMouse>"] = tree_cb("edit"), ["<2-RightMouse>"] = tree_cb("cd"), [""] = tree_cb("cd"), [""] = tree_cb("vsplit"), [""] = tree_cb("split"), [""] = tree_cb("tabnew"), ["<"] = tree_cb("prev_sibling"), [">"] = tree_cb("next_sibling"), [""] = tree_cb("close_node"), [""] = tree_cb("close_node"), [""] = tree_cb("preview"), ["I"] = tree_cb("toggle_ignored"), ["H"] = tree_cb("toggle_dotfiles"), ["R"] = tree_cb("refresh"), ["a"] = tree_cb("create"), ["d"] = tree_cb("remove"), ["r"] = tree_cb("rename"), [""] = tree_cb("full_rename"), ["x"] = tree_cb("cut"), ["c"] = tree_cb("copy"), ["p"] = tree_cb("paste"), ["y"] = tree_cb("copy_name"), ["Y"] = tree_cb("copy_path"), ["gy"] = tree_cb("copy_absolute_path"), ["[c"] = tree_cb("prev_git_item"), ["]c"] = tree_cb("next_git_item"), ["-"] = tree_cb("dir_up"), ["q"] = tree_cb("close") } end return M