From 1f1b25de4b2a0fe1a89e06cb65b6eb8538ebe3ea Mon Sep 17 00:00:00 2001 From: peach lasagna <59787538+peach-lasagna@users.noreply.github.com> Date: Thu, 1 Apr 2021 02:37:29 +0700 Subject: [PATCH] fix gitignore feature (#264) --- README.md | 2 +- doc/nvim-tree-lua.txt | 3 +-- lua/nvim-tree/git.lua | 4 ++-- lua/nvim-tree/populate.lua | 12 ++++-------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 846682d3..fac5e39e 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Plug 'kyazdani42/nvim-tree.lua' let g:nvim_tree_side = 'right' "left by default let g:nvim_tree_width = 40 "30 by default let g:nvim_tree_ignore = [ '.git', 'node_modules', '.cache' ] "empty by default -let g:nvim_tree_gitignore = 2 "0 by default +let g:nvim_tree_gitignore = 1 "0 by default let g:nvim_tree_auto_open = 1 "0 by default, opens the tree when typing `vim $DIR` or `vim` let g:nvim_tree_auto_close = 1 "0 by default, closes the tree when it's the last window let g:nvim_tree_auto_ignore_ft = [ 'startify', 'dashboard' ] "empty by default, don't auto open tree on specific filetypes. diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 766ef84e..c2b92eed 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -75,8 +75,7 @@ files ignored by git. Must be: 0: not ignored - 1: ignored files from .gitignore - 2: ignored files from .gitignore and git exclude + 1: ignored files from `git ls-files --others --ignored --exclude-standard --directory` > |g:nvim_tree_show_icons| *g:nvim_tree_show_icons* diff --git a/lua/nvim-tree/git.lua b/lua/nvim-tree/git.lua index 764ce9bc..1e91bf30 100644 --- a/lua/nvim-tree/git.lua +++ b/lua/nvim-tree/git.lua @@ -30,8 +30,8 @@ local function update_root_status(root) end end -function M.get_path_gitexclude() - return vim.fn.system("git config --get core.excludesFile") +function M.get_gitexclude() + return vim.fn.system("git ls-files --others --ignored --exclude-standard --directory") end function M.reload_roots() diff --git a/lua/nvim-tree/populate.lua b/lua/nvim-tree/populate.lua index 1a991bd6..9581af87 100644 --- a/lua/nvim-tree/populate.lua +++ b/lua/nvim-tree/populate.lua @@ -101,20 +101,16 @@ end local function gen_ignore_check() local ignore_list = {} - local function add_toignore(path) - local content = utils.read_file(path) + local function add_toignore(content) for s in content:gmatch("[^\r\n]+") do ignore_list[s] = true end end - if (vim.g.nvim_tree_gitignore or 0) > 0 then - add_toignore('.gitignore') + if (vim.g.nvim_tree_gitignore or 0) == 1 then + add_toignore(git.get_gitexclude()) end - if (vim.g.nvim_tree_gitignore or 0) == 2 then - add_toignore(git.get_path_gitexclude()) - end - + if vim.g.nvim_tree_ignore and #vim.g.nvim_tree_ignore > 0 then for _, entry in pairs(vim.g.nvim_tree_ignore) do ignore_list[entry] = true