mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 02:34:59 -07:00
feat(lsp): show server version in :checkhealth
#31611
Problem: Language server version information missing from `:checkhealth vim.lsp`. Solution: Store `InitializeResult.serverInfo.version` from the `initialize` response and display for each client in `:checkhealth vim.lsp`.
This commit is contained in:
parent
f9eb68f340
commit
07d5dc8938
@ -1126,6 +1126,9 @@ Lua module: vim.lsp.client *lsp-client*
|
||||
• {server_capabilities} (`lsp.ServerCapabilities?`) Response from the
|
||||
server sent on `initialize` describing the
|
||||
server's capabilities.
|
||||
• {server_info} (`lsp.ServerInfo?`) Response from the server
|
||||
sent on `initialize` describing information
|
||||
about the server.
|
||||
• {progress} (`vim.lsp.Client.Progress`) A ring buffer
|
||||
(|vim.ringbuf()|) containing progress messages
|
||||
sent by the server. See
|
||||
|
@ -115,6 +115,7 @@ LSP
|
||||
• |vim.lsp.util.make_position_params()|, |vim.lsp.util.make_range_params()|
|
||||
and |vim.lsp.util.make_given_range_params()| now require the `position_encoding`
|
||||
parameter.
|
||||
• `:checkhealth vim.lsp` displays the server version (if available).
|
||||
|
||||
LUA
|
||||
|
||||
|
@ -174,6 +174,10 @@ local validate = vim.validate
|
||||
--- capabilities.
|
||||
--- @field server_capabilities lsp.ServerCapabilities?
|
||||
---
|
||||
--- Response from the server sent on `initialize` describing information about
|
||||
--- the server.
|
||||
--- @field server_info lsp.ServerInfo?
|
||||
---
|
||||
--- A ring buffer (|vim.ringbuf()|) containing progress messages
|
||||
--- sent by the server.
|
||||
--- @field progress vim.lsp.Client.Progress
|
||||
@ -556,6 +560,8 @@ function Client:initialize()
|
||||
self.offset_encoding = self.server_capabilities.positionEncoding
|
||||
end
|
||||
|
||||
self.server_info = result.serverInfo
|
||||
|
||||
if next(self.settings) then
|
||||
self:notify(ms.workspace_didChangeConfiguration, { settings = self.settings })
|
||||
end
|
||||
|
@ -40,6 +40,8 @@ local function check_active_clients()
|
||||
local clients = vim.lsp.get_clients()
|
||||
if next(clients) then
|
||||
for _, client in pairs(clients) do
|
||||
local server_version = vim.tbl_get(client, 'server_info', 'version')
|
||||
or '? (no serverInfo.version response)'
|
||||
local cmd ---@type string
|
||||
local ccmd = client.config.cmd
|
||||
if type(ccmd) == 'table' then
|
||||
@ -62,6 +64,7 @@ local function check_active_clients()
|
||||
end
|
||||
report_info(table.concat({
|
||||
string.format('%s (id: %d)', client.name, client.id),
|
||||
string.format('- Version: %s', server_version),
|
||||
dirs_info,
|
||||
string.format('- Command: %s', cmd),
|
||||
string.format('- Settings: %s', vim.inspect(client.settings, { newline = '\n ' })),
|
||||
|
Loading…
Reference in New Issue
Block a user