mirror of
https://github.com/neovim/neovim.git
synced 2025-09-19 17:58:18 +00:00
fix(lua): highlight.on_yank can close timer in twice #18976
check whether timer is closing in vim.defer_fn before closing
This commit is contained in:
@@ -6,20 +6,29 @@ local command = helpers.command
|
||||
local clear = helpers.clear
|
||||
|
||||
describe('vim.highlight.on_yank', function()
|
||||
|
||||
before_each(function()
|
||||
clear()
|
||||
end)
|
||||
|
||||
it('does not show errors even if buffer is wiped before timeout', function()
|
||||
command('new')
|
||||
exec_lua[[
|
||||
exec_lua([[
|
||||
vim.highlight.on_yank({timeout = 10, on_macro = true, event = {operator = "y", regtype = "v"}})
|
||||
vim.cmd('bwipeout!')
|
||||
]]
|
||||
]])
|
||||
helpers.sleep(10)
|
||||
helpers.feed('<cr>') -- avoid hang if error message exists
|
||||
eq('', eval('v:errmsg'))
|
||||
end)
|
||||
|
||||
it('does not close timer twice', function()
|
||||
exec_lua([[
|
||||
vim.highlight.on_yank({timeout = 10, on_macro = true, event = {operator = "y"}})
|
||||
vim.loop.sleep(10)
|
||||
vim.schedule(function()
|
||||
vim.highlight.on_yank({timeout = 0, on_macro = true, event = {operator = "y"}})
|
||||
end)
|
||||
]])
|
||||
eq('', eval('v:errmsg'))
|
||||
end)
|
||||
end)
|
||||
|
Reference in New Issue
Block a user