commit ce5c7111f4050f168ddf4806287b4c384264b0fa
parent 61678811d8d3a26881b455d26acaa50378a659bf
Author: Justin M. Keyes <justinkz@gmail.com>
Date: Mon, 23 Feb 2026 03:24:14 -0500
refactor: defer_fn return type #37999
Diffstat:
3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt
@@ -1285,7 +1285,7 @@ vim.defer_fn({fn}, {timeout}) *vim.defer_fn()*
`fn`
Return: ~
- (`table`) timer luv timer object
+ (`uv.uv_timer_t`) timer luv timer object
*vim.deprecate()*
vim.deprecate({name}, {alternative}, {version}, {plugin}, {backtrace})
diff --git a/runtime/lua/vim/_core/editor.lua b/runtime/lua/vim/_core/editor.lua
@@ -513,7 +513,7 @@ end
--- safe to call.
---@param fn function Callback to call once `timeout` expires
---@param timeout integer Number of milliseconds to wait before calling `fn`
----@return table timer luv timer object
+---@return uv.uv_timer_t timer luv timer object
function vim.defer_fn(fn, timeout)
vim.validate('fn', fn, 'callable', true)
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
@@ -1141,9 +1141,8 @@ api.nvim_create_autocmd('VimLeavePre', {
client:stop(client.exit_timeout)
end
- local exit_warning_timer --- @type uv.uv_timer_t?
- if max_timeout > min_warn_exit_timeout then
- exit_warning_timer = vim.defer_fn(function()
+ local exit_warning_timer = max_timeout > min_warn_exit_timeout
+ and vim.defer_fn(function()
api.nvim_echo({
{
string.format(
@@ -1154,7 +1153,6 @@ api.nvim_create_autocmd('VimLeavePre', {
},
}, true, {})
end, min_warn_exit_timeout)
- end
vim.wait(max_timeout, function()
return vim.iter(active_clients):all(function(client)