fix(lsp): always return boolean in lsp.buf_client_attach (#24077)

Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
This commit is contained in:
Sooryakiran Ponnath 2023-06-20 15:17:13 -04:00 committed by GitHub
parent 1f0b2dc6cd
commit 3bf887f6e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 2 deletions

View File

@ -678,6 +678,10 @@ buf_attach_client({bufnr}, {client_id}) *vim.lsp.buf_attach_client()*
• {bufnr} (integer) Buffer handle, or 0 for current
• {client_id} (integer) Client id
Return: ~
(boolean) success `true` if client was attached successfully; `false`
otherwise
buf_detach_client({bufnr}, {client_id}) *vim.lsp.buf_detach_client()*
Detaches client from the specified buffer. Note: While the server is
notified that the text document (buffer) was closed, it is still able to

View File

@ -1799,6 +1799,7 @@ end
---
---@param bufnr (integer) Buffer handle, or 0 for current
---@param client_id (integer) Client id
---@return boolean success `true` if client was attached successfully; `false` otherwise
function lsp.buf_attach_client(bufnr, client_id)
validate({
bufnr = { bufnr, 'n', true },
@ -1887,7 +1888,7 @@ function lsp.buf_attach_client(bufnr, client_id)
end
if buffer_client_ids[client_id] then
return
return true
end
-- This is our first time attaching this client to this buffer.
buffer_client_ids[client_id] = true

View File

@ -1070,7 +1070,7 @@ describe('LSP', function()
eq(full_kind, client.server_capabilities().textDocumentSync.change)
eq(true, client.server_capabilities().textDocumentSync.openClose)
exec_lua [[
assert(not lsp.buf_attach_client(BUFFER, TEST_RPC_CLIENT_ID), "Shouldn't attach twice")
assert(lsp.buf_attach_client(BUFFER, TEST_RPC_CLIENT_ID), "Already attached, returns true")
]]
end;
on_exit = function(code, signal)