mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 06:28:35 +00:00
backport: fix(lua): verify buffer in highlight.on_yank (#15482)
Resolve an issue with deferred clearing of highlight failing if the buffer is deleted before the timeout by checking whether the buffer is valid first.
This commit is contained in:
26
test/functional/lua/highlight_spec.lua
Normal file
26
test/functional/lua/highlight_spec.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local funcs = helpers.funcs
|
||||
local exec_lua = helpers.exec_lua
|
||||
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')
|
||||
local bufnr = funcs.bufnr("%")
|
||||
exec_lua[[
|
||||
vim.highlight.on_yank({timeout = 10, on_macro = true, event = {operator = "y", regtype = "v"}})
|
||||
vim.cmd('bwipeout!')
|
||||
]]
|
||||
exec_lua[[vim.wait(10)]]
|
||||
local pattern = [[vim/highlight.lua:%d+: Invalid buffer id: ]] .. bufnr
|
||||
local exists = pcall(helpers.assert_log, pattern)
|
||||
assert.is_false(exists, string.format("%q should not be in log", pattern))
|
||||
end)
|
||||
|
||||
end)
|
Reference in New Issue
Block a user