[Development] Requesting a module for Qt JSON RPC and Qt Language Server
kari.oikarinen at qt.io
Thu Jan 23 15:11:56 CET 2020
On 16.12.2019 17.39, Ulf Hermann wrote:
> I would like to request a new module and repository for an
> implementation of the JSON RPC and Language Server protocols:
> Name of the repository: qt/qtlanguageserver.git
> Description: An implementation of the language server protocol
> Responsible person: Ulf Hermann
> Gerrit user/email: ulf.hermann at qt.io
> You can see my previous work on this in the context of the QML language
> server here:
> The relevant specifications can be found at:
> The JSON RPC implementation might be moved to QtNetwork, instead. I'm
> eager to hear opinions on this. Mind that the JSON RPC protocol
> implementation doesn't depend on any network classes, but only on
> QIODevice. Indeed you can run many existing language servers over stdio.
> Mind also that the language server _protocol_ implementation shown in
> above changes can be used to build both language servers _and_ clients
> for language servers. The basic primitives are automatically generated
> from the specification itself.
> There currently is no good place for the language server code in any
> existing modules. We should not commit it to qtdeclarative, as it would
> be useful for a number of other applications, too:
> It turned out that we need a language server protocol implementation not
> only for the QML language server, but also for the language client in Qt
> Creator. Qt Creator is using its own, manually written, client-only,
> implementation right now. We should strive to maintain only one Qt-based
> language server protocol implementation.
> Another idea is to add rich support for CSS in the style editor of the
> designer by using some existing CSS language server. More generally, we
> could make the integration of existing Qt text editing facilities with
> language support (auto-completion, diagnostics, etc) easier by providing
> a generic language server API.
The repository qt/qtlanguageserver has been created.
More information about the Development