はじめに
VSCodeでRustアプリを作成していると公式のrust-analyzerという拡張機能を使って開発することが多いのではないでしょうか?
この拡張機能では、コード補完や参照の検索などとても便利な機能を提供してくれます。
しかし、Tauriのようなフロントエンドが別言語でバックエンドがRustで作られるアプリでは、階層的に下記のようにRustプロジェクトが分かれるような形になると思います。
—— プロジェクトディレクトリ
|
|__ フロントディレクトリ
|
|__ バックエンドディレクトリ(Rust)
この時、VSCodeでプロジェクトのディレクトリを開くとRustのプロジェクトがrust-analyzerではRustのプロジェクトとは判定されずにコード補完など機能しません。
これはプロジェクトルート直下のCargo.tomlを見てRustのプロジェクトと判別してるように見えるのでおそらく機能しないのでしょう。
これだといちいちRustのディレクトリをVSCodeで別ウィンドウから開かなければならず、とても面倒になります。
対応方法
これに対応するため、まずはプロジェクトルートに.vscodeディレクトリを作成して、さらにsettings.jsonを作成しましょう。
下記のような階層になります。
—— プロジェクトディレクトリ
|
|__ .vscode
| |__ settings.json
|
|__ フロントディレクトリ
|
|__ バックエンドディレクトリ(Rust)
その中に、rust-analyzerの設定を追加しましょう
{
"rust-analyzer.linkedProjects": [
"src-tauri/Cargo.toml"
]
}
上記ではrust-analyzer.linkedProjectsにプロジェクトルートからのCargo.tomlがある相対パスを指定します。
こうすることによってVSCodeがRustプロジェクトを認識できるようになり、コード補完など様々な便利な機能がプロジェクトルートからVSCodeで開いても機能することができます。