--- Begin Message ---
Subject: |
29.4; Eglot ignores locally set configuration |
Date: |
Tue, 12 Nov 2024 22:49:18 +0200 |
Can be observed on both builtin (1.12.29) and the newest Eglot (1.17). I'm
starting Eglot manually, i have no hooks for Rust.
My repo structure:
/
...
|_pkgs/rsblocks/
|_.dir-locals.el
|_Cargo.toml
...
Since my Rust project isn't in the root of the repo, I need to specify its
location for rust-analyzer. Using .dir-locals.el with this content:
```lisp
((nil
. ((eglot-workspace-configuration
. (:rust-analyzer (:linkedProjects ["pkgs/rsblocks/Cargo.toml"]))))))
;; thank god it supports relative paths
```
does nothing: I see the variable value is set properly with `C-h v`, but Eglot
doesn't seem to recognize it (`eglot-show-workspace-configuration` shows
"null").
However, only when I set it globally, Eglot can apply the config to the
language server.
Expected behaviour: like described in the manual, Eglot should recognize local
values.
Possibly related report: https://github.com/joaotavora/eglot/issues/355
(unresolved)
--- End Message ---
--- Begin Message ---
Subject: |
Re: 29.4; Eglot ignores locally set configuration |
Date: |
Wed, 13 Nov 2024 10:10:02 +0000 |
On Wed, Nov 13, 2024 at 9:45 AM Acid Bong <acidbong@tilde.club> wrote:
> Woah, it actually works. Kinda weird that it requires .dir-locals.el to be in
> the
> Git root, not in the Cargo root.
It's weird, but only because having this particular project very deep inside
the only dir that Emacs knows how to automatically recognize as a
project is weird. Look into teaching project.el about "Cargo.toml" files,
it shouldn't be very hard.
You may or may not need "nested" projects, that's an orthogonal
issue. If you're sure you do need nested or complicated project
setups, look at [1])
João
[1]:
https://github.com/joaotavora/eglot/discussions/1337#discussioncomment-8853117
--- End Message ---