Re: semantic-symref question

Eric Ludlam <[email protected]> Mon, 25 Nov 2019 09:56:35 -0500
Newsgroups gmane.emacs.semantic
Message-ID <[email protected]>
On 11/25/19 9:22 AM, Dmitry Gutov wrote:
> Hi Eric,
> 
> On 23.11.2019 15:32, Eric Ludlam wrote:
>> This would be a big win for CEDET, as these backends are becoming 
>> quite popular, and would let people use CEDET tools as the interface
> 
> I'm curious. Are there particular features that one would want to use in 
> CEDET on top of LSP? Because I've always thought of CEDET as a way to 
> get roughly same capabilities as LSP provides (completion, navigation, 
> documentation display).

I think of CEDET as a providing a generic interface to language 
services, in addition to a base implementation of those language 
services.  Ideally, if someone wants to write a nice high-level tool, 
like code navigation (eassist), completion (company), or a refactoring 
tool, it should be possible to write it once against CEDET.  Then when 
some new tool comes along (like lsp) that does something new (support a 
new language, faster queries, better accuracy) the tool author need do 
nothing if that tool is integrated as a back-end for CEDET.

CEDET will always provide a base all-emacs implementation, but it has 
scaling issues.  When an external tool exists that can handle the 
scaling issues, it would provide a nice back-end for CEDET to get the 
same benefit.  Those external tools (like lsp) will often have large 
user bases that extend past Emacs, which means Emacs would also gain the 
benefits that larger user group can provide.

There are several parts of CEDET that are better than most generic 
tools.  This is why the back-ends often just help with code analytics 
that haven't been brought into Emacs' workspace yet.  Once a particular 
file is identified, the core CEDET functionality takes over, and the 
additional data is extracted an used.

So, to your original question, what would you use from CEDET on top of 
lsp?  There are a lot of small modes and conveniences, such as 
decorations modes, include navigation, bookmarks, and code gen with 
srecode.  There are a few other tools on top of CEDET that could also 
provide benefits.  When a new tools is built on something like global, 
idutils, rtags, etc, then it is restricted to that tool.  When the core 
tool starts to die, then those features in Emacs are lost.

Of course, this all depends on individuals volunteering to create CEDET 
backends when new stuff shows up.

Does that make sense?
Eric