diff options
Diffstat (limited to 'lua/lvim')
| -rw-r--r-- | lua/lvim/plugin-loader.lua | 40 | ||||
| -rw-r--r-- | lua/lvim/utils/hooks.lua | 10 | 
2 files changed, 29 insertions, 21 deletions
| diff --git a/lua/lvim/plugin-loader.lua b/lua/lvim/plugin-loader.lua index 1f574bba..88c2c0d2 100644 --- a/lua/lvim/plugin-loader.lua +++ b/lua/lvim/plugin-loader.lua @@ -69,17 +69,31 @@ local function pcall_packer_command(cmd, kwargs)  end  function plugin_loader.cache_clear() +  if not utils.is_file(compile_path) then +    return +  end    if vim.fn.delete(compile_path) == 0 then      Log:debug "deleted packer_compiled.lua"    end  end +function plugin_loader.compile() +  Log:debug "calling packer.compile()" +  vim.api.nvim_create_autocmd("User", { +    pattern = "PackerCompileDone", +    once = true, +    callback = function() +      if utils.is_file(compile_path) then +        Log:debug "finished compiling packer_compiled.lua" +      end +    end, +  }) +  pcall_packer_command "compile" +end +  function plugin_loader.recompile()    plugin_loader.cache_clear() -  pcall_packer_command "compile" -  if utils.is_file(compile_path) then -    Log:debug "generated packer_compiled.lua" -  end +  plugin_loader.compile()  end  function plugin_loader.reload(configurations) @@ -140,17 +154,10 @@ function plugin_loader.load_snapshot(snapshot_file)  end  function plugin_loader.sync_core_plugins() -  -- problem: rollback() will get stuck if a plugin directory doesn't exist -  -- solution: call sync() beforehand -  -- see https://github.com/wbthomason/packer.nvim/issues/862 -  vim.api.nvim_create_autocmd("User", { -    pattern = "PackerComplete", -    once = true, -    callback = function() -      require("lvim.plugin-loader").load_snapshot(default_snapshot) -    end, -  }) -  pcall_packer_command "sync" +  plugin_loader.cache_clear() +  local core_plugins = plugin_loader.get_core_plugins() +  Log:trace(string.format("Syncing core plugins: [%q]", table.concat(core_plugins, ", "))) +  pcall_packer_command("sync", core_plugins)  end  function plugin_loader.ensure_plugins() @@ -158,8 +165,7 @@ function plugin_loader.ensure_plugins()      pattern = "PackerComplete",      once = true,      callback = function() -      Log:debug "calling packer.clean()" -      pcall_packer_command "clean" +      plugin_loader.compile()      end,    })    Log:debug "calling packer.install()" diff --git a/lua/lvim/utils/hooks.lua b/lua/lvim/utils/hooks.lua index bf0dac60..0194888d 100644 --- a/lua/lvim/utils/hooks.lua +++ b/lua/lvim/utils/hooks.lua @@ -2,6 +2,7 @@ local M = {}  local Log = require "lvim.core.log"  local in_headless = #vim.api.nvim_list_uis() == 0 +local plugin_loader = require "lvim.plugin-loader"  function M.run_pre_update()    Log:debug "Starting pre-update hook" @@ -15,8 +16,9 @@ function M.run_on_packer_complete()    Log:debug "Packer operation complete"    vim.api.nvim_exec_autocmds("User", { pattern = "PackerComplete" }) -  vim.g.colors_name = lvim.colorscheme -  pcall(vim.cmd, "colorscheme " .. lvim.colorscheme) +  -- -- FIXME(kylo252): nvim-tree.lua/lua/nvim-tree/view.lua:442: Invalid window id +  -- vim.g.colors_name = lvim.colorscheme +  -- pcall(vim.cmd.colorscheme, lvim.colorscheme)    if M._reload_triggered then      Log:debug "Reloaded configuration" @@ -26,7 +28,6 @@ end  function M.run_post_reload()    Log:debug "Starting post-reload hook" -  M.reset_cache()    M._reload_triggered = true  end @@ -35,6 +36,7 @@ end  ---Tip: Useful for clearing any outdated settings  function M.reset_cache()    vim.cmd [[LuaCacheClear]] +  plugin_loader.recompile()    local lvim_modules = {}    for module, _ in pairs(package.loaded) do      if module:match "lvim.core" or module:match "lvim.lsp" then @@ -68,7 +70,7 @@ function M.run_post_update()    M.reset_cache()    Log:debug "Syncing core plugins" -  require("lvim.plugin-loader").sync_core_plugins() +  plugin_loader.sync_core_plugins()    if not in_headless then      vim.schedule(function() | 
