plugin-loader.lua 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. local plugin_loader = {}
  2. function plugin_loader:init()
  3. local execute = vim.api.nvim_command
  4. local fn = vim.fn
  5. local install_path = "~/.local/share/lunarvim/site/pack/packer/start/packer.nvim"
  6. if fn.empty(fn.glob(install_path)) > 0 then
  7. execute("!git clone https://github.com/wbthomason/packer.nvim " .. install_path)
  8. execute "packadd packer.nvim"
  9. end
  10. local packer_ok, packer = pcall(require, "packer")
  11. if not packer_ok then
  12. return
  13. end
  14. local util = require "packer.util"
  15. packer.init {
  16. package_root = util.join_paths "~/.local/share/lunarvim/site/pack/",
  17. compile_path = util.join_paths("~/.config/lvim", "plugin", "packer_compiled.lua"),
  18. git = { clone_timeout = 300 },
  19. display = {
  20. open_fn = function()
  21. return util.float { border = "single" }
  22. end,
  23. },
  24. }
  25. self.packer = packer
  26. return self
  27. end
  28. function plugin_loader:load(configurations)
  29. return self.packer.startup(function(use)
  30. for _, plugins in ipairs(configurations) do
  31. for _, plugin in ipairs(plugins) do
  32. use(plugin)
  33. end
  34. end
  35. end)
  36. end
  37. return {
  38. init = function()
  39. return plugin_loader:init()
  40. end,
  41. }