From 40ca9efabe6d0aa081b916e7b9a0a14227b6b5a2 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Mon, 31 Oct 2022 15:24:11 +1100 Subject: [PATCH] feat(watcher): tear down watcher on failue, warning the user --- lua/nvim-tree/watcher.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lua/nvim-tree/watcher.lua b/lua/nvim-tree/watcher.lua index 25af20598a2..31b13f4c8d2 100644 --- a/lua/nvim-tree/watcher.lua +++ b/lua/nvim-tree/watcher.lua @@ -53,7 +53,8 @@ function Event:start() local event_cb = vim.schedule_wrap(function(err, filename) if err then - log.line("watcher", "event_cb for %s fail : %s", self._path, err) + log.line("watcher", "event_cb '%s' '%s' FAIL : %s", self._path, filename, err) + self:destroy(string.format("File system watcher failed (%s) for path %s, halting watcher.", err, self._path)) else log.line("watcher", "event_cb '%s' '%s'", self._path, filename) for _, listener in ipairs(self._listeners) do @@ -82,10 +83,14 @@ function Event:remove(listener) end end -function Event:destroy() +function Event:destroy(message) log.line("watcher", "Event:destroy '%s'", self._path) if self._fs_event then + if message then + utils.notify.warn(message) + end + local rc, _, name = self._fs_event:stop() if rc ~= 0 then utils.notify.warn(string.format("Could not stop the fs_event watcher for path %s : %s", self._path, name))