はじめてのCLion+IntelliJ Rust

こんにちは。JetBrains堀岡です。ご存知の通り、JetBrainsの製品は様々なプログラミング言語やテクノロジーをカバー(参考:jetbrains.dev)しており、日々様々な技術情報が英語でアップデートされています。営業的な記事を書くのはそろそろ飽きてきたので、私自身仕事で使ったことのの無い(遠い昔、ソフトウェアエンジニアでしたw)プログラミング言語(Kotlin、PHP、Ruby、Swift、Scala、Go、Rust)のコンテンツも学びながら増やしていけたらと考えております。そこで、今回(今後伸び代がありそうな)IntelliJ Rustについて紹介したいと思います。

clion_rust_banner2

IntelliJ Rustの歴史

現在JetBrainsの製品群の中でプログラミング言語Rust専用のIDEはありませんが、オープンソースのJetBrains IDE向けプラグインとしてIntelliJ Rustがあります。歴史を調べてみると以下が大きな節目のようです。

IntelliJ Rustの情報源

IntelliJ Rustには製品レベルのドキュメントはありませんが、以下から機能概要やリリース情報を知ることができます。

現時点でIntelliJ Rustと一番親和性の高いJetBrains IDEはCLionです(デバッガサポートがあるため)。そのため、現在JetBrainsの製品カテゴリ/マーケティング的にはIntelliJ Rust関連の情報(新機能や便利な使い方紹介)は、CLionの一部として以下の通り情報提供されています。

IntelliJ Rustの主な機能

IntelliJ IDEAやCLionの基本操作の多くが(同じキー操作で)IntelliJ Rustプラグインでサポートされています。機能一覧はIntelliJ Rust DocumentationのFeaturesに掲載されています。基本的な機能は一通り入っているようですが、まだまだWIP(Working In Progress: 開発中)のものも多いようでこれからさらなる発展が期待されます。

ここでは、クイックスタートの指示に従って、GitHub上のコードで試してみます。

今回試してみた環境は以下の通りです。

  • CLion 2018.3.4
  • IntelliJ Rust Plugin v0.2.94.2119-183
  • Rust 1.33.0
  • macOS 10.13.6
  • Xcode 10.1 (IntelliJ Rustのdebuggerが使用)
  • テスト用コード rustlings

インストール

  • CLionをお持ちでない方はこちらから30日試用版が利用可能です
  • IntelliJ Rustプラグイン
    • [Preference]-[Plugins] (またはShiftキー*2 でpluginsを検索)
    • Rustを検索し[Install]

Plugins

プロジェクトの選択と実行

[Open]を選択し、git clone済みのrustlingsコードが含まれるディレクトリを指定します。

Welcome_to_CLion

Rustプロジェクトとして正しく認識されているか確認するため、画面右[Cargo]を開きます。targetsのrustlingsをダブルクリックすると自動的にCargo runしてくれます。

rustlings____work_rust_rustlings__-_____src_main_rs

コード編集支援とナビゲーション

Code Completion/コード補完[Ctrl+Space/^Space]やQuick Documentation Look up/関数リファレンス参照[Ctrl+Q/^J]、Refactoring/各種リファクタリング、定義ジャンブ等はCLionのショートカットやアクションがそのまま使えるようです。

completion

rustlings____work_rust_rustlings__-_____src_main_rs_と_rustlings____work_rust_rustlings__-_____exercises_functions_functions2_rs_png

Inspection/静的解析の設定や実行、Show Intention Action/空気を読む による修正も(対応パターンはまだまだ限られているかもしれませんが)実行可能です。

Preferences_と_rustlings____work_rust_rustlings__-____rustup_toolchains_stable-x86_64-apple-darwin_lib_rustlib_src_rust_src_libstd_sync_mpsc_mod_rs

以下は戻り値と思われる式にセミコロンが付いているため、戻り値の方が合わない警告に対するShow Intention Actionによる修正例です(参考:Rustの関数の戻り値について)。

Intention

デバッグ

既に「プロジェクトの選択と実行」の箇所でCargo runを実行済みであれば、Run/Debug構成はできていると思いますので(なければこちらを参考にRun/Debug Configurationを設定してください)、あとはブレークポイントをセットして、虫のマークアイコンからDebugを開始することができます。

注意が必要なのは、現在デバッガ機能は(IntelliJ Rustという名前にもかかわらず)CLionでのみサポートしているということです。理由はRustのデバッグ機能は、LLDB/GDBを使用したネイティブコードに対するデバッグ機能が必要であるためです(IntelliJ IDEAにはその機能はありません)。また(今回はmacOS環境で試していますが)Windows環境の場合、MSVCではなくGNU Rust toolchainが必要であることに注意が必要です(参考 IntelliJ Rust Issueへのリンク)。

debug

おわりに

私にとっても「はじめてのCLion+IntelliJ Rust」ということで、簡単に紹介しました。これから試される方が「完全に理解できるよう」参考になっていれば幸いです。また、既に使い込んでいる方は、こんな便利機能がある等シェアいただけると嬉しいです。

IntelliJ Rustはまだまだ発展途上な雰囲気もありますが、ダウンロード数は着実に増えており、特にデバッガサポート以降、CLion+IntelliJ Rustの組み合わせで使われているケースが一番多いようです。また、CLionはC/C++以外にもRustを含む様々な言語をサポートしていますので、この機会に試してみたい方はCLion 30日トライアル版をご利用ください。一方、IntelliJ Rustのデバッガ以外の機能はIntelliJ IDEAを含むCLion以外のIDEで動作しますし、全て無料の環境で使ってみたい方はIntelliJ IDEA Community + IntelliJ Rustというオプションもあります。

本記事への提案や今後「こんな情報がほしい」等ありましたらフィードバックをお待ちしております。

About Masaru Horioka

Country Manager, Japan at JetBrains, ご意見、ご要望等ございましたら@masaruhrまで
This entry was posted in CLion, IntelliJ Rust. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *