init.lua 1.2 KB

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