From 6c3ee44729ffcedfac1a7d9b18fe42741a4cf9dc Mon Sep 17 00:00:00 2001 From: ray-x Date: Tue, 7 Jun 2022 02:19:53 +1000 Subject: [PATCH] bugfix workspace symbol from multiple lsp clients --- lua/navigator/workspace.lua | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lua/navigator/workspace.lua b/lua/navigator/workspace.lua index ec85703..f474829 100644 --- a/lua/navigator/workspace.lua +++ b/lua/navigator/workspace.lua @@ -60,10 +60,19 @@ function M.workspace_symbol_live() end, on_input_filter = function(text) local params = { query = text or '#' } - local result = vim.lsp.buf_request_sync(bufnr, 'workspace/symbol', params) - util.log(vim.inspect(result[1].result)) - result = result[1].result -- this is different from handler, - -- result[1].result is same as result in handler + local results = vim.lsp.buf_request_sync(bufnr, 'workspace/symbol', params) + local result + for _, r in pairs(results) do + -- util.log(r) + if r.result then + result = r.result + break + end + end + if not result then + result = {} + end + local items = symbols_to_items(result) items = gutil.dedup(items, 'name', 'kind') return items