From 43e19eb6adaf509a964fbfd8291e82f28a789bb4 Mon Sep 17 00:00:00 2001 From: Nicolas Goudry Date: Sat, 8 Jun 2024 00:30:33 +0200 Subject: [PATCH] feat(plugins/neo-tree): refresh sources on focus --- plugins/neo-tree.nix | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/plugins/neo-tree.nix b/plugins/neo-tree.nix index 70353d9..e332ee4 100644 --- a/plugins/neo-tree.nix +++ b/plugins/neo-tree.nix @@ -202,7 +202,20 @@ autoGroups.neotree = { }; # Custom autocommands (taken from AstroNvim) - autoCmd = [ + autoCmd = + let + refresh = '' + function() + local manager_avail, manager = pcall(require, "neo-tree.sources.manager") + if manager_avail then + for _, source in ipairs { "filesystem", "git_status", "document_symbols" } do + local module = "neo-tree.sources." .. source + if package.loaded[module] then manager.refresh(require(module).name) end + end + end + end + ''; + in[ # https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/neo-tree.lua#L21-L37 { desc = "Open explorer on startup with directory"; @@ -228,18 +241,13 @@ event = "TermClose"; group = "neotree"; pattern = "*lazygit*"; - - callback.__raw = '' - function() - local manager_avail, manager = pcall(require, "neo-tree.sources.manager") - if manager_avail then - for _, source in ipairs { "filesystem", "git_status", "document_symbols" } do - local module = "neo-tree.sources." .. source - if package.loaded[module] then manager.refresh(require(module).name) end - end - end - end - ''; + callback.__raw = refresh; + } + { + desc = "Refresh explorer sources on focus"; + event = "FocusGained"; + group = "neotree"; + callback.__raw = refresh; } ];