from Doods@infosec.pub to rust@programming.dev on 04 Oct 2024 07:44
https://infosec.pub/post/18414382
I was using Iced as a dependency, but wanted to tweak its source code for some reason, so I jumped into the folder where cargo downloads dependencies, and went into iced_wgpu 13.5 (I think that’s the version).
I could make a change, then run
cargo clean -p iced_wgpu && cargo check
in my other project for instant feedback, yet it took rust_analyzer at least 5 whole minutes to stop hallucinating.
Can I disable some functionality of rust_analyzer
? I only use it for jump-to-definition, linting and syntax highlighting; I don’t even use autocomplete.
Setup:
-
Desktop that thermally throttles only when both the IGPU and the CPU are under full load, and is cool otherwise.
-
CPU: Intel I5-7500
-
RAM: 8 GiB DDR-4
-
Editor: NVIM v0.11.0-dev | Build type: RelWithDebInfo | LuaJIT 2.1.0-beta3 (I had the same issue with other versions as well).
TLDR
What can I disable in rust_analyzer to boost performance while maintaining jump-to-definition, linting and syntax-highlighting, or what can I do to boost rust_analyzer for big projects in general?
threaded - newest
only thing that i can think off is that your ra install could be out of date? this sounds like some old ra bugs?
if its not tat, idk
rust-analyzer I believe will compile all the deps the first time it runs. This will take some time but after that it should be fast. If you run a cargo clean that will wipe everything and you will have to wait again. So dont do that. clean should be something you run sparingly not before every compile.
Rather than modifying your dependencies in the cache directory (which is really not a good idea), consider cloning the repo directly. You can use a patch entry in your
Cargo.toml
to have all references toiced_wgpu
point to your local modified copy.OP really needs to heed this advice. Modifying things in the cache will cause breakages that will confuse the hell out of you.
You don’t need to not use ra. Using ra-multiplex should improve your ra experience significantly.
With nvim, you can use
vim.lsp.rpc.connect()
in your setup.No solution, but I have a similar issue with the higher crate.
There the /prelude/src/lib.rs file lets rust-analyzer lose its mind and allocate gigabytes upon gigabytes of memory, even though the file compiles just fine and nearly instantaneous…
I think this has something to do with recursive macros. Doesn’t iced also have such? I have faint memories of a column! macro?
Not related to your question at all, but:
I don’t recommend editing the source code from cargo’s files. Instead, the correct way to modify a dependency would be making a fork and using it as a gift dependency (or path dependency, which is even easier).