* 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:
parent
73ab6651db
commit
63061404f4
@ -458,6 +458,7 @@ applying configuration.
|
||||
ignore = true,
|
||||
show_on_dirs = true,
|
||||
show_on_open_dirs = true,
|
||||
disable_for_dirs = {},
|
||||
timeout = 400,
|
||||
},
|
||||
modified = {
|
||||
@ -525,8 +526,7 @@ applying configuration.
|
||||
trash = true,
|
||||
},
|
||||
},
|
||||
experimental = {
|
||||
},
|
||||
experimental = {},
|
||||
log = {
|
||||
enable = false,
|
||||
truncate = false,
|
||||
@ -734,6 +734,11 @@ Git integration with icons and colors.
|
||||
Only relevant when `git.show_on_dirs` is `true`.
|
||||
Type: `boolean`, Default: `true`
|
||||
|
||||
*nvim-tree.git.disable_for_dirs*
|
||||
Disable git integration when git top-level matches these paths.
|
||||
May be relative, evaluated via |fnamemodify| `":p"`
|
||||
Type: `table`, Default: `{}`
|
||||
|
||||
*nvim-tree.git.timeout*
|
||||
Kills the git process after some time if it takes too long.
|
||||
Git integration will be disabled after 10 git jobs exceed this timeout.
|
||||
|
||||
@ -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 = {
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user