diff --git a/.config/nvim/lua/plugins/tree.lua b/.config/nvim/lua/plugins/tree.lua index e47f8f4..c84fc24 100644 --- a/.config/nvim/lua/plugins/tree.lua +++ b/.config/nvim/lua/plugins/tree.lua @@ -1,19 +1,69 @@ +local function on_attach(bufnr) + local api = require("nvim-tree.api") + + local function opts(desc) + return { desc = "Tree: " .. desc, buffer = bufnr, noremap = true, + silent = true, nowait = true } + end + + vim.keymap.set("n", "", api.node.open.edit, opts("Open")) + +end + local tree = { 'nvim-tree/nvim-tree.lua', lazy = false, dependencies = { 'nvim-tree/nvim-web-devicons' }, opts = { + on_attach = on_attach, + disable_netrw = true, sort_by = "case_sensitive", view = { adaptive_size = true, + centralize_selection = true, + number = true, + relativenumber = true, }, renderer = { group_empty = true, + highlight_git = true, }, filters = { dotfiles = true, }, + update_focused_file = { + enable = true, + }, + actions = { + change_dir = { + enable = false, + }, + }, }, } +local function is_modified_buffer_open(buffers) + for _, v in pairs(buffers) do + if v.name:match("NvimTree_") == nil then + return true + end + end + return false +end + +-- [[ +vim.api.nvim_create_autocmd("BufEnter", { + nested = true, + callback = function() + if + #vim.api.nvim_list_wins() == 1 + and vim.api.nvim_buf_get_name(0):match("NvimTree_") ~= nil + and is_modified_buffer_open(vim.fn.getbufinfo({ bufmodified = 1 })) == false + then + vim.cmd("quit") + end + end, +}) +-- ]] + return { tree }