fix(lsp): document_symbol uses loclist by default #32070

Problem: Not able to open document symbols for different buffers

Solution: Use the location list as default.

To switch back to previous behavior (qflist):

  vim.lsp.buf.document_symbol({ loclist = false })

Fixes: #31832
This commit is contained in:
Yochem van Rosmalen
2025-01-19 22:08:10 +01:00
committed by GitHub
parent a6f219b06b
commit d56ba71af1
3 changed files with 12 additions and 9 deletions

View File

@@ -252,13 +252,13 @@ end
--- vim.lsp.buf.definition({ on_list = on_list })
--- vim.lsp.buf.references(nil, { on_list = on_list })
--- ```
--- @field on_list? fun(t: vim.lsp.LocationOpts.OnList)
---
--- If you prefer loclist instead of qflist:
--- Whether to use the |location-list| or the |quickfix| list.
--- ```lua
--- vim.lsp.buf.definition({ loclist = true })
--- vim.lsp.buf.references(nil, { loclist = true })
--- vim.lsp.buf.references(nil, { loclist = false })
--- ```
--- @field on_list? fun(t: vim.lsp.LocationOpts.OnList)
--- @field loclist? boolean
--- @class vim.lsp.LocationOpts.OnList
@@ -796,9 +796,10 @@ function M.references(context, opts)
end
end
--- Lists all symbols in the current buffer in the quickfix window.
--- Lists all symbols in the current buffer in the |location-list|.
--- @param opts? vim.lsp.ListOpts
function M.document_symbol(opts)
opts = vim.tbl_deep_extend('keep', opts or {}, { loclist = true })
local params = { textDocument = util.make_text_document_params() }
request_with_opts(ms.textDocument_documentSymbol, params, opts)
end