Open1

VSCodeで、複数のrustプロジェクトを含むディレクトリを開いたらrust-analyzerが動かない時の対応

yunayuna

こんなディレクトリ構成で、vscodeでsample_rust_projectを開いたときに、

- sample_rust_project
  - sub_project1
    - Cargo.toml
  - sub_project2
    - Cargo.toml
  - sub_project3
    - Cargo.toml

rust-anlyzerで以下のようなエラーが出た。

[ERROR rust_analyzer::main_loop] FetchWorkspaceError:
rust-analyzer failed to load workspace: Failed to read Cargo metadata from Cargo.toml file /home/project/sample_rust_project/./Cargo.toml, Some(Version { major: 1, minor: 69, patch: 0 }): Failed to run `cd "/home/project/sample_rust_project" && "cargo" "metadata" "--format-version" "1" "--manifest-path" "/home/project/sample_rust_project/./Cargo.toml" "--filter-platform" "x86_64-unknown-linux-gnu"`: `cargo metadata` exited with an error: error: manifest path `/home/project/sample_rust_project/./Cargo.toml` does not exist

原因は、rust-anlyzerのextension settingsで、

setting.jsonにどのプロジェクトを対象にするかの指定がされてしまっていたこと。

"rust-analyzer.linkedProjects": [
        "./Cargo.toml"
    ],

いつ設定したのか記憶にないが、これを消せばOK