Subject: Re: bug#58790: Eglot URI parsing bug when using clojure-lsp server

From: Danny Freeman <[email-masked]>
Date: Wed, 26 Oct 2022 15:50:02 -0400

Carrying on a conversation from github

 > > Does eglot (or maybe project.el) have a mechanism for adding an
 > > external directory to the current project? I think that would be
 > > what I need to do this automatically.

 > I think project.el does. But then again this seems like a completely
 > different approach and seems to negate the need for the patches you
 > sent to Eglot.

The patches would still be necessary. The patches simply make eglot
correctly parse the "jar:" scheme URIs from lsp servers that use them.
It doesn't have much to do with how emacs is handling the file paths
once it is parsed.

 > In my mind, project.el should support adding jars as collections of
 > source files just like it supports adding directories as collections
 > of source files. Many years ago, Eclipse did this. You could add a jar
 > as a library or a file as a library: it's just a different
 > implementation detail.

Maybe so, it's unclear in my mind how that would work with lsp servers.
Without the files being extracted somewhere would they be able to
perform any analysis on them? Right now I don't think clojure-lsp is
capable, and I doubt other lsp servers are as well.

I think maybe there is some way I could extend the
`project-external-roots` after I've extracted the file somewhere to make
project (and thus eglot) consider the newly extracted to directory part
of the original project.

Either way, I think that is still work to do separately outside of eglot
right now. I'm sort of using that jarchive package I wrote as a place to
experiment with ideas like this.