Subject: bug#65520: 30.0.50; [FR Xref] Project-wide operations

From: Dmitry Gutov <[email-masked]>
Date: Sun, 27 Aug 2023 03:32:22 +0300

On 26/08/2023 08:31, Gerd Möllmann wrote:

>>>> No such capability at the moment, but we indeed have an ELPA package
>>>> xref-union which implements the "merging" feature that has been
>>>> requested in the past.
>>> Thanks also to Visuwesh for pointing me to xref-union.
>>
>> Have you tried it?
> 
> Not yet.  I'm still hoping someone else (tm) builds something, so that I
> don't have to do anything.

xref-union is a thing that somebody has already built. Either you try it 
and like it, or you can come back with more targeted feedback.

Which we could then use to improve either it, or the core xref, of course.

>> Indeed, it's also a question of mental model, which we might have
>> different. When I was saying "different projects" and "register
>> globally", I was thinking of being able to jump to Emacs' sources and
>> hack them from anywhere: from any other project I might be working on
>> at the moment.
>>
>> If we're talking about Emacs development only, a "combined" backend
>> might make more sense (see the other email).
> 
> No, I didn't mean Emacs development specifically, although that's
> probably the only things I'd use such a facility for.
> 
> The whole thing would be like in some IDEs, with their "usual" idea of
> project.  I'm not 100% sure, but I think I've seen vscode being used
> with different languages (JS, CSS, Java...) and offering such
> project-wide stuff.

IIRC the LSP protocol includes project type detection, and so Eglot can 
automatically spin up several language servers already.

Without the addition of a similar registry, which all backends would 
have to plug into, the best we could do is loop across the open project 
buffers and see what backends exist there. But that would e.g. miss 
Elisp if you haven't opened any .el files in the current session yet.