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?

  • TehPers@beehaw.org
    link
    fedilink
    English
    arrow-up
    12
    ·
    edit-2
    2 months ago

    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 to iced_wgpu point to your local modified copy.

    • 5C5C5C@programming.dev
      link
      fedilink
      arrow-up
      8
      ·
      2 months ago

      OP really needs to heed this advice. Modifying things in the cache will cause breakages that will confuse the hell out of you.

      • DoodsOP
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        It was a quick test to see if I could replicate this fix. I undo all my changes after such sessions.

  • nous@programming.dev
    link
    fedilink
    English
    arrow-up
    9
    ·
    2 months ago

    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.

    • DoodsOP
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      cargo clean -p crate_name cleans the specified crate and only the specified crate, so dependencies don’t get touched.

  • calcopiritus@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    2 months ago

    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).

  • SorteKanin@feddit.dk
    link
    fedilink
    arrow-up
    2
    ·
    2 months ago

    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)

    This is not the way you should be doing this. Do not edit cargo’s downloaded source code, that’s just wrong.

    If you want to patch a dependency, use cargo’s specific features for doing that.

  • soulsource@discuss.tchncs.de
    link
    fedilink
    arrow-up
    1
    ·
    2 months ago

    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?