neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 3bf887f6e08fa272679187340ca483809275b20a
parent 1f0b2dc6cd8fbf650dfbfb3328de6e6284aec9e4
Author: Sooryakiran Ponnath <skp.frl@gmail.com>
Date:   Tue, 20 Jun 2023 15:17:13 -0400

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


Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
Diffstat:
Mruntime/doc/lsp.txt | 4++++
Mruntime/lua/vim/lsp.lua | 3++-
Mtest/functional/plugin/lsp_spec.lua | 2+-
3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt @@ -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 diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua @@ -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 diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua @@ -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)