rust-analyzer: Manually Reloading Workspace

Waken 2022-10-01

rust-analyzer wasn’t picking up my Cargo.toml changes. Had to reload manually.

The Problem

Modified Cargo.toml to add a new dependency. rust-analyzer didn’t notice. LSP features (autocomplete, goto definition) didn’t work for the new crate.

Why It Happens

rust-analyzer doesn’t actively watch for file changes (open issue).

It loads the workspace once at startup. After that, you’re on your own.

The Solution

In Emacs with LSP mode:

M-x lsp-rust-analyzer-reload-workspace

rust-analyzer re-reads Cargo.toml and rebuilds its index.

For Other Editors

VS Code:

  • Command palette → “rust-analyzer: Reload Workspace”

Vim/Neovim with coc-rust-analyzer:

:CocCommand rust-analyzer.reloadWorkspace

Generic LSP:

  • Restart the LSP server

When to Reload

Reload after:

  • Adding/removing dependencies in Cargo.toml
  • Changing features
  • Adding new workspace members
  • Modifying build.rs

Basically, any change that affects project structure.

Alternative

Just restart your editor. Slower, but guaranteed to work.

But for quick iterations, manual reload is faster.