JetBrainsのIDEでRust開発するための準備

この記事では、Rust開発でJetBrainsのIDEを使う場合に、
最低限やっておきたいセットアップ方法について紹介します。

Rust開発する場合、IDEはVSCodeを使われている方が多い気がしますが、
私のようなJava界隈の人からすると、やっぱりJetBrainsのIDEが好きなんですよね。

JetBrains IDEのRust対応状況

JetBrainsのIDEは、基本的には、
各言語ごとに合わせて専用のIDEプロダクトが用意されています。

JavaやJVM系の開発であれば、IntelliJ IDEA。
PHP開発なら、PHP Storm
Goなら、Goland
Rubyなら、Rubymine
といった具合に、各IDEプロダクトが提供されています。

で、Rustの場合はどうかというと、
まだこういったメインのRust専用のIDEプロダクトはありません。

しかし、Rustの場合、
IntelliJ Rustプラグインという形で、言語サポートが提供されています。

実は、PHP, Go, Rubyに関しても、メインのIDEプロダクトと並行して、
同等の機能がプラグイン形式で機能提供されています。(プロダクト版よりはリリース時期は遅れます)

こういったプラグインは、
IntelliJ IDEAなどに追加していけば、IntelliJ IDEAひとつだけで、
すべての言語サポートするといった状態にもできます。
(ただ、プラグインで全部込み状態は重くなるので、専用のIDEプロダクトを使ったほうがいいです)

IntelliJ Rust プラグインとは

前述したように、Rust専用のIDEプロダクトは用意されていませんが、
プラグインという形で、IntelliJ Rust というのが提供されています。
プラグイン形式なので、IntelliJ IDEA、CLion、WebStormなど、
ほかのIDEプロダクトにプラグイン適用する事で、Rust開発が行えます。
このプラグインは、Rustのメジャーリリースの2015年あたりから開発され続けています。

IntelliJ Rustプラグインと一番親和性の高いIDEはCLionを使うことです。
CLionにプラグイン適用した場合、デバッカーなどのサポートがフルで機能します。

プラグイン開発のリポジトリ
https://github.com/intellij-rust/intellij-rust#compatible-ides

ここに各IDEごとの機能サポート比較も載ってます。

Rustのインストール

Rustの開発環境を作るために、
まずはRust言語自体はインストールしておきましょう。

公式のインストール手順に従いましょう。
https://www.rust-lang.org/tools/install

IntelliJ Rustは、WindowsのWSL環境であっても動作します。
Windows側で開発する場合と、WSL側で開発する場合、
どちらも扱えるように両方でRustをインストールしておくとよいでしょう。

Windows側
rustup-init.exe を使ってインストール

Windows WSL側
下記のコマンドでインストール

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Clionのインストール

IntelliJ Rustプラグインと一番親和性の高いIDEはCLionなので、
特に理由がなければClionをインストールして使うのがおすすめです。

Clionは公式からダウンロードしましょう。
https://www.jetbrains.com/clion/

※Clionは有料版しかなかったと思うので、有料版を使うのに躊躇する方は、
IntelliJ IDEA ComunityEditionに、Rustプラグインを入れて使うのが良さそうです。
https://www.jetbrains.com/idea/download/

Rustプラグインのインストール

Clionのインストールが終わったら、Settings > Plugins 画面から”Rust”と検索。
JetBrains提供の、Rustというプラグインが「IntelliJ Rustプラグイン」です。

インストールボタンを押して、インストールしていきましょう。

この状態で、Cargo newなどで作成したディレクトリを開けば、Rust開発ができる状態です。
以降は、さらにこれだけは設定しておいたほうが良い項目だけを紹介していきます。

Clippyの有効化

Clippyとは、RustコードのLinter(コード解析ツール)です。
人間にわかりやすいように、ここが間違ってるよ。とか、
これならこういうコードにしたほうがより良いよ。
などのコード解析をしたうえで助言してくれるツールです。

Settings > Languages & Frameworkds > Rust > External linters 画面で有効化する事ができます。

デフォルトでは、Cargo Checkというものになっていますが、
より詳細な情報を提供してくれる、Clippyを指定して設定しておくのがおすすめです。

Run external linter to analyze code on the fly の項目もチェックしておきましょう。
有効化することで、エディター上でコードにカーソルを持って行った際に、解析結果を表示してくれます。

この設定は、プロジェクトごとに毎回設定してあげないといけないので注意です。

Rustfmtの有効化

デフォルトでは、IDE側の独自フォーマッターが適用されています。
Rustfmtとは少し違った形にフォーマットされてしまうので、
Use rustfmt instead of the build-in formatterにチェックしておきましょう。

VSCode民の開発者とフォーマット差分がでなくなります。

Experimental Featuresの有効化

いくつか、experimental のため、デフォルトでは無効状態になってる機能があります。
特にマクロなどを扱った開発をする際には、必要になるものもあるので有効化しておくとよいでしょう。

Shiftキー 2回押しから、”Experimental features” アクションを起動すると、設定できます。

有効化しておきたいのは下記の二つの項目。
初期状態では、チェックが外れているのでチェックしてOKする。

  • org.rust.cargo.evaluate.build.scripts

    Run build scripts while project refresh. It allows collecting information about generated items like cfg options, environment variables, etc

  • org.rust.macros.proc

    Enables procedural macro expansion

IDEのメモリ設定

Rustはコンパイル時にマシンパワーを結構必要とするので、
IDE自体の利用可能メモリも上限は増やしておいたほうが良いでしょう。

メモリ不足になった時点でIDE側から、増やしたほうがいいよとダイアログ表示がされるので、
それまでは別にいじらなくて良いかもですが・・。

初期状態のメモリ設定だと、1GBちょっとが上限になってるはずです。
私は、4GBくらいの設定にしています。

Help > Change Memory Settings 画面より設定が可能です。

必要そうなメモリ量に設定しておく。

まとめ

  • Rust専用のJetBrainsのIDEプロダクトはまだない。
    しかし、プラグイン形式で、IntelliJ Rustというプラグインが提供されている。
    プラグインは、IntelliJ IDEA, Clion, Goland, WebStormなどの各IDEプロダクトに適用する事で、Rust開発が可能。
    Clionとの親和性が一番高い。

  • Clippyの有効化設定は、プロジェクトごとに毎回設定しないといけないので忘れずに。
    (新規プロジェクト作るときに、補完やエラーチェックが動いてなくてアレってなりがちです)

  • Experimental Featuresで、初期状態では無効化されてる機能があるので、
    マクロ展開などの補完や解析がうまくいかない場合、チェックしてみると良いです。

  • 最低限の設定といえど、ここまで設定していくと、IDEの処理は結構重たくなる印象です。
    Rustはコンパイルが遅い言語なので、PCスペックはそれなりに必要なんでしょうね。
    特にJetBrainsのIDEだと、もしかしたらVSCodeでの開発時よりも、マシンスペックは必要になってるかもしれません。。
    それでも、私はJetBrainsのIDEの方が使いやすいなぁと感じています。

タイトルとURLをコピーしました