Rust開発を快適にする
rust-analyzer拡張機能

関連記事

1. rust-analyzerって何?

Rustでプログラムを作ることになりました。
VSCodeを入れて、Rustのコンパイラもインストール済み。
さあ開発を始めようと思ったとき、「rust-analyzerという拡張機能を入れた方がいい」というアドバイスをもらったんです。

rust-analyzerは、Rustのコードを書くときに助けてくれるツールです。
VSCodeの拡張機能として動きます。

例えば、文章を書くときのスペルチェック機能を想像してください。
間違った単語を入力すると赤い波線が出て、「ここ、間違ってますよ」と教えてくれますよね。
rust-analyzerは、それのプログラム版です。

2. インストールしてみる

インストールは簡単でした。
VSCodeの拡張機能タブ(⌘+Shift+X)を開いて、「rust-analyzer」で検索。

2. インストールしてみる

出てきた「rust-analyzer」(rust-lang公式のもの)をクリックしてインストールボタンを押すだけ。

2. インストールしてみる

インストールが終わると、Rustのファイルを開いたときに自動で動き始めます。

3. 便利な機能

3.1. エラーがすぐわかる

一番助かったのがこれです。
コードを書いて保存すると、間違っている部分に赤い波線が出ます。

Rustは型に厳しい言語なので、ちょっとした間違いでもコンパイルエラーになります。
rust-analyzerがないと、cargo buildというコマンドを実行して初めてエラーがわかります。
でもrust-analyzerがあれば、保存した瞬間にエラーが見えるんです。

しかも、波線にカーソルを合わせると、何が問題なのか説明が出ます。
「この型は合いません」とか「この変数は使われていません」とか。
コンパイルを待たずにエラーがわかるので、開発のテンポが全然違います。

3.2. 自動補完がすごく賢い

変数名や関数名を途中まで入力すると、候補がずらっと出てきます。
これ自体は他の言語でもよくある機能ですね。

でもrust-analyzerの補完は、ただの候補リストじゃありません。その変数が持っているメソッド(関数)や、使えるフィールド(データ)まで正確に表示してくれます。

3.3. 定義元にすぐ飛べる

コードが大きくなってくると、「この関数ってどこで定義したんだっけ?」と探すことが増えます。

rust-analyzerを使うと、関数名や変数名を⌘+クリック(Macの場合)するだけで、その定義が書いてある場所にジャンプできます。
別のファイルでもかまいません。

戻るときはVSCodeの「戻る」ボタン(または⌘+マイナス)を押すだけ。
コードの中を行ったり来たりするのがとても楽になりました。

3.4. 型が見える

Rustは型を明示しなくても、コンパイラが推論してくれます。
例えばlet x = 10;と書けば、xは自動的に整数型になります。

便利な機能ですが、時々「この変数って何型なんだっけ?」と気になることがあります。
rust-analyzerがあれば、変数にマウスを乗せるだけで型が表示されます。
i32(32ビット整数)とか、Vec<Creature>(Creature型のベクター)とか。

これがあると、型を間違える心配がぐっと減ります。

3.5. 自動修正の提案

コードを書いていると、💡(電球マーク)が出ることがあります。
これをクリックすると、「こう直したらどうですか?」という提案が出ます。

例えば、関数を使おうとして「この関数は見つかりません」というエラーが出たとき。
💡をクリックすると「use文を追加しますか?」と聞いてくれて、必要なインポート文を自動で書いてくれます。

これもかなり時間の節約になります。

4. 気づいたこと

rust-analyzerを使ってみて気づいたのは、これがあることで「Rustを学びながら書く」のが楽になるということです。

Rustは難しい言語だと言われます。
確かに、借用(データの貸し借り)とか所有権(データの持ち主)とか、独特の概念があります。
でもrust-analyzerがあると、間違えたときにすぐ「ここが違う」と教えてくれるので、試行錯誤しながら学べます。

これからRustで何かを作ろうと思っている人は、まずrust-analyzerを入れることから始めてください。開発体験が全然違います。