I just tried out eglot today, and I must say that I am very very impressed. However, like all software, the julia language server has a few quirks that need to be worked around. Long story short, I have two folders (not nested or anything):
-
folder1
- A git repository of a large julia project that I cloned. Startingeglot
here only works partially. Anything imported from other packages is a missing reference. -
folder2
- A folder I created with various scripts that I wrote for the project infolder1
. It contains aProject.toml
detailing the necessary julia environment for those scripts to work. Startingeglot
here works flawlessly. Both functions defined infolder1
as well as the other packagesfolder1
relies upon are referenced correctly.
Is there a way for me to start eglot
in folder2
but have it work as if I have started it in folder1
?
I believe one potential solution might be to tell Project.el
that the git repository in folder1
belongs to the project in folder2
, but I couldn’t find a command for doing so.
Alternatively, can I tell eglot
in folder1
to connect to the language server that was started by eglot
in folder2
?
edit: Hope the question makes sense, and apologies if not everything is phrased in the correct language. I’m pretty new to both eglot
and project.el
. Many thanks in advance for any help or hints!
I believe you should use
project-external-roots
for this.In the context of autoconf or CMake srcdir!=builddir builds, I would suggest that you choose the builddir as the project-root based on Makefile, and use
VPATH
from the Makefile to get the srcdir inproject-external-roots
.In your case,
folder2
would be the project-root, andfolder1
would be included inproject-external-roots
.