インストール - RustRover

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要

JetBrains RustRoverは、IntelliJプラットフォームをベースにしたRust専用の統合開発環境である。

RustRoverには、Cargo、デバッガ、Rustfmt、Clippy等の主要なRustツールチェーンとの統合機能が含まれており、Rust開発に必要な機能が最初から備わっている。
また、Web開発関連のプラグインも付属しているので、Webシステム開発も同じ環境で開発できる。


RustRoverのインストール

Jetbrains RustRoverの公式WebサイトからRustRoverをダウンロードする。

ダウンロードしたファイルを解凍する。

tar xf RustRover-<バージョン>.tar.gz


次に、デスクトップエントリファイルを作成する。

vi ~/.local/applications/JetBrains_RustRover.desktop


 # ~/.local/applications/JetBrains_RustRover.desktopファイル
 
 [Desktop Entry]
 Type=Application
 Name=RustRover <バージョン>
 GenericName=RustRover
 Comment=Develop with pleasure
 Exec=/<RustRoverのインストールディレクトリ>/bin/rustrover.sh %F
 Icon=/<RustRoverのインストールディレクトリ>/bin/rustrover.png
 StartupWMClass=jetbrains-rustrover
 Terminal=false
 Categories=Development;IDE;



ウォッチハンドルの設定

VCS、ビルドツール、コードジェネレータ等による変更等、外部からファイルの変更を把握することが不可欠である。
そのため、IntelliJプラットフォームでは、そのような変更を監視するためのバックグラウンドプロセスを実行している。

この方法は各プラットフォームで異なり、Linuxにおいては、Inotify機能を使用している。

Inotify機能において、プロジェクト内の各ディレクトリにウォッチハンドルを設定する必要がある。
しかし、ウォッチハンドルの初期値は、プロジェクトによっては十分ではない可能性がある。

IntelliJプラットフォームでは、ウォッチハンドルの制限に達する場合、ディレクトリツリーの再帰的なスキャンに戻ってしまう。

この状況を防ぐためには、ウォッチの上限 (例: 512K) を増加させることを推奨する。

/etc/sysctl.confファイル または /etc/sysctl.d/ディレクトリに*.confファイル(例. idea.conf)に、以下の設定を追加する。

sudo vi /etc/sysctl.conf
または
sudo vi /etc/sysctl.d/idea.conf


# /etc/sysctl.confファイル または /etc/sysctl.d/idea.confファイル

fs.inotify.max_user_watches = 1048576


上記の変更を適用する。

sudo sysctl -p --system


RustRoverを起動している場合は、RustRoverを再起動する。

現在の設定を確認する場合は、以下に示すコマンドを実行する。

sudo sysctl fs.inotify.max_user_watches


※注意
監視制限はユーザごとの設定である。
もし、同一ユーザでInotifyを使用している他のソフトウェアが動作している場合は、全てのソフトウェアのニーズに合うように制限値を高くする必要がある。

一部のLinuxディストリビューションでは、この設定を /usr/lib/sysctl.d ディレクトリ配下のファイルで構成する場合がある。
これらのディレクトリ内のファイルはファイル名の順序で読み込まれるため、/etc/sysctl.d/idea.conf を使用してシステム設定を上書きし、優先度の高い設定を適用できる。


RustRoverの起動

cd /<RustRoverのインストールディレクトリ>/bin
./rustrover



RustRoverの設定

行番号と空白文字の表示

[File] - [Settings] - [Editor] - [General] - [Appearance]を選択する。
[Show line numbers]チェックボックスと[Show whitespaces]チェックボックスにチェックを入力する。

Samba上にプロジェクトを置く場合

External file changes sync may be slowを表示させないために、
[File] - [Settings] - [Appearance & Behavior] - [Notifications]から[File Watcher Messages]を[No popup]にする。


Rustツールチェーンの設定

RustRoverでRust開発を行うには、Rustツールチェーンのインストールが必要である。

Rustのインストール

Rustをインストールするには、rustupを使用することを推奨する。

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


インストール完了後、シェルを再起動するか、以下のコマンドを実行する。

source $HOME/.cargo/env


Rustのバージョンを確認する。

rustc --version
cargo --version


RustRoverでのツールチェーン設定

[File] - [Settings] - [Languages & Frameworks] - [Rust]を選択する。
[Toolchain location]でrustupのパスを指定する。(通常は自動検出される)

標準ライブラリのソースコードを取得する。

rustup component add rust-src



エラー関連

Cargoプロジェクトのビルドエラー

Cargoのキャッシュが破損している場合、以下のコマンドでクリーンアップを実行する。

cargo clean


Rust Analyzerの問題

Rust Analyzerが正常に動作しない場合、以下に示す手順を試す。

  1. [File] - [Invalidate Caches...]を選択して、キャッシュをクリアする。
  2. RustRoverを再起動する。


ツールチェーンのバージョン指定

特定のRustバージョンを使用する場合、rust-toolchain.tomlファイルをプロジェクトルートに作成する。

 # rust-toolchain.tomlファイル
 
 [toolchain]
 channel = "1.75.0"
 components = ["rustfmt", "clippy"]



RustRoverの日本語化

RustRover 2024.1以降、日本語化プラグインで日本語にローカライズ可能である。

  1. JetBrainsの公式Webサイトから、Japanese Language Packプラグインをダウンロードする。
    この時、zipファイルは解凍しないことに注意する。
  2. ダウンロードしたプラグインファイルを、<RustRoverのインストールディレクトリ>/pluginsディレクトリに配置する。
  3. RustRoverのメイン画面のメニューバーから、[Settings]または[Preferences] - [Plugins]を選択する。
  4. [Settings]画面の上側にある歯車ボタンから、[Install Plugin from Disk...]を選択する。
  5. 上記でダウンロードしたJapanese Language Packプラグインファイルを選択してインストールする。
  6. RustRoverを再起動して、正常にローカライズできたかどうかを確認する。



ビルドターゲットの設定

Rustでは、クロスコンパイルのためにターゲットトリプルを指定することができる。

利用可能なターゲットを確認する。

rustup target list


特定のターゲットをインストールする。

rustup target add x86_64-unknown-linux-gnu
rustup target add x86_64-pc-windows-gnu


RustRoverでビルドターゲットを指定する手順を、以下に示す。

  1. [Run] - [Edit Configurations...]を選択する。
  2. 該当する実行構成を選択する。
  3. [Command]セクションの[Target]フィールドでターゲットトリプルを指定する。
  4. [Apply]ボタンを押下して設定を保存する。


または、プロジェクトの.cargo/config.tomlファイルでデフォルトターゲットを設定できる。

 # .cargo/config.tomlファイル
 
 [build]
 target = "x86_64-unknown-linux-gnu"



外部コンソールの使用

RustRoverでは、出力コンソールを外部コンソールアプリケーションに変更することができる。
これにより、プログラムの実行時において、別ウインドウでコンソールが起動する。

なお、この設定はプロジェクトごとに個別に設定することが可能である。

  1. まず、プロジェクトの実行構成を開く。
    • [Run]メニューバー - [Edit Configurations...]を選択する。
    • または、ツールバーの[実行構成]プルダウンの横にある編集ボタンを選択する。

  2. 該当する実行構成を選択して、以下に示す設定を変更する。
    1. [Configuration]タブを開く。
    2. [Run in external console]チェックボックスにチェックを入力する。

  3. [Apply]ボタンを押下して設定を保存する。


この設定は、以下に示すような場合に有効である。

  • std::io::stdin().read_line()等の入力待ちを使用する場合
  • プログラムの実行結果をより見やすく表示する場合
  • IDE内蔵のコンソールで文字化け等の問題が発生する場合



Cargoの設定

Cargo.tomlの編集

RustRoverは、Cargo.tomlファイルの編集時に、依存関係の自動補完とバージョン管理機能を提供する。

依存関係を追加する場合、以下のようにCargo.tomlファイルを編集する。

 # Cargo.tomlファイル
 
 [package]
 name = "my_project"
 version = "0.1.0"
 edition = "2021"
 
 [dependencies]
 serde = { version = "1.0", features = ["derive"] }
 tokio = { version = "1.35", features = ["full"] }


または、以下のコマンドで依存関係を追加できる。

cargo add serde --features derive
cargo add tokio --features full


Cargoワークスペース

複数のクレートを含むワークスペースを作成する場合、ルートディレクトリにCargo.tomlファイルを作成する。

 # Cargo.tomlファイル (ワークスペースルート)
 
 [workspace]
 members = [
     "crate_a",
     "crate_b",
 ]
 
 [workspace.dependencies]
 serde = "1.0"


RustRoverは、ワークスペース内のすべてのクレートを自動的に認識し、相互参照を提供する。


デバッグ設定

GDBまたはLLDBのインストール

Linuxでは、GDBまたはLLDBをインストールする必要がある。

# openSUSE/SLESの場合
sudo zypper install gdb

# または、LLDBを使用する場合
sudo zypper install lldb


# RHEL/Fedoraの場合
sudo dnf install gdb

# または、LLDBを使用する場合
sudo dnf install lldb


デバッガの設定

[File] - [Settings] - [Build, Execution, Deployment] - [Debugger]を選択する。
[Rust]セクションで、使用するデバッガ(GDBまたはLLDB)を選択する。

デバッグビルドを実行するには、以下の手順を実行する。

  1. ブレークポイントを設定する箇所で、行番号の左側をクリックする。
  2. [Run] - [Debug...]を選択するか、ツールバーのデバッグアイコンをクリックする。
  3. デバッガが起動し、ブレークポイントで停止する。


※注意
リリースビルドではデバッグ情報が削除されるため、デバッグにはデバッグビルドを使用すること。


テストの実行

RustRoverは、Rustの標準的なテストフレームワークと統合されている。

テストを実行する方法を、以下に示す。

  1. テスト関数の横に表示される実行アイコンをクリックする。
  2. または、[Run] - [Run...]から該当するテストを選択する。
  3. または、以下のキーボードショートカットを使用する。
    • 個別のテストを実行: Ctrl+Shift+F10 (Linux/Windows)
    • 最後のテストを再実行: Shift+F10 (Linux/Windows)


全てのテストを実行するには、以下のコマンドを使用する。

cargo test


特定のテストのみを実行するには、以下のようにする。

cargo test test_name



Rustfmtの設定

Rustfmtは、Rustコードの自動フォーマットツールである。

Rustfmtをインストールする。

rustup component add rustfmt


RustRoverでRustfmtを使用するには、以下の設定を行う。

  1. [File] - [Settings] - [Languages & Frameworks] - [Rust] - [Rustfmt]を選択する。
  2. [Run rustfmt on Save]チェックボックスにチェックを入力すると、ファイル保存時に自動フォーマットされる。


手動でフォーマットを実行するには、以下の手順を実行する。

  1. [Code] - [Reformat Code]を選択する。
  2. または、Ctrl+Alt+L (Linux/Windows)を押下する。


プロジェクトルートにrustfmt.tomlファイルを作成することで、フォーマット設定をカスタマイズできる。

 # rustfmt.tomlファイル
 
 max_width = 100
 hard_tabs = false
 tab_spaces = 4
 newline_style = "Unix"



Clippyの設定

Clippyは、Rustコードの静的解析ツールであり、コードの品質向上に役立つ。

Clippyをインストールする。

rustup component add clippy


RustRoverでは、Clippyの警告がエディタ上にリアルタイムで表示される。

Clippyを手動で実行するには、以下のコマンドを使用する。

cargo clippy


全ての警告を修正候補付きで表示するには、以下のコマンドを使用する。

cargo clippy --fix


特定のClippy lintを無効にする場合、以下のようにコード内で指定できる。

 #![allow(clippy::lint_name)]
 
 // または、特定の関数やブロックに対して
 #[allow(clippy::lint_name)]
 fn my_function() {
     // ...
 }



マクロ展開の表示

RustRoverでは、マクロの展開結果を確認することができる。

マクロ展開を表示する手順を、以下に示す。

  1. マクロ呼び出しにカーソルを置く。
  2. [Tools] - [Rust] - [Show Macro Expansion]を選択する。
  3. または、Ctrl+Shift+M (Linux/Windows)を押下する。


展開結果が別ウィンドウに表示され、マクロがどのようにコードを生成するかを確認できる。


プロファイリング

RustRoverでは、Cargo Flamingoを使用してパフォーマンスプロファイリングが可能である。

Cargo Flamingoをインストールする。

cargo install flamegraph


プロファイリングを実行するには、以下のコマンドを使用する。

cargo flamegraph


生成されたフレームグラフ(flamegraph.svg)を、ブラウザで開いて確認する。

※注意
Linuxでは、perfツールへのアクセス権限が必要な場合がある。
その場合、以下のコマンドを実行する。

echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid



WebAssembly (WASM) サポート

RustRoverは、WebAssemblyターゲットへのコンパイルをサポートしている。

WASMターゲットをインストールする。

rustup target add wasm32-unknown-unknown


wasm-packをインストールする。

cargo install wasm-pack


WASMプロジェクトをビルドするには、以下のコマンドを使用する。

wasm-pack build --target web


RustRoverの実行構成で、ビルドターゲットとして[wasm32-unknown-unknown]を指定することもできる。