この記事は、Ateam Group U-30 のカレンダー | Advent Calendar 2022 - Qiita の 3 日目の記事です。
はじめに
Rust の練習がてらにrustlingsをやっているのですが、rust-analyzerの補完や型チェックがほしいと思ったので、VS Code で Cargo プロジェクト以外でも使えないか調べてみました。
結論
rust-project.json
を以下のいずれかの方法で設定することで使える様です。
- 対象のプロジェクトのルートに
rust-project.json
ファイルを配置する - VS Code の
rust-analyzer.linkedProjects
の設定に、rust-project.json
ファイルへのパスを記述する - VS Code の
rust-analyzer.linkedProjects
の設定に、直接rust-project.json
ファイルの中身を記述する
rust-project.json
ファイルは以下のような内容を記載しておきます。
{
"sysroot_src": "/home/ohakutsu/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library",
"crates": [
{
"root_module": "src/main.rs",
"edition": "2021",
"deps": []
}
]
}
sysroot_src
は自身の環境に合わせて設定をする必要があります。
また、各設定項目に関しては、Non-Cargo Based Projects - User Manual に詳しく載っています。
上記の設定を行うことで、rust-analyzer が動くようになりました。
さいごに
間違っている点などありましたら、ぜひコメント・編集リクエストをいただけると勉強になります!
Refs
- Non-Cargo Based Projects - User Manual
- Feature Req: Add support for Rust files without Cargo.toml or valid cargo workspaces · Issue #4477 · rust-lang/rust-analyzer
- rust-analyzer/rust-project.json-example - GitHub
ぜひ、Ateam Group U-30 のカレンダー | Advent Calendar 2022 - Qiita を購読設定して、明日の記事もご覧いただけると嬉しいです。