diff --git a/init.lua b/init.lua index 7b83faa4..82fbb075 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,4 @@ vim.g.mapleader = " " vim.g.maplocalleader = " " -require("lazyvim").setup() +require("lazyvim.config.lazy") diff --git a/lua/lazyvim/config/autocmds.lua b/lua/lazyvim/config/autocmds.lua index 116caa7f..83e0ffeb 100644 --- a/lua/lazyvim/config/autocmds.lua +++ b/lua/lazyvim/config/autocmds.lua @@ -1,3 +1,5 @@ +-- This file is automatically loaded by plugins.config + -- Check if we need to reload the file when it changed vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, { command = "checktime" }) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index 1f3cd492..21c5c60d 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -1,3 +1,5 @@ +-- This file is automatically loaded by plugins.config + -- Move to window using the movement keys vim.keymap.set("n", "", "h") vim.keymap.set("n", "", "j") diff --git a/lua/lazyvim/config/options.lua b/lua/lazyvim/config/options.lua index c74cb4b8..7879a858 100644 --- a/lua/lazyvim/config/options.lua +++ b/lua/lazyvim/config/options.lua @@ -1,3 +1,5 @@ +-- This file is automatically loaded by plugins.config + vim.opt.autowrite = true -- enable auto write vim.opt.clipboard = "unnamedplus" -- sync with system clipboard vim.opt.cmdheight = 1 diff --git a/lua/lazyvim/init.lua b/lua/lazyvim/init.lua deleted file mode 100644 index ae316bd4..00000000 --- a/lua/lazyvim/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local M = {} - ----@param opts? LazyVimSettings -function M.setup(opts) - if not package.loaded.lazy then - require("lazyvim.config.lazy") - end - local settings = require("lazyvim.config.settings") - package.loaded["lazyvim.config.settings"] = vim.tbl_deep_extend("force", settings, opts or {}) - require("lazyvim.config.options") - require("lazyvim.config.autocmds") - require("lazyvim.config.keymaps") -end - -return M diff --git a/lua/lazyvim/plugins/config.lua b/lua/lazyvim/plugins/config.lua new file mode 100644 index 00000000..d4b2acaf --- /dev/null +++ b/lua/lazyvim/plugins/config.lua @@ -0,0 +1,33 @@ +local function load(name) + local Util = require("lazy.core.util") + -- always load lazyvim, then user file + for _, mod in ipairs({ "lazyvim.config." .. name, "config." .. name }) do + Util.try(function() + require(mod) + end, { + msg = "Failed loading " .. mod, + on_error = function(msg) + local modpath = require("lazy.core.cache").find(mod) + if modpath then + Util.error(msg) + end + end, + }) + end +end + +-- load options here, before lazy init while sourcing plugin modules +-- this is needed to make sure options will be correctly applied +-- after installing missing plugins +load("options") + +-- autocmds and keymaps can wait to load +vim.api.nvim_create_autocmd("User", { + pattern = "VeryLazy", + callback = function() + load("autocmds") + load("keymaps") + end, +}) + +return {}