feat(#1837): add git.disable_for_dirs (#2239)

* feat(##1837): add git.disabled_dirs

* feat(#1837): add git.disable_for_dirs

* feat(#1837): note disable_for_dirs evaluation
This commit is contained in:
Alexander Courtis
2023-06-04 14:29:04 +10:00
committed by GitHub
parent 73ab6651db
commit 63061404f4
4 changed files with 21 additions and 3 deletions

View File

@@ -492,6 +492,7 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
ignore = true,
show_on_dirs = true,
show_on_open_dirs = true,
disable_for_dirs = {},
timeout = 400,
},
modified = {

View File

@@ -107,7 +107,16 @@ function M.get_project_root(cwd)
return nil
end
M.cwd_to_project_root[cwd] = git_utils.get_toplevel(cwd)
local toplevel = git_utils.get_toplevel(cwd)
for _, disabled_for_dir in ipairs(M.config.git.disable_for_dirs) do
local toplevel_norm = vim.fn.fnamemodify(toplevel, ":p")
local disabled_norm = vim.fn.fnamemodify(disabled_for_dir, ":p")
if toplevel_norm == disabled_norm then
return nil
end
end
M.cwd_to_project_root[cwd] = toplevel
return M.cwd_to_project_root[cwd]
end

View File

@@ -3,6 +3,9 @@ local log = require "nvim-tree.log"
local has_cygpath = vim.fn.executable "cygpath" == 1
--- Retrieve the git toplevel directory
--- @param cwd string path
--- @return string|nil toplevel absolute path
function M.get_toplevel(cwd)
local profile = log.profile_start("git toplevel %s", cwd)