KDevelop problems suitable for a Ph.D. thesis
Milian Wolff
mail at milianw.de
Fri Sep 6 13:44:02 BST 2024
On Donnerstag, 5. September 2024 21:11:16 MESZ Sven Brauch wrote:
> Hi,
>
> On 03.09.24 13:18, Igor Kushnir wrote:
>
> > I have considered integrating Language Server Protocol (LSP).
>
>
> I also think this won't work, LSP doesn't really seem designed to fully
> back an IDE like KDevelop. Its data is in the server, and you query it
> over the protocol using high-level queries, which isn't really
> compatible with how almost everything in KDevelop is built.
>
> I wonder if it is worth exploring whether a different protocol could be
> created, closer to what the KDevelop data model works like. Essentially,
> move KDevelop's language plugins out-of-process (which might be a good
> idea anyways) and provide the data needed to fill the duchain over some
> protocol. Querying would remain in KDevelop itself. Compared to LSP,
> this approach would only outsource the "dumb" part of analysis to an
> external tool, and more of the "intelligence" would remain in the IDEs
> themselves, hopefully simplifying improvements.
My personal hunch is that we should be able to add a level of abstraction
between the needs of our various high level tasks and the low level
implementation in terms of the DUChain.
A language plugin would then get the API to do various things, such as code
completion, document outline, quick open, code browsing/references, ...
Our existing plugins would implement that through shared code that uses the
DUChain directly.
Then we could implement the new API also in terms of the LSP (or anything
else, really) to finally get better support for more languages.
Once that works, and the DUChain access is nicely encapsulated within
individual language plugins, we could also try to move them out-of-process to
better guard against crashes.
While at it, we could try to make the code base more async friendly e.g. via
QtCoro and C++20 and discuss the implications thereof on our large code base.
> Certainly not a weekend project, but you didn't ask for one as I
> understood ;)
:)
--
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20240906/48849317/attachment.sig>
More information about the KDevelop-devel
mailing list