Subject: 29.0.90; Eglot: reuse server when visiting external files

From: Filippo Argiolas <[email-masked]>
Date: Fri, 14 Jul 2023 07:51:28 +0200

Hi,

I'm working on a couple of projects each with their main root and all
sharing some common code in an external root dir.

Each project has a compile_commands.json that knows how to compile the
external shared code. External root has no compile db and doesn't know
how to compile itself.

Eglot currently allows me to jump to external files using xref while
keeping the current active running server by setting
eglot-extend-to-xref.

Project.el allows me to visit external files using project-or-external-
functions by defining project-external-roots on my custom backend or
project-vc-external-roots-functions with the default backend.

It would be great if I configure Eglot to not switch to a new server
when visiting an external file in a similar way it does with xref.

Any pointer to achieve something like this with current project.el and
eglot code would also be great. Maybe with a custom project backend?

Best regards,
Filippo