Report serverInfo (name and version) in the initialize result
Is your feature request related to a problem? Please describe.
A client, or a proxy in front of the server, cannot tell from the LSP handshake which server it is talking to or which version: pyright's InitializeResult has no serverInfo. The name and version appear only in the startup window/logMessage ("Pyright language server 1.1.412 starting"), which a client has to parse. serverInfo has been a standard field since LSP 3.15, and basedpyright already returns it.
Describe the solution you'd like
InitializeResult.serverInfo = { name: productName, version } in LanguageServerBase.initialize (packages/pyright-internal/src/languageServerBase.ts). It is a four-line change; I have it ready and can open a PR if this is acceptable.
Additional context
I use it in lsp-det (https://github.com/tagawa0525/lsp-det), a proxy that selects a per-server readiness mapping by the server's name and version. Today it has to read pyright's startup log for that.
Source: microsoft/pyright