123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- ---@diagnostic disable: deprecated
- local M = {}
- local function deprecate(name, alternative)
- local in_headless = #vim.api.nvim_list_uis() == 0
- if in_headless then
- return
- end
- alternative = alternative or "See https://github.com/LunarVim/LunarVim#breaking-changes"
- local trace = debug.getinfo(3, "Sl")
- local shorter_src = trace.short_src
- local t = shorter_src .. ":" .. (trace.currentline or trace.lastlinedefined)
- vim.schedule(function()
- vim.notify_once(string.format("%s: `%s` is deprecated.\n %s.", t, name, alternative), vim.log.levels.WARN)
- end)
- end
- function M.handle()
- local mt = {
- __newindex = function(_, k, _)
- deprecate(k)
- end,
- }
- ---@deprecated
- lvim.builtin.theme.options = {}
- setmetatable(lvim.builtin.theme.options, {
- __newindex = function(_, k, v)
- deprecate("lvim.builtin.theme.options." .. k, "Use `lvim.builtin.theme.<theme>.options` instead")
- lvim.builtin.theme.tokyonight.options[k] = v
- end,
- })
- ---@deprecated
- lvim.builtin.notify = {}
- setmetatable(lvim.builtin.notify, {
- __newindex = function(_, k, _)
- deprecate("lvim.builtin.notify." .. k, "See LunarVim#3294")
- 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)
- if not vim.tbl_contains(lvim.lsp.automatic_configuration.skipped_servers, c) then
- table.insert(lvim.lsp.automatic_configuration.skipped_servers, c)
- end
- end, lvim.lsp.override)
- end
- if lvim.autocommands.custom_groups then
- deprecate(
- "lvim.autocommands.custom_groups",
- "Use vim.api.nvim_create_autocmd instead or check LunarVim#2592 to learn about the new syntax"
- )
- end
- if lvim.lsp.automatic_servers_installation then
- deprecate(
- "lvim.lsp.automatic_servers_installation",
- "Use `lvim.lsp.installer.setup.automatic_installation` instead"
- )
- end
- local function convert_spec_to_lazy(spec)
- local alternatives = {
- setup = "init",
- as = "name",
- opt = "lazy",
- run = "build",
- lock = "pin",
- tag = "version",
- }
- alternatives.requires = function()
- if type(spec.requires) == "string" then
- spec.dependencies = { spec.requires }
- else
- spec.dependencies = spec.requires
- end
- 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
- if lvim.builtin.terminal.execs then
- deprecate(
- "lvim.builtin.terminal.execs",
- "Use `lvim.builtin.terminal.terminals` instead. See https://www.lunarvim.org/docs/configuration/keybindings#toggleterm-terminal-mappings"
- )
- for _, v in ipairs(lvim.builtin.terminal.execs) do
- local keybind = {
- cmd = v[1],
- keymap = v[2],
- desc = v[3],
- direction = v[4],
- size = v[5],
- }
- lvim.builtin.terminal.terminals[#lvim.builtin.terminal.terminals + 1] = keybind
- end
- end
- end
- return M
|