Skip to content
This repository was archived by the owner on Oct 13, 2021. It is now read-only.

Commit 226f3dd

Browse files
committed
fix: avoid getting wrong lsp client
1 parent 1c5ca92 commit 226f3dd

3 files changed

Lines changed: 22 additions & 11 deletions

File tree

lua/completion/hover.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,9 @@ M.autoOpenHoverInPopup = function(manager)
338338
M.winnr = winnr
339339
end
340340
else
341-
if vim.lsp.buf_get_clients()[1].resolved_capabilities.hover == false then return end
341+
for _, value in pairs(vim.lsp.buf_get_clients(0)) do
342+
if value.resolved_capabilities.hover == false then return end
343+
end
342344
local row, col = unpack(api.nvim_win_get_cursor(0))
343345
row = row - 1
344346
local line = api.nvim_buf_get_lines(0, row, row+1, true)[1]

lua/completion/signature_help.lua

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,20 @@ M.autoOpenSignatureHelp = function(bufnr, line_to_cursor)
129129
local pos = api.nvim_win_get_cursor(0)
130130
local line = api.nvim_get_current_line()
131131
local line_to_cursor = line:sub(1, pos[2])
132-
if vim.lsp.buf_get_clients()[1] == nil then return end
132+
if vim.lsp.buf_get_clients() == nil then return end
133133

134-
if vim.lsp.buf_get_clients()[1].resolved_capabilities.signature_help == false or
135-
vim.lsp.buf_get_clients()[1].server_capabilities.signatureHelpProvider == nil then
136-
return
134+
local triggered
135+
for _, value in pairs(vim.lsp.buf_get_clients(0)) do
136+
if value.resolved_capabilities.signature_help == false or
137+
value.server_capabilities.signatureHelpProvider == nil then
138+
return
139+
end
140+
141+
if value.resolved_capabilities.hover == false then return end
142+
triggered = util.checkTriggerCharacter(line_to_cursor,
143+
value.server_capabilities.signatureHelpProvider.triggerCharacters)
137144
end
138145

139-
local triggered = util.checkTriggerCharacter(line_to_cursor,
140-
vim.lsp.buf_get_clients()[1].server_capabilities.signatureHelpProvider.triggerCharacters)
141146
if triggered then
142147
local params = vim.lsp.util.make_position_params()
143148
vim.lsp.buf_request(bufnr, 'textDocument/signatureHelp', params, function(_, method, result)

lua/source.lua

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,15 @@ local triggerCurrentCompletion = function(manager, bufnr, line_to_cursor, prefix
6969

7070
if complete_source.complete_items ~= nil then
7171
for _, source in ipairs(complete_source.complete_items) do
72-
if source == 'lsp' and vim.lsp.buf_get_clients()[1] ~= nil then
73-
if vim.lsp.buf_get_clients()[1].server_capabilities.completionProvider ~= nil then
74-
triggered = triggered or util.checkTriggerCharacter(line_to_cursor, vim.lsp.buf_get_clients()[1].server_capabilities.completionProvider.triggerCharacters)
75-
break
72+
if source == 'lsp' and vim.lsp.buf_get_clients() ~= nil then
73+
for _, value in pairs(vim.lsp.buf_get_clients()) do
74+
if value.server_capabilities.completionProvider == nil then
75+
break
76+
end
77+
triggered = triggered or util.checkTriggerCharacter(line_to_cursor,
78+
value.server_capabilities.completionProvider.triggerCharacters)
7679
end
80+
break
7781
end
7882
end
7983
end

0 commit comments

Comments
 (0)