feat(lua): add traceback to vim.deprecate #18575

This commit is contained in:
ii14
2022-05-16 03:07:36 +02:00
committed by GitHub
parent b2799518c7
commit e501e4ed4b
2 changed files with 16 additions and 4 deletions

View File

@@ -446,11 +446,14 @@ do
---@param msg string Content of the notification to show to the user.
---@param level number|nil One of the values from |vim.log.levels|.
---@param opts table|nil Optional parameters. Unused by default.
function vim.notify_once(msg, level, opts) -- luacheck: no unused args
---@return boolean true if message was displayed, else false
function vim.notify_once(msg, level, opts)
if not notified[msg] then
vim.notify(msg, level, opts)
notified[msg] = true
return true
end
return false
end
end
@@ -784,12 +787,15 @@ end
--- be removed.
---@param plugin string|nil Plugin name that the function will be removed
--- from. Defaults to "Nvim".
function vim.deprecate(name, alternative, version, plugin)
---@param backtrace boolean|nil Prints backtrace. Defaults to true.
function vim.deprecate(name, alternative, version, plugin, backtrace)
local message = name .. ' is deprecated'
plugin = plugin or 'Nvim'
message = alternative and (message .. ', use ' .. alternative .. ' instead.') or message
message = message .. ' See :h deprecated\nThis function will be removed in ' .. plugin .. ' version ' .. version
vim.notify_once(message, vim.log.levels.WARN)
if vim.notify_once(message, vim.log.levels.WARN) and backtrace ~= false then
vim.notify(debug.traceback('', 2):sub(2), vim.log.levels.WARN)
end
end
require('vim._meta')