The lists of completion item and symbol kinds are hardcoded and match the existing language servers; what should languages that have other kinds do? This is partly a client issue (because it might want to know about these kinds, to provide icons and other UI), but affects the protocol too.
I believe that the ClientCapabilities could be used to expose the supported kinds (whose details for registration would be client-specific)
The lists of completion item and symbol kinds are hardcoded and match the existing language servers; what should languages that have other kinds do? This is partly a client issue (because it might want to know about these kinds, to provide icons and other UI), but affects the protocol too.
I believe that the ClientCapabilities could be used to expose the supported kinds (whose details for registration would be client-specific)