Open willtunnels opened 1 year ago
same here. I have a tests/ directory with a lot of small, non-rust files, that stops rust-analyzer from being able to resolve symbols (no idea why). If I move the directory out of the way, RA works. But no form of excludeDirs I've found has any effect.
I'm using vim-lsp, e.g.
if executable('rust-analyzer')
au User lsp_setup call lsp#register_server({
\ 'name': 'Rust Language Server',
\ 'cmd': {server_info->['rust-analyzer']},
\ 'root_uri':{server_info->lsp#utils#get_default_root_uri()},
\ 'initialization_options': { "rust-analyzer.files.excludeDirs": [ "tests", "vendor" ] },
\ 'whitelist': ['rust'],
\ })
endif
with no effect.
I have the same issue with non-rust files I use rust syntax highlighting for. They aren't in src/ and don't initially get checked but as soon as I open one in the editor rust-analyzer generates lot's of syntax errors. excludeDirs does not seem to have any effect at all.
I am having the same issue.
This sort of works for me:
if executable('rust-analyzer')
au User lsp_setup call lsp#register_server({
\ 'name': 'Rust Language Server',
\ 'cmd': {server_info->['rust-analyzer']},
\ 'whitelist': ['rust'],
\ 'initialization_options': {
\ 'files': {
\ 'excludeDirs': ['tests', 'vendor'],
\ }
\ }
\ })
endif
$ rust-analyzer --version
rust-analyzer 1.72.1 (d5c2e9c 2023-09-13)
This does seem to ignore tests/ dir (which happens to basically completely break rust-analyzer, and has no rust sources in it), but rust-analyzer still looks at vendor - presumably because it's referenced from src/
I also have this problem. It would be nice if rust-analyzer can also just use entries from the .gitignore
.
I'm having the same problem. It would be nice if files are also supported
same problem. Do you have any suggestions for this?
Same problem here.
Any workaround for this?
Does anyone have a good workaround for this? I'm using a Nix Flake to define my development environment, and although I have added .direnv
to excludeDirs
rust analyzer continues to scan .direnv
, and subsequently the entire nix store. It essentially never finishes.
Does anyone have a good workaround for this? I'm using a Nix Flake to define my development environment, and although I have added
.direnv
toexcludeDirs
rust analyzer continues to scan.direnv
, and subsequently the entire nix store. It essentially never finishes.
Take a look at the approach I am using to make this work.
See my comments here https://github.com/rust-lang/rust-analyzer/issues/3113#issuecomment-2351704248
Does anyone have a good workaround for this? I'm using a Nix Flake to define my development environment, and although I have added
.direnv
toexcludeDirs
rust analyzer continues to scan.direnv
, and subsequently the entire nix store. It essentially never finishes.Take a look at the approach I am using to make this work.
See my comments here #3113 (comment)
I saw this yes, I have added the folders to the excludeDirs. I'm using neovim, so this is slightly different, but the expected effect is the same.
opts = {
default_settings = {
["rust-analyzer"] = {
files = {
excludeDirs = {
".cargo",
".direnv",
".git",
"target",
},
},
},
}
Before you open the editor, try running 'cargo clean'.
Before you open the editor, try running 'cargo clean'.
I have also tried doing this and it doesn't seem to change the situation.
However I noticed that after cleaning, the progress indicator displayed by rust-analyzer does not reset. For the specific project I am testing with it displays 42/45: .direnv
before and after cleaning. Does that mean that the clean command is somehow not resetting the cache in the way it should? I also tried manually deleting the target
folder but the behaviour persists.
This bug is preventing working around another bug:
https://github.com/rust-lang/rust-analyzer/issues/8161
In my case, flatpak creates temporary folders containing symbolic links which then breaks RA but can't be excluded.
Does it also mean RA is wandering around horrendous folders like node_modules?
This is still an issue for me, but I am currently using a simple fix which I'm posting here in case it helps somebody else.
I couldn't get rust-analyzer
to stop scanning the .direnv
folder, so in the end I placed my entire crate in a subfolder one level below the flake.nix
file and .direnv
folder. I did this using cranes guide to placing a Cargo.toml
in a non-standard location.
This has stopped the problem for me, as the .direnv
folder is no longer in the workspace root. Not an ideal solution but at least something actionable.
I was actually having this issue due to using rustaceanvim
plugin and it fixed itself when I switched to the rust-analyzer
lsp plugin instead. Here is my config for both rustaceanvim and nvim-lspconfig.rust_analyzer using nixvim.
Enabling the rustaceanvim
plugin makes it also search the .direnv
folder even though it's in the excludeDirs
rust-analyzer.files.excludeDirs
does not appear to be working. Issue #7755 discussed this awhile ago and was closed, but the feature is still not working for me. I am using rust-analyzer 0.4.1501-standalone with rustc 1.68.2 in VSCode.It could be that I misunderstand how to specify directories. My project layout is
and my rust analyzer setting is
I tried also setting
files.watcherExclude
, as suggested in the documentation, but no luck.