Bug 444206 - Feature Request: Language Server Support?
Summary: Feature Request: Language Server Support?
Status: REPORTED
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: Go (show other bugs)
Version: 5.6.2
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-21 16:59 UTC by Adam Jimerson
Modified: 2023-02-21 00:50 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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 :-)