From 42ca0e4245f3ae5d03a76896f269985a81601b8d Mon Sep 17 00:00:00 2001 From: PeteChu Date: Thu, 23 Mar 2023 14:42:48 +0700 Subject: [PATCH] * refactor(nvim-tree.lua): extract open_nvim_tree function and add comments * feat(nvim-tree.lua): add auto open and auto close autocmds for NvimTree --- after/plugin/nvim-tree.lua | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/after/plugin/nvim-tree.lua b/after/plugin/nvim-tree.lua index 84a0625f..e85d0184 100644 --- a/after/plugin/nvim-tree.lua +++ b/after/plugin/nvim-tree.lua @@ -1,12 +1,23 @@ +local function open_nvim_tree(data) + + -- buffer is a real file on the disk + local real_file = vim.fn.filereadable(data.file) == 1 + + -- buffer is a [No Name] + local no_name = data.file == "" and vim.bo[data.buf].buftype == "" + + if not real_file and not no_name then + return + end + + -- open the tree, find the file but don't focus it + require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, }) +end + +-- Auto open +vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree }) + +-- Auto close vim.api.nvim_create_autocmd({"QuitPre"}, { callback = function() vim.cmd("NvimTreeClose") end, }) - - -local function open_nvim_tree() - - -- open the tree - require("nvim-tree.api").tree.open() -end - -vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })