mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-04 03:50:05 +08:00
44 lines
943 B
Lua
Vendored
44 lines
943 B
Lua
Vendored
local renderer = require "nvim-tree.renderer"
|
|
local utils = require "nvim-tree.utils"
|
|
local core = require "nvim-tree.core"
|
|
|
|
local M = {}
|
|
|
|
function M.fn(keep_buffers)
|
|
if not core.get_explorer() then
|
|
return
|
|
end
|
|
|
|
local buffer_paths = {}
|
|
for _, buffer in ipairs(vim.api.nvim_list_bufs()) do
|
|
table.insert(buffer_paths, vim.api.nvim_buf_get_name(buffer))
|
|
end
|
|
|
|
local function iter(nodes)
|
|
for _, node in pairs(nodes) do
|
|
if node.open then
|
|
local new_open = false
|
|
|
|
if keep_buffers == true then
|
|
for _, buffer_path in ipairs(buffer_paths) do
|
|
local matches = utils.str_find(buffer_path, node.absolute_path)
|
|
if matches then
|
|
new_open = true
|
|
end
|
|
end
|
|
end
|
|
|
|
node.open = new_open
|
|
end
|
|
if node.nodes then
|
|
iter(node.nodes)
|
|
end
|
|
end
|
|
end
|
|
|
|
iter(core.get_explorer().nodes)
|
|
renderer.draw()
|
|
end
|
|
|
|
return M
|