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