概要
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が正常に動作しない場合、以下に示す手順を試す。
- [File] - [Invalidate Caches...]を選択して、キャッシュをクリアする。
- RustRoverを再起動する。
ツールチェーンのバージョン指定
特定のRustバージョンを使用する場合、rust-toolchain.tomlファイルをプロジェクトルートに作成する。
# rust-toolchain.tomlファイル
[toolchain]
channel = "1.75.0"
components = ["rustfmt", "clippy"]
RustRoverの日本語化
RustRover 2024.1以降、日本語化プラグインで日本語にローカライズ可能である。
- JetBrainsの公式Webサイトから、Japanese Language Packプラグインをダウンロードする。
この時、zipファイルは解凍しないことに注意する。 - ダウンロードしたプラグインファイルを、<RustRoverのインストールディレクトリ>/pluginsディレクトリに配置する。
- RustRoverのメイン画面のメニューバーから、[Settings]または[Preferences] - [Plugins]を選択する。
- [Settings]画面の上側にある歯車ボタンから、[Install Plugin from Disk...]を選択する。
- 上記でダウンロードしたJapanese Language Packプラグインファイルを選択してインストールする。
- RustRoverを再起動して、正常にローカライズできたかどうかを確認する。
ビルドターゲットの設定
Rustでは、クロスコンパイルのためにターゲットトリプルを指定することができる。
利用可能なターゲットを確認する。
rustup target list
特定のターゲットをインストールする。
rustup target add x86_64-unknown-linux-gnu rustup target add x86_64-pc-windows-gnu
RustRoverでビルドターゲットを指定する手順を、以下に示す。
- [Run] - [Edit Configurations...]を選択する。
- 該当する実行構成を選択する。
- [Command]セクションの[Target]フィールドでターゲットトリプルを指定する。
- [Apply]ボタンを押下して設定を保存する。
または、プロジェクトの.cargo/config.tomlファイルでデフォルトターゲットを設定できる。
# .cargo/config.tomlファイル
[build]
target = "x86_64-unknown-linux-gnu"
外部コンソールの使用
RustRoverでは、出力コンソールを外部コンソールアプリケーションに変更することができる。
これにより、プログラムの実行時において、別ウインドウでコンソールが起動する。
なお、この設定はプロジェクトごとに個別に設定することが可能である。
- まず、プロジェクトの実行構成を開く。
- [Run]メニューバー - [Edit Configurations...]を選択する。
- または、ツールバーの[実行構成]プルダウンの横にある編集ボタンを選択する。
- 該当する実行構成を選択して、以下に示す設定を変更する。
- [Configuration]タブを開く。
- [Run in external console]チェックボックスにチェックを入力する。
- [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)を選択する。
デバッグビルドを実行するには、以下の手順を実行する。
- ブレークポイントを設定する箇所で、行番号の左側をクリックする。
- [Run] - [Debug...]を選択するか、ツールバーのデバッグアイコンをクリックする。
- デバッガが起動し、ブレークポイントで停止する。
※注意
リリースビルドではデバッグ情報が削除されるため、デバッグにはデバッグビルドを使用すること。
テストの実行
RustRoverは、Rustの標準的なテストフレームワークと統合されている。
テストを実行する方法を、以下に示す。
- テスト関数の横に表示される実行アイコンをクリックする。
- または、[Run] - [Run...]から該当するテストを選択する。
- または、以下のキーボードショートカットを使用する。
- 個別のテストを実行: 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を使用するには、以下の設定を行う。
- [File] - [Settings] - [Languages & Frameworks] - [Rust] - [Rustfmt]を選択する。
- [Run rustfmt on Save]チェックボックスにチェックを入力すると、ファイル保存時に自動フォーマットされる。
手動でフォーマットを実行するには、以下の手順を実行する。
- [Code] - [Reformat Code]を選択する。
- または、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では、マクロの展開結果を確認することができる。
マクロ展開を表示する手順を、以下に示す。
- マクロ呼び出しにカーソルを置く。
- [Tools] - [Rust] - [Show Macro Expansion]を選択する。
- または、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]を指定することもできる。
AI Assistantの設定
JetBrains AI Assistantは、IntelliJプラットフォームベースのIDEで利用できるAI支援機能である。
Agent Client Protocol (ACP) を使用することで、外部のAIエージェントを統合できる。
acp.jsonの概要
ACP対応エージェントを追加するには、~/.jetbrains/acp.json ファイルを作成する。
{
"default_mcp_settings": {
"use_idea_mcp": true,
"use_custom_mcp": true
},
"agent_servers": {
"Example Agent": {
"command": "/path/to/opencode",
"args": ["acp"],
"env": {
"API_KEY": "<APIキー>"
}
}
}
}
| 設定項目 | 説明 | 設定例 |
|---|---|---|
default_mcp_settings |
全エージェントに適用されるデフォルトのMCP設定 | { "use_idea_mcp": true, ... } |
use_idea_mcp |
IntelliJ MCP Serverをエージェントに公開するかどうか | true または false |
use_custom_mcp |
ユーザー設定のMCPサーバをエージェントに公開するかどうか | true または false |
agent_servers |
エージェントの定義 | { "OpenCode": { ... } } |
command |
エージェントの実行ファイルへのフルパス | "/path/to/opencode" |
args |
起動時に渡す引数の配列 | ["acp"] |
env |
エージェントプロセスに設定する環境変数 | { "API_KEY": "..." } |
OpenCodeエージェントの設定
OpenCodeは、ACPに対応したAIエージェントである。
RustRoverでOpenCodeを使用するには、以下に示す設定を ~/.jetbrains/acp.json ファイルに追加する。
{
"default_mcp_settings": {
"use_idea_mcp": true,
"use_custom_mcp": true
},
"agent_servers": {
"OpenCode": {
"command": "/path/to/opencode",
"args": ["acp"]
}
}
}
--cwd オプションを使用すると、特定の作業ディレクトリでエージェントを起動できる。
{
"agent_servers": {
"OpenCode-ProjectA": {
"command": "/path/to/opencode",
"args": ["acp", "--cwd", "/path/to/project-a"]
}
},
"command": "/path/to/opencode",
"args": ["acp", "--cwd", "/path/to/project-b"]
}
}
}
Claude Codeエージェントのインストール
Claude Codeは、JetBrains AI AssistantのACPレジストリからインストールできる。
インストール手順を以下に示す。
- AI Chatツールウィンドウを開く。
- チャットモードセレクターから[Install From ACP Registry]を選択する。
- [Agents]ページで、Claude Codeをインストールする。
- APIキーの認証を求められた場合は、AnthropicのAPIキーを入力する。
詳細な設定については、JetBrains公式ドキュメントを参照すること。
※注意
acp.jsonファイルの設定変更後は、IDEを再起動する必要がある。
MCPサーバの設定
Model Context Protocol (MCP)を使用することにより、AI Assistantは外部ツールやデータソースと連携できる。
MCPサーバに接続することで、AI Assistantの機能を大幅に拡張することができる。
サポートされる転送メカニズム
AI Assistantは、以下に示す転送メカニズムをサポートしている。
- Standard Input/Output (STDIO)
- AI AssistantがMCPサーバをサブプロセスとして起動し、標準入出力でデータを交換する。
- Streamable HTTP
- HTTPを使用してMCPサーバに接続する。
- SSE
- レガシーMCPサーバ向けの転送メカニズム
MCPサーバへの接続
MCPサーバに接続する手順を以下に示す。
- [Settings] - [Tools] - [AI Assistant] - [Model Context Protocol (MCP)]を選択する。
- [Add]ボタンを押下して、新しいMCPサーバ設定を追加する。
- JSON設定を入力する。
- [OK]ボタンを押下する。
- [Apply]ボタンを押下して、MCPサーバを起動する。
JSON設定例
MCPサーバへの接続方法に応じて、JSON設定が異なる。
ローカルインストール
MCPサーバがローカルにインストールされている場合の設定例を以下に示す。
{
"mcpServers": {
"filesystem": {
"command": "node",
"args": [
"/path/to/server/dist/index.js",
"/Users/username/Desktop"
]
}
}
}
NPXを使用する場合
NPXを使用してMCPサーバを実行する場合の設定例を以下に示す。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop"
]
}
}
}
Dockerを使用する場合
Dockerを使用してMCPサーバを実行する場合の設定例を以下に示す。
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount", "type=bind,src=/local/path,dst=/container/path",
"mcp/filesystem",
"/projects"
]
}
}
}
リモートサーバ
リモートMCPサーバに接続する場合の設定例を以下に示す。
{
"mcpServers": {
"microsoftdocs": {
"url": "https://learn.microsoft.com/api/mcp"
}
}
}
IDEをMCPサーバとして使用する
JetBrains IDE (バージョン 2025.2以降) は統合MCPサーバを提供しており、外部クライアントからIDEのツールにアクセスできる。
MCPサーバを有効にする手順を以下に示す。
- [Settings] - [Tools] - [MCP Server]を選択する。
- [Enable MCP Server]を有効にする。
- [Clients Auto-Configuration]セクションで、各クライアントの[Auto-Configure]ボタンを押下する。
- クライアントを再起動する。
手動設定
手動で設定する場合、以下のいずれかの設定をコピーしてクライアントの設定ファイルに貼り付ける。
- SSE Config
- SSE接続用の設定
- SSE接続用の設定
- Stdio Config
- STDIO接続用の設定
- STDIO接続用の設定
確認なしでアクションを実行する
外部クライアントが確認なしでターミナルコマンドや実行構成を実行できるようにするには、以下に示す設定を有効にする。
- [Settings] - [Tools] - [MCP Server]を選択する。
- [Command execution]セクションで、[Run shell commands or run configurations without confirmation (brave mode)]を有効にする。
- [Apply]ボタンを押下する。
サポートされるツール
下表に、統合MCPサーバが提供するツールの一覧を示す。
| ツール名 | 説明 |
|---|---|
| execute_run_configuration | 指定した実行構成を実行する。 |
| get_run_configurations | プロジェクトの実行構成一覧を取得する。 |
| get_file_problems | 指定したファイルのエラーと警告を分析する。 |
| get_project_dependencies | プロジェクトの依存関係一覧を取得する。 |
| get_project_modules | プロジェクトのモジュール一覧を取得する。 |
| create_new_file | 指定したパスに新しいファイルを作成する。 |
| find_files_by_glob | globパターンに一致するファイルを検索する。 |
| find_files_by_name_keyword | ファイル名にキーワードを含むファイルを検索する。 |
| get_all_open_file_paths | 開いている全ファイルのパスを取得する。 |
| list_directory_tree | ディレクトリツリーを表示する。 |
| open_file_in_editor | 指定したファイルをエディタで開く。 |
| reformat_file | 指定したファイルをフォーマットする。 |
| get_file_text_by_path | ファイルのテキスト内容を取得する。 |
| replace_text_in_file | ファイル内のテキストを置換する。 |
| search_in_files_by_regex | 正規表現でファイル内を検索する。 |
| search_in_files_by_text | テキストでファイル内を検索する。 |
| get_symbol_info | 指定した位置のシンボル情報を取得する。 |
| rename_refactoring | シンボルの名前を変更する。 |
| execute_terminal_command | ターミナルコマンドを実行する。 |
| get_repositories | プロジェクトのVCSルート一覧を取得する。 |
詳細な設定については、JetBrains公式ドキュメントを参照すること。