runtime: Add vim.lsp.get_client_by_name (#11603)

Since the client name is more obvious than the client id for the user, add an
API to get the lsp client by the client name.
This commit is contained in:
Hirokazu Hata
2019-12-29 02:28:00 +09:00
committed by Ashkan Kiani
parent 4f4c06a7a4
commit 680693e263
3 changed files with 22 additions and 2 deletions

View File

@@ -111,6 +111,7 @@ describe('Language Client API', function()
exec_lua([=[
lsp = require('vim.lsp')
local test_name, fixture_filename = ...
TEST_NAME = test_name
TEST_RPC_CLIENT_ID = lsp.start_client {
cmd = {
vim.api.nvim_get_vvar("progpath"), '-Es', '-u', 'NONE', '--headless',
@@ -118,6 +119,7 @@ describe('Language Client API', function()
"-c", "luafile "..fixture_filename;
};
root_dir = vim.loop.cwd();
name = test_name;
}
]=], test_name, lsp_test_rpc_server_file)
end)
@@ -137,6 +139,7 @@ describe('Language Client API', function()
end
eq(1, exec_lua("return #lsp.get_active_clients()"))
eq(false, exec_lua("return lsp.get_client_by_id(TEST_RPC_CLIENT_ID) == nil"))
eq(false, exec_lua("return lsp.get_client_by_name(TEST_NAME) == nil"))
eq(false, exec_lua("return lsp.get_client_by_id(TEST_RPC_CLIENT_ID).is_stopped()"))
exec_lua("return lsp.get_client_by_id(TEST_RPC_CLIENT_ID).stop()")
for _ = 1, 20 do
@@ -146,6 +149,7 @@ describe('Language Client API', function()
end
end
eq(true, exec_lua("return lsp.get_client_by_id(TEST_RPC_CLIENT_ID) == nil"))
eq(true, exec_lua("return lsp.get_client_by_name(TEST_NAME) == nil"))
end)
end)
end)