add Gitignore (#251)

This commit is contained in:
peach lasagna
2021-03-31 01:11:25 +07:00
committed by GitHub
parent 709d6b968b
commit eadead6072
5 changed files with 42 additions and 0 deletions

View File

@@ -30,6 +30,10 @@ local function update_root_status(root)
end
end
function M.get_path_gitexclude()
return vim.fn.system("git config --get core.excludesFile")
end
function M.reload_roots()
for root, status in pairs(roots) do
if status ~= not_git then

View File

@@ -100,6 +100,21 @@ end
local function gen_ignore_check()
local ignore_list = {}
local function add_toignore(path)
local content = utils.read_file(path)
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')
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

View File

@@ -1,4 +1,5 @@
local M = {}
local uv = vim.loop -- or require("luv") ? i dont understand
local api = vim.api
function M.path_to_matching_str(path)
@@ -11,6 +12,16 @@ function M.echo_warning(msg)
api.nvim_command('echohl None')
end
function M.read_file(path)
local fd = uv.fs_open(path, "r", 438)
if not fd then return '' end
local stat = uv.fs_fstat(fd)
if not stat then return '' end
local data = uv.fs_read(fd, stat.size, 0)
uv.fs_close(fd)
return data or ''
end
local path_separator = package.config:sub(1,1)
function M.path_join(paths)
return table.concat(paths, path_separator)