From 96cfcfde42ebfbd5e1d40da305d2ba460a852b27 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 5 Apr 2025 17:17:35 -0700 Subject: refactor: deprecate get_active_client_by_name #3697 --- lua/lspconfig/configs/ccls.lua | 2 +- lua/lspconfig/configs/clangd.lua | 4 ++-- lua/lspconfig/configs/ds_pinyin_lsp.lua | 4 ++-- lua/lspconfig/configs/eslint.lua | 2 +- lua/lspconfig/configs/texlab.lua | 2 +- lua/lspconfig/util.lua | 17 ++++++++--------- 6 files changed, 15 insertions(+), 16 deletions(-) (limited to 'lua/lspconfig') diff --git a/lua/lspconfig/configs/ccls.lua b/lua/lspconfig/configs/ccls.lua index e64df3c6..ac56dffb 100644 --- a/lua/lspconfig/configs/ccls.lua +++ b/lua/lspconfig/configs/ccls.lua @@ -3,7 +3,7 @@ local util = require 'lspconfig.util' local function switch_source_header(bufnr) local method_name = 'textDocument/switchSourceHeader' bufnr = util.validate_bufnr(bufnr) - local client = util.get_active_client_by_name(bufnr, 'ccls') + local client = vim.lsp.get_clients({ bufnr = bufnr, name = 'ccls' })[1] if not client then return vim.notify(('method %s is not supported by any servers active on the current buffer'):format(method_name)) end diff --git a/lua/lspconfig/configs/clangd.lua b/lua/lspconfig/configs/clangd.lua index ebacbcb9..ba60ecde 100644 --- a/lua/lspconfig/configs/clangd.lua +++ b/lua/lspconfig/configs/clangd.lua @@ -4,7 +4,7 @@ local util = require 'lspconfig.util' local function switch_source_header(bufnr) local method_name = 'textDocument/switchSourceHeader' bufnr = util.validate_bufnr(bufnr) - local client = util.get_active_client_by_name(bufnr, 'clangd') + local client = vim.lsp.get_clients({ bufnr = bufnr, name = 'clangd' })[1] if not client then return vim.notify(('method %s is not supported by any servers active on the current buffer'):format(method_name)) end @@ -23,7 +23,7 @@ end local function symbol_info() local bufnr = vim.api.nvim_get_current_buf() - local clangd_client = util.get_active_client_by_name(bufnr, 'clangd') + local clangd_client = vim.lsp.get_clients({ bufnr = bufnr, name = 'clangd' })[1] if not clangd_client or not clangd_client.supports_method 'textDocument/symbolInfo' then return vim.notify('Clangd client not found', vim.log.levels.ERROR) end diff --git a/lua/lspconfig/configs/ds_pinyin_lsp.lua b/lua/lspconfig/configs/ds_pinyin_lsp.lua index b81074c1..788ef3c8 100644 --- a/lua/lspconfig/configs/ds_pinyin_lsp.lua +++ b/lua/lspconfig/configs/ds_pinyin_lsp.lua @@ -7,7 +7,7 @@ end local function ds_pinyin_lsp_off(bufnr) bufnr = util.validate_bufnr(bufnr) - local ds_pinyin_lsp_client = util.get_active_client_by_name(bufnr, 'ds_pinyin_lsp') + local ds_pinyin_lsp_client = vim.lsp.get_clients({ bufnr = bufnr, name = 'ds_pinyin_lsp' })[1] if ds_pinyin_lsp_client then ds_pinyin_lsp_client.notify('$/turn/completion', { ['completion_on'] = false, @@ -19,7 +19,7 @@ end local function ds_pinyin_lsp_on(bufnr) bufnr = util.validate_bufnr(bufnr) - local ds_pinyin_lsp_client = util.get_active_client_by_name(bufnr, 'ds_pinyin_lsp') + local ds_pinyin_lsp_client = vim.lsp.get_clients({ bufnr = bufnr, name = 'ds_pinyin_lsp' })[1] if ds_pinyin_lsp_client then ds_pinyin_lsp_client.notify('$/turn/completion', { ['completion_on'] = true, diff --git a/lua/lspconfig/configs/eslint.lua b/lua/lspconfig/configs/eslint.lua index e701928d..3bae5634 100644 --- a/lua/lspconfig/configs/eslint.lua +++ b/lua/lspconfig/configs/eslint.lua @@ -4,7 +4,7 @@ local lsp = vim.lsp local function fix_all(opts) opts = opts or {} - local eslint_lsp_client = util.get_active_client_by_name(opts.bufnr, 'eslint') + local eslint_lsp_client = vim.lsp.get_clients({ bufnr = opts.bufnr, name = 'eslint' })[1] if eslint_lsp_client == nil then return end diff --git a/lua/lspconfig/configs/texlab.lua b/lua/lspconfig/configs/texlab.lua index 355c5ae8..c4e2ac53 100644 --- a/lua/lspconfig/configs/texlab.lua +++ b/lua/lspconfig/configs/texlab.lua @@ -3,7 +3,7 @@ local util = require 'lspconfig.util' local function client_with_fn(fn) return function() local bufnr = vim.api.nvim_get_current_buf() - local client = util.get_active_client_by_name(bufnr, 'texlab') + local client = vim.lsp.get_clients({ bufnr = bufnr, name = 'texlab' })[1] if not client then return vim.notify(('texlab client not found in bufnr %d'):format(bufnr), vim.log.levels.ERROR) end diff --git a/lua/lspconfig/util.lua b/lua/lspconfig/util.lua index 0935ec40..6b00eb59 100644 --- a/lua/lspconfig/util.lua +++ b/lua/lspconfig/util.lua @@ -147,15 +147,9 @@ function M.get_config_by_ft(filetype) return matching_configs end -function M.get_active_client_by_name(bufnr, servername) - --TODO(glepnir): remove this for loop when we want only support 0.10+ - for _, client in pairs(vim.lsp.get_clients { bufnr = bufnr }) do - if client.name == servername then - return client - end - end -end - +--- Note: In Nvim 0.11+ this currently has no public interface, the healthcheck uses the private +--- `vim.lsp._enabled_configs`: +--- https://github.com/neovim/neovim/blob/28e819018520a2300eaeeec6794ffcd614b25dd2/runtime/lua/vim/lsp/health.lua#L186 function M.get_managed_clients() local configs = require 'lspconfig.configs' local clients = {} @@ -369,4 +363,9 @@ function M.add_hook_after(func, new_fn) end end +--- @deprecated Will be removed. Do not use. +function M.get_active_client_by_name(bufnr, servername) + return vim.lsp.get_clients({ bufnr = bufnr, name = servername })[1] +end + return M -- cgit v1.2.3-70-g09d2