feat(lsp): support vim.lsp.ListOpts.loclist in location_handler()

This commit is contained in:
tom-anders 2024-05-04 10:13:08 +02:00
parent b0cc85c005
commit 5c40f3e86a
2 changed files with 10 additions and 2 deletions

View File

@ -266,6 +266,9 @@ The following new APIs and features were added.
respective capability can be unset.
• |vim.lsp.start()| accepts a "silent" option for suppressing messages
if an LSP server failed to start.
• |vim.lsp.buf.definition()|, |vim.lsp.buf.declaration()|,
|vim.lsp.buf.type_definition()|, and |vim.lsp.buf.implementation()| now
support the `loclist` field of |vim.lsp.ListOpts|.
• Treesitter
• Bundled parsers and queries (highlight, folds) for Markdown, Python, and

View File

@ -443,8 +443,13 @@ local function location_handler(_, result, ctx, config)
util.jump_to_location(result[1], client.offset_encoding, config.reuse_win)
return
end
vim.fn.setqflist({}, ' ', { title = title, items = items })
vim.cmd('botright copen')
if config.loclist then
vim.fn.setloclist(0, {}, ' ', { title = title, items = items })
vim.cmd.lopen()
else
vim.fn.setqflist({}, ' ', { title = title, items = items })
vim.cmd('botright copen')
end
end
--- @see # https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_declaration