summaryrefslogtreecommitdiff
path: root/lua/lvim/config
diff options
context:
space:
mode:
authorLostNeophyte <[email protected]>2023-01-10 21:18:17 +0100
committerGitHub <[email protected]>2023-01-10 21:18:17 +0100
commitccb80e41ee929505c97e682749c74f8db4609d61 (patch)
tree7fa9c9e025ce17e9c41563940b1f39fa3357d67c /lua/lvim/config
parentfc6873809934917b470bff1b072171879899a36b (diff)
refactor: migrate to lazy.nvim (#3647)
* refactor: convert plugins spec to lazy * refactor(lazy): remove impatient * fix(telescope): no more errors if theme is nil * refactor(lazy): use lazy in plugin_loader * refactor(lazy): pin plugins with packer's snapshot * fix: add plugins to rtp before config:init * fix: fs_stat nil check * feat: lazy cache * feat(lazy): reloading * refactor(lazy): plugin-loader functions * feat(lazy): cache reset * refactor: set runtimepath manually * fix: runtimepath * refactor(rtp) * refactor(lazy): packer -> lazy in various places * fix(lazy): disable tree-sitter ensure installed * refactor(lazy): restore order to bootstrap * refactor(lazy): remove unused impatient profiler * small fixes * `lvim.plugins` deprecation handling * fix: deprecation of `requires` in plugin specs * feat: core plugins pinning * refactor(lazy): plugin loader tests * refactor(lazy): use lazy in scripts * refactor(lazy): which-key keybinds * chore: format * fix: installer * fix: first time setup * feat: changes required for packaging commit 951ac2b7c01b5200b973660c967852d1706cce28 Author: LostNeophyte <[email protected]> Date: Wed Dec 28 13:49:44 2022 +0100 fix: clean folder before copying plugins commit 64e9afa44b8e528ba527e0510d0d8c2d2237a095 Author: LostNeophyte <[email protected]> Date: Wed Dec 28 13:35:41 2022 +0100 feat: copy core plugins on first run commit 2d8e72090c7624f68c09a9aa6582223373a810c1 Author: LostNeophyte <[email protected]> Date: Wed Dec 28 13:11:22 2022 +0100 feat(utils): fs_copy commit 85c1f025a6ba13183e85141f75f60e2eefc77bb5 Author: LostNeophyte <[email protected]> Date: Wed Dec 28 13:04:38 2022 +0100 fix: copy correct example config * fix: packer specs deprecation handling * fix: plugin specs deprecation * feat: pin lazy's version * fix: remove plugins form rtp before loading lazy * fix: plugin-loader test * feat(lazy): add keymappings for profile, log, and debug (#3665) * feat(lazy): Add keymappings for profile, log, and debug * feat(lazy): Add keymap for cleaning * chore: format * pref: lazy load many plugins Co-authored-by: Uzair Aftab <[email protected]> * fix: bootstrap correct version of lazy * fix: also use CmdLineEnter event for cmp * fix: don't use lazy's modules before it's set up * perf: (hack) enable lazy's cache before loading lazy * fix: plugins.lua * fix: plugins bump script * chore: remove debug print * feat: add rounded border for `:Lazy` * fix: bufferline flashing * fix: don't close lazy on startup * fix: load breadcrumbs on startup * fix: don't lazy load bufferline * chore: bump lazy's version * fix: remove site from rtp (fixes treesitter issues) * revert default config copying changes * fix(bootstrap): actually remove plugins dir on windows * chore: bump lazy's version * chore: bump lazy's version Co-authored-by: kylo252 <[email protected]> Co-authored-by: Uzair Aftab <[email protected]> Co-authored-by: Uzair Aftab <[email protected]> Co-authored-by: opalmay <[email protected]>
Diffstat (limited to 'lua/lvim/config')
-rw-r--r--lua/lvim/config/_deprecated.lua101
-rw-r--r--lua/lvim/config/init.lua2
2 files changed, 90 insertions, 13 deletions
diff --git a/lua/lvim/config/_deprecated.lua b/lua/lvim/config/_deprecated.lua
index 4cf4381e..d4b15f30 100644
--- a/lua/lvim/config/_deprecated.lua
+++ b/lua/lvim/config/_deprecated.lua
@@ -41,6 +41,24 @@ function M.handle()
end,
})
+ ---@deprecated
+ lvim.builtin.dashboard = {}
+ setmetatable(lvim.builtin.dashboard, {
+ __newindex = function(_, k, _)
+ deprecate("lvim.builtin.dashboard." .. k, "Use `lvim.builtin.alpha` instead. See LunarVim#1906")
+ end,
+ })
+
+ ---@deprecated
+ lvim.lsp.popup_border = {}
+ setmetatable(lvim.lsp.popup_border, mt)
+
+ ---@deprecated
+ lvim.lang = {}
+ setmetatable(lvim.lang, mt)
+end
+
+function M.post_load()
if lvim.lsp.override and not vim.tbl_isempty(lvim.lsp.override) then
deprecate("lvim.lsp.override", "Use `lvim.lsp.automatic_configuration.skipped_servers` instead")
vim.tbl_map(function(c)
@@ -64,21 +82,78 @@ function M.handle()
)
end
- ---@deprecated
- lvim.builtin.dashboard = {}
- setmetatable(lvim.builtin.dashboard, {
- __newindex = function(_, k, _)
- deprecate("lvim.builtin.dashboard." .. k, "Use `lvim.builtin.alpha` instead. See LunarVim#1906")
- end,
- })
+ local function convert_spec_to_lazy(spec)
+ local alternatives = {
+ setup = "init",
+ as = "name",
+ opt = "lazy",
+ run = "build",
+ lock = "pin",
+ tag = "version",
+ }
- ---@deprecated
- lvim.lsp.popup_border = {}
- setmetatable(lvim.lsp.popup_border, mt)
+ alternatives.requires = function()
+ if type(spec.requires) == "string" then
+ spec.dependencies = { spec.requires }
+ else
+ spec.dependencies = spec.requires
+ end
- ---@deprecated
- lvim.lang = {}
- setmetatable(lvim.lang, mt)
+ return "Use `dependencies` instead"
+ end
+
+ alternatives.disable = function()
+ if type(spec.disabled) == "function" then
+ spec.enabled = function()
+ return not spec.disabled()
+ end
+ else
+ spec.enabled = not spec.disabled
+ end
+ return "Use `enabled` instead"
+ end
+
+ alternatives.wants = function()
+ return "It's not needed in most cases, otherwise use `dependencies`."
+ end
+ alternatives.needs = alternatives.wants
+
+ alternatives.module = function()
+ spec.lazy = true
+ return "Use `lazy = true` instead."
+ end
+
+ for old_key, alternative in pairs(alternatives) do
+ if spec[old_key] ~= nil then
+ local message
+
+ if type(alternative) == "function" then
+ message = alternative()
+ else
+ spec[alternative] = spec[old_key]
+ end
+ spec[old_key] = nil
+
+ message = message or string.format("Use `%s` instead.", alternative)
+ deprecate(
+ string.format("%s` in `lvim.plugins", old_key),
+ message .. " See https://github.com/folke/lazy.nvim#-migration-guide"
+ )
+ end
+ end
+
+ if spec[1] and spec[1]:match "^http" then
+ spec.url = spec[1]
+ spec[1] = nil
+ deprecate("{ 'http...' }` in `lvim.plugins", "Use { url = 'http...' } instead.")
+ end
+ end
+
+ for _, plugin in ipairs(lvim.plugins) do
+ if type(plugin) == "table" then
+ convert_spec_to_lazy(plugin)
+ end
+ end
end
return M
diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua
index d15d5108..20fad32a 100644
--- a/lua/lvim/config/init.lua
+++ b/lua/lvim/config/init.lua
@@ -63,6 +63,8 @@ function M:load(config_path)
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