RustとVisual Studio Codeを連携させる方法!開発環境構築の完全ガイド
生徒
「Rustの開発環境を作りたいんですが、Visual Studio Codeと連携させるにはどうすればいいんですか?」
先生
「Visual Studio Code(VS Code)は、Rustの開発にとても相性が良いエディタです。rust-analyzerという拡張機能を使うことで、コード補完やエラーチェック、リファクタリングなどの機能が使えるようになります。」
生徒
「Rustのインストールから始めないといけないですよね?」
先生
「その通りです。まずはRustツールチェーンをインストールして、次にVS Codeの設定を行います。順番に見ていきましょう!」
1. Rustのインストール方法
RustとVisual Studio Codeを連携させるには、まずRust本体をインストールする必要があります。Rustの公式インストーラーであるrustupを使うことで、Rustコンパイラ(rustc)やパッケージマネージャー(Cargo)を一括でインストールできます。
Windowsの場合は、Rust公式サイト(https://www.rust-lang.org/)からrustup-init.exeをダウンロードして実行します。macOSやLinuxの場合は、ターミナルで次のコマンドを実行してください。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
インストールが完了したら、ターミナルやコマンドプロンプトを再起動して、次のコマンドでRustが正しくインストールされているか確認しましょう。
rustc --version
cargo --version
バージョン番号が表示されれば、Rustツールチェーンのインストールは成功です。rustupを使うことで、Rustのバージョン管理やアップデートも簡単に行えます。
2. Visual Studio Codeのインストールと初期設定
次に、Visual Studio Codeをインストールします。VS Codeは、Microsoft が提供する無料のオープンソースエディタで、豊富な拡張機能により多くのプログラミング言語に対応しています。
VS Code公式サイト(https://code.visualstudio.com/)から、お使いのOSに対応したインストーラーをダウンロードして実行してください。Windowsの場合は.exeファイル、macOSの場合は.dmgファイルをインストールします。
インストールが完了したらVS Codeを起動し、日本語化したい場合はJapanese Language Pack for Visual Studio Codeという拡張機能をインストールすると便利です。拡張機能パネル(サイドバーの四角いアイコン)から「Japanese」と検索してインストールできます。
VS Codeの設定は、Ctrl + ,(macOSではCmd + ,)で開ける設定画面から、フォントサイズやテーマなどを自分好みにカスタマイズできます。Rust開発に特化した設定は、次のステップで行います。
3. rust-analyzer拡張機能のインストール
VS CodeでRust開発を快適に行うために、rust-analyzerという拡張機能をインストールします。rust-analyzerは、Rustの公式が推奨するLanguage Server Protocol(LSP)実装で、インテリセンス、コード補完、エラー検出、自動フォーマットなどの機能を提供します。
VS Codeの拡張機能パネルを開き、「rust-analyzer」と検索してインストールボタンをクリックしてください。インストールが完了すると、Rustファイル(.rs)を開いた際に自動的にrust-analyzerが起動し、コードの解析を開始します。
rust-analyzerは、Cargo.tomlファイルがあるプロジェクトディレクトリを認識し、プロジェクト全体の依存関係を解析します。初回起動時は、インデックス作成に少し時間がかかる場合がありますが、その後は高速に動作します。
この拡張機能により、変数や関数にマウスカーソルを合わせると型情報やドキュメントが表示されたり、Ctrl + Spaceでコード補完候補が表示されるようになります。Rust開発には必須の拡張機能です。
4. 最初のRustプロジェクトを作成する
Rustの開発環境が整ったら、実際にプロジェクトを作成してみましょう。VS Codeのターミナル(Ctrl + `で表示)を開き、プロジェクトを作成したいディレクトリに移動します。
Cargoを使って新しいプロジェクトを作成するには、次のコマンドを実行します。
cargo new hello_rust
cd hello_rust
code .
このコマンドで、hello_rustという名前の新しいRustプロジェクトが作成され、VS Codeで開かれます。プロジェクトディレクトリには、Cargo.toml(プロジェクト設定ファイル)とsrc/main.rs(メインプログラム)が自動生成されます。
src/main.rsを開くと、次のようなデフォルトのコードが記述されています。
fn main() {
println!("Hello, world!");
}
このコードは、Hello, world!という文字列を出力するシンプルなプログラムです。rust-analyzerが正常に動作していれば、println!マクロにマウスを合わせると、ドキュメントが表示されるはずです。
5. Rustプログラムのビルドと実行
作成したRustプログラムをビルドして実行してみましょう。VS Codeのターミナルで次のコマンドを実行します。
cargo run
cargo runコマンドは、プロジェクトをビルド(コンパイル)して、生成された実行ファイルを自動的に実行します。初回実行時は依存関係のダウンロードとコンパイルに時間がかかりますが、次回以降は変更のあったファイルのみがコンパイルされるため高速です。
実行すると、次のような出力が表示されます。
Compiling hello_rust v0.1.0
Finished dev [unoptimized + debuginfo] target(s) in 0.50s
Running `target/debug/hello_rust`
Hello, world!
ビルドのみを行いたい場合はcargo build、リリース版(最適化された実行ファイル)を作成したい場合はcargo build --releaseを使用します。開発中はcargo runを使うのが便利です。
6. コード補完とエラーチェックの動作確認
rust-analyzerの機能を実際に確認してみましょう。src/main.rsに、簡単な変数宣言と計算処理を追加してみます。
fn main() {
let x = 10;
let y = 20;
let sum = x + y;
println!("合計は{}です", sum);
}
このコードを入力する際、letキーワードや変数名を入力すると、rust-analyzerが自動的にコード補完候補を表示してくれます。また、println!マクロの引数部分では、フォーマット文字列の構文チェックもリアルタイムで行われます。
意図的にエラーを含むコードを書いてみると、rust-analyzerがどのように動作するか確認できます。例えば、型の不一致や未定義の変数を使用すると、赤い波線でエラーが表示され、マウスを合わせるとエラーメッセージが確認できます。
rust-analyzerは、コンパイラと同じレベルの静的解析を行うため、コードを実行する前に多くのエラーを発見できます。これにより、開発効率が大幅に向上します。
7. デバッグ機能の設定方法
VS Codeでは、デバッガを使ってRustプログラムをステップ実行したり、変数の値を確認したりできます。デバッグ機能を使うには、CodeLLDBまたはC/C++拡張機能をインストールする必要があります。
拡張機能パネルで「CodeLLDB」と検索してインストールしてください。インストール後、VS Codeのデバッグパネル(サイドバーの虫のようなアイコン)を開き、「launch.jsonファイルを作成します」をクリックします。
表示されるテンプレート選択で「LLDB」を選択すると、.vscode/launch.jsonファイルが作成されます。デフォルト設定のままでも動作しますが、プログラム名を現在のプロジェクト名に合わせて調整することをおすすめします。
デバッグを開始するには、コードの行番号の左側をクリックしてブレークポイントを設定し、F5キーを押すか、デバッグパネルの「デバッグの開始」ボタンをクリックします。プログラムがブレークポイントで停止し、変数の値を確認したり、ステップ実行できるようになります。
8. よく使うrust-analyzerの設定カスタマイズ
rust-analyzerは、デフォルト設定でも十分に使えますが、より快適な開発のためにいくつかの設定をカスタマイズできます。VS Codeの設定画面(Ctrl + ,)を開き、「rust-analyzer」と検索すると、関連する設定項目が表示されます。
例えば、rust-analyzer.checkOnSaveを有効にすると、ファイル保存時に自動的にcargo checkが実行され、エラーチェックが行われます。また、rust-analyzer.cargo.featuresで、特定のCargoフィーチャーを有効化することもできます。
コードフォーマットに関しては、rustfmtが標準で使用されます。ファイル保存時に自動フォーマットを行いたい場合は、VS Codeの設定で「Editor: Format On Save」を有効にしてください。これにより、コードスタイルが自動的に整えられ、チーム開発での一貫性が保たれます。
インレイヒント(型情報などをコード中に表示する機能)の表示・非表示も設定できます。rust-analyzer.inlayHints.typeHintsなどの項目で、必要な情報だけを表示するように調整できます。
9. 外部クレートを使った開発の流れ
Rustでは、Crates.ioという公式のパッケージレジストリから、様々なクレート(ライブラリ)を利用できます。例として、乱数生成ライブラリのrandクレートを使ってみましょう。
Cargo.tomlファイルを開き、[dependencies]セクションに次のように追加します。
[dependencies]
rand = "0.8"
保存すると、rust-analyzerが自動的に依存関係を認識し、次回のビルド時にrandクレートがダウンロードされます。src/main.rsで乱数を生成するコードを書いてみましょう。
use rand::Rng;
fn main() {
let mut rng = rand::thread_rng();
let random_number = rng.gen_range(1..=100);
println!("ランダムな数値: {}", random_number);
}
このコードでは、rand::Rngトレイトをインポートし、1から100の範囲でランダムな整数を生成しています。use文を入力する際、rust-analyzerが自動的にインポート候補を提示してくれるため、正確なモジュールパスを覚えていなくても開発できます。
cargo runで実行すると、毎回異なるランダムな数値が表示されます。このように、Rustのエコシステムにある豊富なクレートを活用することで、効率的に開発を進められます。
10. その他の便利な拡張機能とツール
rust-analyzer以外にも、Rust開発を快適にする拡張機能がいくつかあります。Even Better TOMLは、Cargo.tomlファイルの編集をサポートする拡張機能で、構文ハイライトやバリデーションを提供します。
crates拡張機能をインストールすると、Cargo.toml内のクレート名にマウスを合わせた際に、最新バージョン情報が表示されます。また、古いバージョンを使用している場合は警告が表示され、更新を促してくれます。
Gitを使ったバージョン管理を行う場合は、GitLens拡張機能が便利です。コードの各行にコミット情報が表示され、変更履歴を簡単に追跡できます。Rustプロジェクトでは、.gitignoreファイルにビルド成果物ディレクトリ(target/)を追加しておくことを忘れないようにしましょう。
また、cargo-editやcargo-watchといったCargoの拡張ツールをインストールすると、依存関係の追加やファイル変更時の自動ビルドなど、さらに開発効率を高められます。これらのツールは、ターミナルでcargo installコマンドを使ってインストールできます。
VS Codeのワークスペース機能を使えば、複数のRustプロジェクトを一つのウィンドウで管理することもできます。プロジェクトごとに異なる設定を適用したい場合は、各プロジェクトディレクトリに.vscodeフォルダを作成して個別に設定できます。