1

I have a Cargo workspace and want to use a WORKSPACE_HOME environment variable in the import path of local crates.

For instance: in $WORKSPACE_HOME/services/api/Cargo.toml

[dependencies]
...
addrbook = { path = "${WORKSPACE_HOME}/pkg/addrbook" }
...

I tried adding the environment value to VSCode settings.json (under rust-analyzer.cargo.extraEnv) and also tried creating a .cargo/config.toml as described here

[env]
WORKSPACE_HOME = { value = "", relative = true }

Unfortunately, cargo metadata keeps failing saying that it is unable to resolve the path

[ERROR rust_analyzer::lsp_utils] rust-analyzer failed to load workspace: Failed to read Cargo metadata from Cargo.toml file /Users/nickdecooman/Documents/Workspace/foobar/Cargo.toml, Some(Version { major: 1, minor: 63, patch: 0 }): Failed to run `"cargo" "metadata" "--format-version" "1" "--manifest-path" "/Users/nickdecooman/Documents/Workspace/foobar/Cargo.toml" "--filter-platform" "x86_64-apple-darwin"`: `cargo metadata` exited with an error: error: failed to load manifest for workspace member `/Users/nickdecooman/Documents/Workspace/foobar/services/api`

Caused by:
  failed to load manifest for dependency `addrbook`

Caused by:
  failed to read `/Users/nickdecooman/Documents/Workspace/foobar/services/api/${WORKSPACE_HOME}/pkg/addrbook/Cargo.toml`

Caused by:
  No such file or directory (os error 2)
nickdecooman
  • 153
  • 11

0 Answers0