summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarten Trip <me@marten.xyz>2021-08-11 20:03:31 +0200
committerGitHub <noreply@github.com>2021-08-11 20:03:31 +0200
commit06e55d3b3afe4b3070783699ecc8985f0236caa4 (patch)
tree32d5a16ce83a01a9ce0ba55f407ca92d3ccaf845
parent2292ee2be0f03ec9a0e4ee9477f96db914033189 (diff)
fix: builtin `list_or_jump` now handles non list replies from the server (#1101)
fix for servers such as zls and clojure_lsp
-rw-r--r--lua/telescope/builtin/lsp.lua6
1 files changed, 6 insertions, 0 deletions
diff --git a/lua/telescope/builtin/lsp.lua b/lua/telescope/builtin/lsp.lua
index 42a1851..8ca8b92 100644
--- a/lua/telescope/builtin/lsp.lua
+++ b/lua/telescope/builtin/lsp.lua
@@ -58,6 +58,12 @@ local function list_or_jump(action, title, opts)
local flattened_results = {}
for _, server_results in pairs(result) do
if server_results.result then
+ -- textDocument/definition can return Location or Location[]
+ if not vim.tbl_islist(server_results.result) then
+ flattened_results = { server_results.result }
+ break
+ end
+
vim.list_extend(flattened_results, server_results.result)
end
end