summaryrefslogtreecommitdiff
path: root/mac/.config/LunarVim/lua/lvim/config/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mac/.config/LunarVim/lua/lvim/config/init.lua')
-rw-r--r--mac/.config/LunarVim/lua/lvim/config/init.lua108
1 files changed, 108 insertions, 0 deletions
diff --git a/mac/.config/LunarVim/lua/lvim/config/init.lua b/mac/.config/LunarVim/lua/lvim/config/init.lua
new file mode 100644
index 0000000..90c1788
--- /dev/null
+++ b/mac/.config/LunarVim/lua/lvim/config/init.lua
@@ -0,0 +1,108 @@
+local utils = require "lvim.utils"
+local Log = require "lvim.core.log"
+
+local M = {}
+local user_config_dir = get_config_dir()
+local user_config_file = utils.join_paths(user_config_dir, "config.lua")
+
+---Get the full path to the user configuration file
+---@return string
+function M:get_user_config_path()
+ return user_config_file
+end
+
+--- Initialize lvim default configuration and variables
+function M:init()
+ lvim = vim.deepcopy(require "lvim.config.defaults")
+
+ require("lvim.keymappings").load_defaults()
+
+ local builtins = require "lvim.core.builtins"
+ builtins.config { user_config_file = user_config_file }
+
+ local settings = require "lvim.config.settings"
+ settings.load_defaults()
+
+ local autocmds = require "lvim.core.autocmds"
+ autocmds.load_defaults()
+
+ local lvim_lsp_config = require "lvim.lsp.config"
+ lvim.lsp = vim.deepcopy(lvim_lsp_config)
+
+ lvim.builtin.luasnip = {
+ sources = {
+ friendly_snippets = true,
+ },
+ }
+
+ lvim.builtin.bigfile = {
+ active = true,
+ config = {},
+ }
+
+ require("lvim.config._deprecated").handle()
+end
+
+--- Override the configuration with a user provided one
+-- @param config_path The path to the configuration overrides
+function M:load(config_path)
+ local autocmds = reload "lvim.core.autocmds"
+ config_path = config_path or self:get_user_config_path()
+ local ok, err = pcall(dofile, config_path)
+ if not ok then
+ if utils.is_file(user_config_file) then
+ vim.schedule(function()
+ Log:warn("Invalid configuration: " .. err)
+ end)
+ else
+ vim.schedule(function()
+ vim.notify_once(
+ string.format("User-configuration not found. Creating an example configuration in %s", config_path)
+ )
+ end)
+ local config_name = vim.loop.os_uname().version:match "Windows" and "config_win" or "config"
+ local example_config = join_paths(get_lvim_base_dir(), "utils", "installer", config_name .. ".example.lua")
+ vim.fn.mkdir(user_config_dir, "p")
+ vim.loop.fs_copyfile(example_config, config_path)
+ end
+ end
+
+ Log:set_level(lvim.log.level)
+
+ require("lvim.config._deprecated").post_load()
+
+ autocmds.define_autocmds(lvim.autocommands)
+
+ vim.g.mapleader = (lvim.leader == "space" and " ") or lvim.leader
+
+ reload("lvim.keymappings").load(lvim.keys)
+
+ if lvim.transparent_window then
+ autocmds.enable_transparent_mode()
+ end
+
+ if lvim.reload_config_on_save then
+ autocmds.enable_reload_config_on_save()
+ end
+end
+
+--- Override the configuration with a user provided one
+-- @param config_path The path to the configuration overrides
+function M:reload()
+ vim.schedule(function()
+ reload("lvim.utils.hooks").run_pre_reload()
+
+ M:load()
+
+ reload("lvim.core.autocmds").configure_format_on_save()
+
+ local plugins = reload "lvim.plugins"
+ local plugin_loader = reload "lvim.plugin-loader"
+
+ plugin_loader.reload { plugins, lvim.plugins }
+ reload("lvim.core.theme").setup()
+ reload("lvim.utils.hooks").run_post_reload()
+ end)
+end
+
+return M