init.lua 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. local M = {
  2. path = string.format("%s/.config/lvim/config.lua", os.getenv "HOME"),
  3. }
  4. --- Initialize lvim default configuration
  5. -- Define lvim global variable
  6. function M:init()
  7. local utils = require "utils"
  8. require "config.defaults"
  9. local builtins = require "core.builtins"
  10. builtins.config(self)
  11. local settings = require "config.settings"
  12. settings.load_options()
  13. -- Fallback config.lua to lv-config.lua
  14. if not utils.is_file(self.path) then
  15. local lv_config = self.path:gsub("config.lua$", "lv-config.lua")
  16. print(self.path, "not found, falling back to", lv_config)
  17. self.path = lv_config
  18. end
  19. end
  20. --- Override the configuration with a user provided one
  21. -- @param config_path The path to the configuration overrides
  22. function M:load(config_path)
  23. local autocmds = require "core.autocmds"
  24. config_path = config_path or self.path
  25. local ok, err = pcall(vim.cmd, "luafile " .. config_path)
  26. if not ok then
  27. print("Invalid configuration", config_path)
  28. print(err)
  29. return
  30. end
  31. self.path = config_path
  32. autocmds.define_augroups(lvim.autocommands)
  33. local settings = require "config.settings"
  34. settings.load_commands()
  35. end
  36. return M