There is information that the LSP server provides, that a client might like to be able to access. Right now Nova eats that, and so an extension cannot get at that data – and it’s not permitted to send another initialization query, so the extension has to operate without some very useful data.
We’d like to get the serverInfo field as a bare minimum (name and version), and probably the various results returned (which indicates for example whether the server will support specific requests, and may influence the request formats that the server can accept, as well as what types it may respond with.)
But starting with a serverInfo field would be the most basic – for example we could offer to download an updated version if the version the user is running is out of date, and in some cases we might find that some servers behave differently – for example older Clang versions don’t support the textDocument/typeDefinition API, and CCLS doesn’t support prepareName.