aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/lsp.txt10
-rw-r--r--runtime/lua/vim/lsp.lua10
2 files changed, 18 insertions, 2 deletions
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt
index d6d16b8481..d54c227973 100644
--- a/runtime/doc/lsp.txt
+++ b/runtime/doc/lsp.txt
@@ -72,8 +72,9 @@ the option in an |after-directory| ftplugin, e.g. "after/ftplugin/python.vim".
*lsp-core-api*
These are the core api functions for working with clients. You will mainly be
using |vim.lsp.start_client()| and |vim.lsp.buf_attach_client()| for operations
-and |vim.lsp.get_client_by_id()| to retrieve a client by its id after it has
-initialized (or {config.on_init}. see below)
+and |vim.lsp.get_client_by_id()| and |vim.lsp.get_client_by_name()| to retrieve
+a client by its id or name after it has initialized (or {config.on_init}. see
+below)
*vim.lsp.start_client()*
@@ -265,6 +266,11 @@ vim.lsp.get_client_by_id({client_id})
Look up an active client by its id, returns nil if it is not yet initialized
or is not a valid id. Returns |lsp-client|
+ *vim.lsp.get_client_by_name()*
+vim.lsp.get_client_by_name({client_name})
+
+ Look up an active client by its name, returns nil if it is not yet initialized
+ or is not a valid name. Returns |lsp-client|
*vim.lsp.stop_client()*
vim.lsp.stop_client({client_id}, [{force}])
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index 0ecf57f50c..042ed7bcfe 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -697,6 +697,16 @@ function lsp.get_client_by_id(client_id)
return active_clients[client_id]
end
+-- Look up an active client by its name, returns nil if it is not yet initialized
+-- or is not a valid name.
+-- @param client_name string the client name.
+function lsp.get_client_by_name(client_name)
+ for _, client in pairs(active_clients) do
+ if client.name == client_name then return client end
+ end
+ return nil
+end
+
-- Stop a client by its id, optionally with force.
-- You can also use the `stop()` function on a client if you already have
-- access to it.