100日後にRustをちょっと知ってる人になる: [Day 3]コードエディタどうする?
Day 3 のテーマ
コード開発といえば、統合開発環境 (IDE) やコードエディタを使わない人はほとんどいないと思います。ぼく自身、Java や Kotlin を書くときには IntelliJ IDEA を長らく愛用し続けています。編集対象の言語に対応したエディタを使うメリットは、その言語の補完をしてくれたり、テスト支援をしてくれたりなど、便利な機能を使うことができるので捗ります。
使わない手はないので、Day 3 では、Rust を開発できる編集環境を準備したいと思っています。
Day 2 の振り返り: コードエディタ
Day 2 では、Rust 公式ドキュメントが紹介しているエディタ一覧を見てみました。
以下のエディタが掲載されていました。
全部試してみたいところですけど、手元の Mac にインストールしているエディタが2つ含まれていたので、それを使ってみたいと思います。
インストール済だったのはこちら:
-
Visual Studio Code
-
IntelliJ IDEA
Visual Studio Code
Visual Studio Code の公式ドキュメントに Rust についての説明がありました。それを見ながら Visual Studio Code を設定してみようと思います。
インストール
拡張機能ビュー (⇧⌘X) を開いて、Rust
で検索をして拡張機能を探します。
すると、Rust の公式から提供されている Rust という拡張機能が見つかると思います。
説明を見てもらうと分かるようにこの拡張機能は廃止されていました。
This extension is deprecated. Use the rust-analyzer extension instead.
代わりに rust-analyzer を使うようにガイドされていました。今日参照している VS Code の公式ドキュメントでは rust-analyzer のみの導入手順になっています。しかし、個人で紹介されている手順などを見てみると、 Rust 拡張機能の導入が紹介されているものも目にしました。rust-analyzer だけでよい、ということで先に進めようと思います。
rust-analyzer の特長
拡張機能の紹介には以下のような機能が紹介されていました。
- コード補完
- 定義、実装、型定義への移動
- 全参照の検索、ワークスペースのシンボル検索、シンボルのリネーム
- 型とドキュメントがホバー表示
- 型とパラメータ名のヒント
- セマンティックシンタックスハイライト
- 豊富なアシスト機能(コードアクション)
- エラーからの提案の適用
VS Code で Rust プロジェクトの表示
Day 2 で作成した hello-rust
プロジェクトを VS Code で開いてみます。
拡張機能 適用後
拡張機能 適用前
コードのカラーリングは微妙に変化してますね。
VS Code で Rust の操作
rust-analyzer が提供している機能を少し試してみようと思います。
ビルドと実行
VS Code にターミナル(⌃⇧`) を開きます。そのターミナル上で cargo
を使用してビルドと実行を行います。
ビルド:
cargo build
実行:
cargo run
ヒント表示
文字を入力するタイミングで予測してキーワードを表示してくれます。
ドキュメントのホバー表示
キーワードにマウスカーソルを合わせると説明が表示されます。
コード補完
途中まで入力すると予測して補完をしてくれます。
セマンティクス シンタックス ハイライト
画像の例では、セマンティクスを判断して、不変と可変の変数の表示方法が区別されています。
可変変数に下線がひかれて表示されています。
IntelliJ IDEA
IntelliJ Rust というプラグインが JetBrains 公式になります。
このプラグインを入れるだけで Rust 開発に対応した IntellJ になりそうです。
インストール
以下のリンクから Rust プラグインのマーケットプレイスにアクセスできます。
そのマーケットプレイスプレイスから IntelliJ IDEA へのインストールを行います。
IntelliJ Rust で Rust の操作
Rust プラグインが提供している機能を少し試してみようと思います。
ヒント表示
VS Code 同様に 1文字入力すると、予測キーワードの一覧が表示されます。
ドキュメントのホバー表示
キーワードにマウスカーソルを合わせると説明が表示されます。
コード補完
途中まで入力すると予測して補完をしてくれます。
セマンティクス シンタックス ハイライト
これも VS Code 同様に、不変と可変の変数の表示方法が区別されています。
Cargo メニュー
cargo
コマンドを直接 IntelliJ 上から実行することが可能になっています。
Day 3 のまとめ
今日は VS Code と IntelliJ IDEA にそれぞれ Rust 用のプラグインをいれて Rust のコード開発対応を行ってみました。そして機能確認をしながら、ちょこっと Rust のコードを書いてみたりしていました。とりあえず、今日で Rust のコード編集の環境は整ったので明日からは少しずつ Rust の言語仕様について勉強していこうかなって思います。
Discussion