fix(diagnostic): accept multiple namespaces when setting loclist/qflist (#33982)

This commit is contained in:
Maria José Solano
2025-05-12 19:13:26 -05:00
committed by GitHub
parent 69d04ee99f
commit c681336e3c
3 changed files with 28 additions and 8 deletions

View File

@@ -913,8 +913,8 @@ setloclist({opts}) *vim.diagnostic.setloclist()*
Parameters: ~
• {opts} (`table?`) Configuration table with the following keys:
• {namespace}? (`integer`) Only add diagnostics from the given
namespace.
• {namespace}? (`integer[]|integer`) Only add diagnostics from
the given namespace(s).
• {winnr}? (`integer`, default: `0`) Window number to set
location list for.
• {open}? (`boolean`, default: `true`) Open the location list
@@ -929,8 +929,8 @@ setqflist({opts}) *vim.diagnostic.setqflist()*
Parameters: ~
• {opts} (`table?`) Configuration table with the following keys:
• {namespace}? (`integer`) Only add diagnostics from the given
namespace.
• {namespace}? (`integer[]|integer`) Only add diagnostics from
the given namespace(s).
• {open}? (`boolean`, default: `true`) Open quickfix list
after setting.
• {title}? (`string`) Title of quickfix list. Defaults to

View File

@@ -2348,8 +2348,8 @@ end
--- @class vim.diagnostic.setqflist.Opts
--- @inlinedoc
---
--- Only add diagnostics from the given namespace.
--- @field namespace? integer
--- Only add diagnostics from the given namespace(s).
--- @field namespace? integer[]|integer
---
--- Open quickfix list after setting.
--- (default: `true`)
@@ -2373,8 +2373,8 @@ end
--- @class vim.diagnostic.setloclist.Opts
--- @inlinedoc
---
--- Only add diagnostics from the given namespace.
--- @field namespace? integer
--- Only add diagnostics from the given namespace(s).
--- @field namespace? integer[]|integer
---
--- Window number to set location list for.
--- (default: `0`)

View File

@@ -3428,6 +3428,26 @@ describe('vim.diagnostic', function()
assert(loc_list[1].lnum < loc_list[2].lnum)
end)
it('sets diagnostics from the specified namespaces', function()
local loc_list = exec_lua(function()
vim.api.nvim_win_set_buf(0, _G.diagnostic_bufnr)
vim.diagnostic.set(_G.diagnostic_ns, _G.diagnostic_bufnr, {
_G.make_error('Error here!', 1, 1, 1, 1),
})
vim.diagnostic.set(_G.other_ns, _G.diagnostic_bufnr, {
_G.make_warning('Error there!', 2, 2, 2, 2),
})
vim.diagnostic.setloclist({ namespace = { _G.diagnostic_ns } })
return vim.fn.getloclist(0)
end)
eq(1, #loc_list)
eq('Error here!', loc_list[1].text)
end)
end)
describe('setqflist()', function()