Bug 444206

Summary: Feature Request: Language Server Support?
Product: [Applications] kdevelop Reporter: Adam Jimerson <vendion>
Component: Language Support: GoAssignee: kdevelop-bugs-null
Status: REPORTED ---    
Severity: normal CC: jonathan.verner, lengau
Priority: NOR    
Version First Reported In: 5.6.2   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Adam Jimerson 2021-10-21 16:59:50 UTC
Currently, Kate has a plugin for Language Server Protocol which allows it to work with various tools for different languages, and the use of LSP seems to be rapidly growing. It would be nice if KDevelop also supported LSP to allow it to work with other programming languages like Go which is currently missing outside of the currently deprecated go plugin for KDevelop.

I don't know if current LSP implementations alone would be enough for the full IDE experience, but it would be a start.
Comment 1 Jonathan Verner 2021-11-03 21:59:35 UTC
(In reply to Adam Jimerson from comment #0)
> Currently, Kate has a plugin for Language Server Protocol which allows it to
> work with various tools for different languages, and the use of LSP seems to
> be rapidly growing. It would be nice if KDevelop also supported LSP to allow
> it to work with other programming languages like Go which is currently
> missing outside of the currently deprecated go plugin for KDevelop.
> 
> I don't know if current LSP implementations alone would be enough for the
> full IDE experience, but it would be a start.

Last time I looked at this, the LSP protocol did not provide enough information for kdevelop's
code understanding. This might have changed recently (esp. with the introduction of "semantic token"
support). 

However, this is not as simple as taking Kate's plugin. We would need to use the LSP server to build
a DUChain (definition-use chain), which is what KDevelop uses for all its code intelligence stuff. Its not
clear whether this would be sufficiently performant. I have long thought about this, but it is a lot of 
work... I might get eventually do some experiments, but don't hold your breath.

Also, merge requests at https://invent.kde.org/kdevelop are more than welcome :-)