| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 | ---@diagnostic disable: deprecatedlocal 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)endfunction 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.lsp.float = {}  setmetatable(lvim.lsp.float, {    __newindex = function(_, k, _)      deprecate("lvim.lsp.float." .. k, "Use options provided by the handler instead")    end,  })  ---@deprecated  lvim.lsp.diagnostics = {}  setmetatable(lvim.lsp.diagnostics, {    __newindex = function(table, k, v)      deprecate("lvim.lsp.diagnostics." .. k, string.format("Use `vim.diagnostic.config({ %s = %s })` instead", k, v))      rawset(table, k, v)    end,  })  ---@deprecated  lvim.lang = {}  setmetatable(lvim.lang, mt)endfunction M.post_load()  if lvim.lsp.diagnostics and not vim.tbl_isempty(lvim.lsp.diagnostics) then    vim.diagnostic.config(lvim.lsp.diagnostics)  end  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",      requires = "dependencies",    }    alternatives.tag = function()      if spec.tag == "*" then        spec.version = "*"        return [[version = "*"]]      end    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 "enabled = " .. vim.inspect(spec.enabled)    end    alternatives.wants = function()      return "dependencies = [value]"    end    alternatives.needs = alternatives.wants    alternatives.module = function()      spec.lazy = true      return "lazy = true"    end    for old_key, alternative in pairs(alternatives) do      if spec[old_key] ~= nil then        local message        local old_value = vim.inspect(spec[old_key]) or "value"        if type(alternative) == "function" then          message = alternative()        else          spec[alternative] = spec[old_key]        end        -- not every function in alternatives returns a message (e.g. tag)        if type(alternative) ~= "function" or message then          spec[old_key] = nil          local new_value = vim.inspect(spec[alternative] or "[value]")          message = message or string.format("%s = %s", alternative, new_value)          vim.schedule(function()            vim.notify_once(              string.format(                [[`%s = %s` in `lvim.plugins` has been deprecated since the migration to lazy.nvim. Use `%s` instead.Example:`lvim.plugins = {... {... %s = %s ...} ...}`->`lvim.plugins = {... {... %s ...} ...}`See https://github.com/folke/lazy.nvim#-migration-guide"]],                old_key,                old_value,                message,                old_key,                old_value,                message              ),              vim.log.levels.WARN            )          end)        end      end    end    if spec[1] and spec[1]:match "^http" then      spec.url = spec[1]      spec[1] = nil      vim.schedule(function()        vim.notify_once(          string.format(            [[`"http..."` in `lvim.plugins` has been deprecated since the migration to lazy.nvim. Use `url = "http..."` instead.Example:`lvim.plugins = {... { "%s" ...} ...}`->`lvim.plugins = {... { url = "%s" ...} ...}`See https://github.com/folke/lazy.nvim#-migration-guide"]],            spec.url,            spec.url          ),          vim.log.levels.WARN        )      end)    end  end  for _, plugin in ipairs(lvim.plugins) do    if type(plugin) == "table" then      convert_spec_to_lazy(plugin)    end  endendreturn M
 |