summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/utils/hooks.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/utils/hooks.lua')
-rw-r--r--.config/nvim/lua/utils/hooks.lua33
1 files changed, 33 insertions, 0 deletions
diff --git a/.config/nvim/lua/utils/hooks.lua b/.config/nvim/lua/utils/hooks.lua
new file mode 100644
index 0000000..fa667cf
--- /dev/null
+++ b/.config/nvim/lua/utils/hooks.lua
@@ -0,0 +1,33 @@
+local M = {}
+
+local Log = require "core.log"
+local in_headless = #vim.api.nvim_list_uis() == 0
+
+function M.run_pre_update()
+ Log:debug "Starting pre-update hook"
+end
+
+---Reset any startup cache files used by Packer and Impatient
+---Tip: Useful for clearing any outdated settings
+function M.reset_cache()
+ _G.__luacache.clear_cache()
+ require("plugin-loader"):cache_reset()
+end
+
+function M.run_post_update()
+ M.reset_cache()
+ Log:debug "Starting post-update hook"
+ package.loaded["lsp.templates"] = nil
+ require("lsp.templates").generate_templates()
+
+ if not in_headless then
+ vim.schedule(function()
+ require("packer").install()
+ -- TODO: add a changelog
+ vim.notify("Update complete", vim.log.levels.INFO)
+ vim.cmd "LspStart"
+ end)
+ end
+end
+
+return M