Rust の開発環境を構築する(Visual Studio Code)

最近 Rust の環境を再構築したので、そのメモ。 とりあえず、Visual Studio Code(以下、VSCode) を使用して

  • コード補完
  • 定義元への移動
  • シンボルへの移動
  • ソースの自動フォーマット
  • デバッグ

ができるようになった。 (OS は macOS Sierra で、XCode のバージョンは 8.1)

以下、構築手順。

Rust をインストール

まずは、Rust のツールチェーンマネージャーの、rustup をインストール。 下記のコマンドを実行し、インストールする。 $ curl https://sh.rustup.rs -sSf | sh

インストール後は、PATHに以下を追加。

$HOME/.cargo/bin

次に適当なプロジェクトを作成し、下記のコマンドを実行し、rust の nightly version を使用するように設定する。

$ rustup override set nightly

後述する racer で Rust のソースを参照するため、インストールした Rust のソースをダウンロードする。

$ rustup component add rust-src

上記のコマンドを実行すると、 `rustc --print sysroot`/lib/rustlib/src/rust/src のディレクトリにソースがダウンロードされる。

次に、以下のツールをインストールする。 それぞれ、補完、フォーマット、シンボルへの移動で使用する。 $ cargo install racer $ cargo install rustfmt $ cargo install rustsym

VSCode の設定

以下のプラグインをインストールした。 * Rusty Code * LLDB Debugger

Rusty Code の設定

.vscode/setting.json に以下を記述する。 { "rust.rustLangSrcPath": “<Rust のソースコードの場所>”, "rust.formatOnSave": true, "rust.checkOnSave": true, "rust.checkWith": "build" }

rust.rustLangSrcPathは使用している Rust のソースの場所を指定する。これは、rustup component add rust-src でダウンロードしたパスを指定する。これを設定することにより、F12 キーで定義元にジャンプできるようになる。

また、保存した際に自動で rustfmt で整形して欲しいので、rust.formatOnSave を true にした。 また、保存時には、ビルドもしたいので、rust.checkOnSaverust.checkWith の設定もした。

シンボルへの移動は、macOS の場合、cmd + shift + O で移動できる。

LLDB Debugger の設定

次にデバッグ環境を構築する。 .vscode/launch.json に以下を記述する。 { "version": "0.2.0", "configurations": [ { "name": "Debug", "type": "lldb", "request": "launch", "sourceLanguages": ["rust"], "program": "${workspaceRoot}/target/debug/<your program>”, "args": [] } ] } program の属性の 部分にはコンパイルしたものの名前を指定する。 注意点としては、sourceLanguages の属性を追加し、Rust を指定する。

デバッガを開始するためには、デバッグの画面を表示し、F5 を押すとデバッグを開始する。あとは、F9 でブレイクポイントを設定できたり、F10 でステップオーバーなどが実行できたりするので、デバッグ出来るようになる。

実際にデバッガを起動すると以下のようになる。watch なんかも普通に使えるし、変数をマウスオーバーすると内容が確認できたりする。

debug-vscode

感想

VSCode なかなか良い。 特に、Rust のデバッグ環境は他の環境よりもいいような気がする。 他の環境だと、上手く動かなかったりしたので。。。 LLDB が Rust に対応したのが大きいのかも。

comments powered by Disqus