It seems to me that there are plenty of examples of the Julia LSP not working right. I’m aware of VSCode and Sublime Text as not being quite able to make the LSP work. What I wonder is: does it work for Emacs users? One doesn’t hear about LSP problems from them. Is it that there are too few of them, or is it that it actually works on Emacs?
If you have any experience in that direction, it would be great to hear from you.
I use emacs with
eglot-jl and I occasionally see method call errors that seem bogus. Also if I make a change to a devved package, it doesn’t seem to reindex the package and I end up with missing reference errors. It’s on the same level as hitting an uncooperative machine with a hammer, but when that happens I just delete the symbol cache for that package and restart the language server, which seems to force reindexing. Probably I’m missing some nice way to handle that. But I don’t really have any other issues and I’m overall a satisfied and grateful customer.
So, that is interesting. You don’t see these issues: LSP "Missing reference" woes - #13 by PetrKryslUCSD?
Now that you mention it, it doesn’t seem to mark missing references in my test code, but find definition also doesn’t seem to work there. So that seems possibly related. Things seem to work fine as far as I can tell on my main package code in
src/, except for the issue with devved packages. What you posted looks like something I would see after substantial changes to a devved package.
Ok, I realize I don’t know anything about how the LSP works with these three editors: VSCode, Sublime Text, and Emacs.
Surprisingly, there are differences: For instance, as shown here, VSCode gives
while for the same repository Sublime Text gives
Why are the lists of missing symbols different? Do the implementations of LSP-Julia actually differ?
I do not have a working Emacs (I’m on Windows, which makes using Emacs an unpleasant experience),
but I rather suspect the picture would be something else yet again.
Would it be possible to find some clues in these differences on how to fix this?