fix(vim.hl): nvim_buf_del_extmark on invalid buffer #33331

Problem:
nvim_buf_del_extmark error if buffer is destroyed before timer stops

Solution:
check nvim_buf_is_valid.

(cherry picked from commit 28e8190185)
This commit is contained in:
phanium
2025-04-06 06:56:40 +08:00
committed by github-actions[bot]
parent 91481ae7d5
commit 29011e4d45
2 changed files with 4 additions and 0 deletions

View File

@ -128,6 +128,9 @@ function M.range(bufnr, ns, higroup, start, finish, opts)
end
local range_hl_clear = function()
if not api.nvim_buf_is_valid(bufnr) then
return
end
for _, mark in ipairs(extmarks) do
api.nvim_buf_del_extmark(bufnr, ns, mark)
end

View File

@ -222,6 +222,7 @@ describe('vim.hl.on_yank', function()
it('does not show errors even if buffer is wiped before timeout', function()
command('new')
n.feed('ifoo<esc>') -- set '[, ']
exec_lua(function()
vim.hl.on_yank({
timeout = 10,