「インストール - RustRover」の版間の差分
編集の要約なし |
編集の要約なし |
||
| (同じ利用者による、間の1版が非表示) | |||
| 180行目: | 180行目: | ||
<br> | <br> | ||
この設定は、以下に示すような場合に有効である。<br> | この設定は、以下に示すような場合に有効である。<br> | ||
* std::io::stdin().read_line()等の入力待ちを使用する場合 | * <code>std::io::stdin().read_line()</code> 等の入力待ちを使用する場合 | ||
* プログラムの実行結果をより見やすく表示する場合 | * プログラムの実行結果をより見やすく表示する場合 | ||
* IDE内蔵のコンソールで文字化け等の問題が発生する場合 | * IDE内蔵のコンソールで文字化け等の問題が発生する場合 | ||
| 187行目: | 187行目: | ||
== Cargoの設定 == | == Cargoの設定 == | ||
==== Cargo.tomlの編集 ==== | ==== Cargo.tomlの編集 ==== | ||
RustRoverは、<u>Cargo.toml</u> ファイルの編集時に、依存関係の自動補完とバージョン管理機能を提供する。<br> | |||
<br> | <br> | ||
依存関係を追加する場合、以下のようにCargo.tomlファイルを編集する。<br> | 依存関係を追加する場合、以下のようにCargo.tomlファイルを編集する。<br> | ||
<br> | |||
<syntaxhighlight lang="toml"> | <syntaxhighlight lang="toml"> | ||
# Cargo.tomlファイル | # Cargo.tomlファイル | ||
| 204行目: | 205行目: | ||
<br> | <br> | ||
または、以下のコマンドで依存関係を追加できる。<br> | または、以下のコマンドで依存関係を追加できる。<br> | ||
<br> | |||
cargo add serde --features derive | cargo add serde --features derive | ||
cargo add tokio --features full | cargo add tokio --features full | ||
<br> | <br> | ||
==== Cargoワークスペース ==== | ==== Cargoワークスペース ==== | ||
複数のクレートを含むワークスペースを作成する場合、ルートディレクトリに <u>Cargo.toml</u> ファイルを作成する。<br> | |||
<br> | |||
<syntaxhighlight lang="toml"> | <syntaxhighlight lang="toml"> | ||
# Cargo.tomlファイル (ワークスペースルート) | # Cargo.tomlファイル (ワークスペースルート) | ||
| 222行目: | 225行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
RustRoverは、ワークスペース内の全てのクレートを自動的に認識し、相互参照を提供する。<br> | |||
<br><br> | <br><br> | ||
| 228行目: | 231行目: | ||
==== GDBまたはLLDBのインストール ==== | ==== GDBまたはLLDBのインストール ==== | ||
Linuxでは、GDBまたはLLDBをインストールする必要がある。<br> | Linuxでは、GDBまたはLLDBをインストールする必要がある。<br> | ||
# | <br> | ||
# SUSE | |||
sudo zypper install gdb | sudo zypper install gdb | ||
## または、LLDBを使用する場合 | |||
sudo zypper install lldb | sudo zypper install lldb | ||
<br> | <br> | ||
# RHEL | # RHEL | ||
sudo dnf install gdb | sudo dnf install gdb | ||
## または、LLDBを使用する場合 | |||
sudo dnf install lldb | sudo dnf install lldb | ||
<br> | <br> | ||
==== デバッガの設定 ==== | ==== デバッガの設定 ==== | ||
[File] - [Settings] - [Build, Execution, Deployment] - [Debugger]を選択する。<br> | [File] - [Settings] - [Build, Execution, Deployment] - [Debugger]を選択する。<br> | ||
[Rust]セクションで、使用するデバッガ(GDBまたはLLDB)を選択する。<br> | [Rust]セクションで、使用するデバッガ (GDBまたはLLDB) を選択する。<br> | ||
<br> | <br> | ||
デバッグビルドを実行するには、以下の手順を実行する。<br> | デバッグビルドを実行するには、以下の手順を実行する。<br> | ||
# ブレークポイントを設定する箇所で、行番号の左側をクリックする。 | # ブレークポイントを設定する箇所で、行番号の左側をクリックする。 | ||
# [Run] - [Debug...] | # [Run] - [Debug...]を選択するか、ツールバーのデバッグアイコンを選択する。 | ||
# デバッガが起動し、ブレークポイントで停止する。 | # デバッガが起動し、ブレークポイントで停止する。 | ||
<br> | <br> | ||
| 257行目: | 259行目: | ||
<br> | <br> | ||
テストを実行する方法を、以下に示す。<br> | テストを実行する方法を、以下に示す。<br> | ||
# | # テスト関数の横に表示される実行アイコンを選択する。 | ||
# または、[Run] - [Run...]から該当するテストを選択する。 | # または、[Run] - [Run...]から該当するテストを選択する。 | ||
# または、以下のキーボードショートカットを使用する。 | # または、以下のキーボードショートカットを使用する。 | ||
#* 個別のテストを実行: Ctrl+Shift+F10 (Linux/Windows) | #* 個別のテストを実行: [Ctrl] + [Shift] + [F10] (Linux / Windows) | ||
#* 最後のテストを再実行: Shift+F10 (Linux/Windows) | #* 最後のテストを再実行: [Shift] + [F10] (Linux / Windows) | ||
<br> | <br> | ||
全てのテストを実行するには、以下のコマンドを使用する。<br> | 全てのテストを実行するには、以下のコマンドを使用する。<br> | ||
<br> | |||
cargo test | cargo test | ||
<br> | <br> | ||
特定のテストのみを実行するには、以下のようにする。<br> | 特定のテストのみを実行するには、以下のようにする。<br> | ||
<br> | |||
cargo test test_name | cargo test test_name | ||
<br><br> | <br><br> | ||
| 274行目: | 278行目: | ||
<br> | <br> | ||
Rustfmtをインストールする。<br> | Rustfmtをインストールする。<br> | ||
<br> | |||
rustup component add rustfmt | rustup component add rustfmt | ||
<br> | <br> | ||
| 282行目: | 287行目: | ||
手動でフォーマットを実行するには、以下の手順を実行する。<br> | 手動でフォーマットを実行するには、以下の手順を実行する。<br> | ||
# [Code] - [Reformat Code]を選択する。 | # [Code] - [Reformat Code]を選択する。 | ||
# | # または、[Ctrl] + [Alt] + [L]キー (Linux / Windows) を押下する。 | ||
<br> | |||
プロジェクトルートに <u>rustfmt.toml</u> ファイルを作成することで、フォーマット設定をカスタマイズできる。<br> | |||
<br> | <br> | ||
<syntaxhighlight lang="toml"> | <syntaxhighlight lang="toml"> | ||
# rustfmt.tomlファイル | # rustfmt.tomlファイル | ||
| 299行目: | 305行目: | ||
<br> | <br> | ||
Clippyをインストールする。<br> | Clippyをインストールする。<br> | ||
<br> | |||
rustup component add clippy | rustup component add clippy | ||
<br> | <br> | ||
| 304行目: | 311行目: | ||
<br> | <br> | ||
Clippyを手動で実行するには、以下のコマンドを使用する。<br> | Clippyを手動で実行するには、以下のコマンドを使用する。<br> | ||
<br> | |||
cargo clippy | cargo clippy | ||
<br> | <br> | ||
全ての警告を修正候補付きで表示するには、以下のコマンドを使用する。<br> | 全ての警告を修正候補付きで表示するには、以下のコマンドを使用する。<br> | ||
<br> | |||
cargo clippy --fix | cargo clippy --fix | ||
<br> | <br> | ||
特定のClippy lintを無効にする場合、以下のようにコード内で指定できる。<br> | 特定のClippy lintを無効にする場合、以下のようにコード内で指定できる。<br> | ||
<br> | |||
<syntaxhighlight lang="rust"> | <syntaxhighlight lang="rust"> | ||
#![allow(clippy::lint_name)] | #![allow(clippy::lint_name)] | ||
| 326行目: | 336行目: | ||
マクロ展開を表示する手順を、以下に示す。<br> | マクロ展開を表示する手順を、以下に示す。<br> | ||
# マクロ呼び出しにカーソルを置く。 | # マクロ呼び出しにカーソルを置く。 | ||
# [Tools] - [Rust] - [Show Macro Expansion]を選択する。 | # [Tools] - [Rust] - [Show Macro Expansion]を選択する。<br>または、[Ctrl] + [Shift] + [M]キー (Linux / Windows) を押下する。 | ||
<br> | <br> | ||
展開結果が別ウィンドウに表示され、マクロがどのようにコードを生成するかを確認できる。<br> | 展開結果が別ウィンドウに表示され、マクロがどのようにコードを生成するかを確認できる。<br> | ||
| 336行目: | 345行目: | ||
<br> | <br> | ||
Cargo Flamingoをインストールする。<br> | Cargo Flamingoをインストールする。<br> | ||
<br> | |||
cargo install flamegraph | cargo install flamegraph | ||
<br> | <br> | ||
プロファイリングを実行するには、以下のコマンドを使用する。<br> | プロファイリングを実行するには、以下のコマンドを使用する。<br> | ||
<br> | |||
cargo flamegraph | cargo flamegraph | ||
<br> | <br> | ||
生成されたフレームグラフ(flamegraph.svg)を、ブラウザで開いて確認する。<br> | 生成されたフレームグラフ (flamegraph.svg) を、ブラウザで開いて確認する。<br> | ||
<br> | <br> | ||
<u>※注意</u><br> | <u>※注意</u><br> | ||
<u>Linuxでは、perfツールへのアクセス権限が必要な場合がある。</u><br> | <u>Linuxでは、perfツールへのアクセス権限が必要な場合がある。</u><br> | ||
<u> | <u>その場合、以下に示すコマンドを実行する。</u><br> | ||
<br> | |||
echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid | echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid | ||
<br><br> | <br><br> | ||
| 353行目: | 365行目: | ||
<br> | <br> | ||
WASMターゲットをインストールする。<br> | WASMターゲットをインストールする。<br> | ||
<br> | |||
rustup target add wasm32-unknown-unknown | rustup target add wasm32-unknown-unknown | ||
<br> | <br> | ||
wasm-packをインストールする。<br> | wasm-packをインストールする。<br> | ||
<br> | |||
cargo install wasm-pack | cargo install wasm-pack | ||
<br> | <br> | ||
WASMプロジェクトをビルドするには、以下のコマンドを使用する。<br> | WASMプロジェクトをビルドするには、以下のコマンドを使用する。<br> | ||
<br> | |||
wasm-pack build --target web | wasm-pack build --target web | ||
<br> | <br> | ||
| 364行目: | 379行目: | ||
<br><br> | <br><br> | ||
== AI | == MCPサーバの設定 == | ||
Model Context Protocol (MCP)を使用することにより、AI Assistantは外部ツールやデータソースと連携できる。<br> | |||
MCPサーバに接続することで、AI Assistantの機能を大幅に拡張することができる。<br> | |||
<br> | |||
==== サポートされる転送メカニズム ==== | |||
AI Assistantは、以下に示す転送メカニズムをサポートしている。<br> | |||
<br> | |||
* Standard Input/Output (STDIO) | |||
*: AI AssistantがMCPサーバをサブプロセスとして起動し、標準入出力でデータを交換する。 | |||
* Streamable HTTP | |||
*: HTTPを使用してMCPサーバに接続する。 | |||
* SSE | |||
*: レガシーMCPサーバ向けの転送メカニズム | |||
<br> | |||
==== MCPサーバへの接続 ==== | |||
MCPサーバに接続する手順を以下に示す。<br> | |||
# [Settings] - [Tools] - [AI Assistant] - [Model Context Protocol (MCP)]を選択する。 | |||
# [Add]ボタンを押下して、新しいMCPサーバ設定を追加する。 | |||
# JSON設定を入力する。 | |||
# [OK]ボタンを押下する。 | |||
# [Apply]ボタンを押下して、MCPサーバを起動する。 | |||
<br> | |||
==== JSON設定例 ==== | |||
MCPサーバへの接続方法に応じて、JSON設定が異なる。<br> | |||
<br> | |||
===== ローカルインストール ===== | |||
MCPサーバがローカルにインストールされている場合の設定例を以下に示す。<br> | |||
<br> | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"mcpServers": { | |||
"filesystem": { | |||
"command": "node", | |||
"args": [ | |||
"/path/to/server/dist/index.js", | |||
"/Users/username/Desktop" | |||
] | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
===== NPXを使用する場合 ===== | |||
NPXを使用してMCPサーバを実行する場合の設定例を以下に示す。<br> | |||
<br> | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"mcpServers": { | |||
"filesystem": { | |||
"command": "npx", | |||
"args": [ | |||
"-y", | |||
"@modelcontextprotocol/server-filesystem", | |||
"/Users/username/Desktop" | |||
] | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
===== Dockerを使用する場合 ===== | |||
Dockerを使用してMCPサーバを実行する場合の設定例を以下に示す。<br> | |||
<br> | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"mcpServers": { | |||
"filesystem": { | |||
"command": "docker", | |||
"args": [ | |||
"run", | |||
"-i", | |||
"--rm", | |||
"--mount", "type=bind,src=/local/path,dst=/container/path", | |||
"mcp/filesystem", | |||
"/projects" | |||
] | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== | ===== リモートサーバ ===== | ||
リモートMCPサーバに接続する場合の設定例を以下に示す。<br> | |||
<br> | <br> | ||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
" | "mcpServers": { | ||
" | "microsoftdocs": { | ||
"url": "https://learn.microsoft.com/api/mcp" | |||
} | } | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | |||
==== IDEをMCPサーバとして使用する ==== | |||
JetBrains IDE (バージョン 2025.2以降) は統合MCPサーバを提供しており、外部クライアントからIDEのツールにアクセスできる。<br> | |||
<br> | |||
MCPサーバを有効にする手順を以下に示す。<br> | |||
# [Settings] - [Tools] - [MCP Server]を選択する。<br> | |||
# [Enable MCP Server]を有効にする。<br> | |||
# [Clients Auto-Configuration]セクションで、各クライアントの[Auto-Configure]ボタンを押下する。<br> | |||
# クライアントを再起動する。<br> | |||
<br> | |||
===== 手動設定 ===== | |||
手動で設定する場合、以下のいずれかの設定をコピーしてクライアントの設定ファイルに貼り付ける。<br> | |||
<br> | |||
*SSE Config | |||
*: SSE接続用の設定<br> | |||
* Stdio Config | |||
*: STDIO接続用の設定<br> | |||
<br> | |||
===== 確認なしでアクションを実行する ===== | |||
外部クライアントが確認なしでターミナルコマンドや実行構成を実行できるようにするには、以下に示す設定を有効にする。<br> | |||
<br> | |||
# [Settings] - [Tools] - [MCP Server]を選択する。<br> | |||
# [Command execution]セクションで、[Run shell commands or run configurations without confirmation (brave mode)]を有効にする。<br> | |||
# [Apply]ボタンを押下する。<br> | |||
<br> | |||
==== サポートされるツール ==== | |||
下表に、統合MCPサーバが提供するツールの一覧を示す。<br> | |||
<br> | <br> | ||
<center> | <center> | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ 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ルート一覧を取得する。 | ||
|} | |} | ||
</center> | </center> | ||
<br> | <br> | ||
==== | 詳細な設定については、[https://www.jetbrains.com/help/ai-assistant/mcp.html JetBrains公式ドキュメント]を参照すること。<br> | ||
<br><br> | |||
== ACPを使用したOpenCodeとの連携 == | |||
ACP (Agent Client Protocol) を使用すると、RustRoverのAI ChatからOpenCodeをコーディングエージェントとして利用できる。<br> | |||
<br> | |||
ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するプロトコルである。<br> | |||
エディタはACP互換エージェントをサブプロセスとして起動し、JSON-RPC over stdioで通信する。<br> | |||
RustRoverは、OpenCodeをサブプロセスとして起動して標準入出力を介して通信する。<br> | |||
<br> | |||
ACPエージェントはJetBrains AIサービスサブスクリプションなしで利用できるため、RustRoverの非商用無料ライセンスでもOpenCodeをACP経由で使用可能である。<br> | |||
<br> | |||
==== 前提条件 ==== | |||
* OpenCodeがインストールされ、プロバイダ認証が完了していること。 | |||
* RustRoverでAI AssistantおよびAI Chatが利用可能であること。 | |||
*: AI AssistantプラグインはRustRoverと互換であり、非商用無料ライセンスでも有効化できる。 | |||
* WSL (Windows Subsystem for Linux) 環境ではないこと。 | |||
*: JetBrains公式ドキュメントでWSL環境でのACP互換エージェントはサポート対象外とされている。 | |||
<br> | |||
==== OpenCode側の認証とプロジェクト設定 ==== | |||
OpenCodeの認証は、RustRoverの設定ファイル <u>acp.json</u> ファイルにはAPIキーを記述せず、OpenCode側で行う。<br> | |||
JetBrains公式ドキュメントでも、ほとんどのエージェントはAPIキーを <u>acp.json</u> ファイルに記述せず、ターミナルで認証することが推奨されている。<br> | |||
<br> | |||
プロバイダを認証するには、ターミナルで以下に示すコマンドを実行する。<br> | |||
<br> | |||
opencode auth login | |||
<br> | |||
認証済みのプロバイダを確認する場合は、以下に示すコマンドを実行する。<br> | |||
<br> | |||
opencode auth list | |||
<br> | |||
認証情報は、<u>~/.local/share/opencode/auth.json</u> ファイルに保存される。<br> | |||
<br> | |||
プロジェクト固有のモデル、MCPサーバ、権限等は、Cargoプロジェクトまたはワークスペースのルートに <u>opencode.json</u> または <u>opencode.jsonc</u> ファイルを配置して設定する。<br> | |||
<br> | |||
OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索する。<br> | |||
CargoワークスペースのルートがGitリポジトリのルートと一致する場合が多いため、リポジトリまたはワークスペースルートに配置すれば自動検出される。<br> | |||
<br> | |||
作業ルールや設計方針は、同じプロジェクトルートの <u>AGENTS.md</u> ファイルに記述する。<br> | |||
ACP経由でも <u>AGENTS.md</u> ファイルのプロジェクトルールは有効である。<br> | |||
<br> | |||
==== JetBrains側のACP設定 ==== | |||
===== ~/.jetbrains/acp.jsonの作成 ===== | |||
JetBrains IDEのACP設定は、ユーザ単位の <u>~/.jetbrains/acp.json</u> ファイルで管理する。<br> | |||
<br> | |||
AI Chatツールウィンドウ右上の[...(More)]ボタンから[Add Custom Agent]を選択すると、設定ファイルを作成して編集できる。<br> | |||
<br> | |||
手動で作成する場合は、次のコマンドを実行する。<br> | |||
<br> | |||
mkdir -p ~/.jetbrains | |||
<br> | |||
===== OpenCode実行ファイルの絶対パスの確認 ===== | |||
<code>command</code> キーには、OpenCode実行ファイルの絶対パスを指定する。<br> | |||
JetBrains公式ドキュメントで、<code>command</code> パラメータには実行ファイルのフルパスを使用することが明記されている。<br> | |||
<br> | |||
GUIから起動されるRustRoverのプロセスは、環境変数 <codePATH</code> を継承しない場合があるため、相対パスやエイリアスは失敗する可能性がある。<br> | |||
<br> | |||
次のコマンドで実行ファイルの場所を確認する。<br> | |||
<br> | |||
command -v opencode | |||
readlink -f "$(command -v opencode)" | |||
<br> | |||
出力されたパスを <code>command</code> キーの値に使用する。<br> | |||
<br> | |||
===== acp.jsonの記述 ===== | |||
<u>~/.jetbrains/acp.json</u> ファイルに、次の内容を記述する。<br> | |||
<br> | <br> | ||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
"default_mcp_settings": { | |||
"use_idea_mcp": true, | |||
"use_custom_mcp": true | |||
}, | |||
"agent_servers": { | |||
"OpenCode": { | |||
"command": "/home/<ユーザ名>/.opencode/bin/opencode", | |||
"args": [ | |||
"acp" | |||
] | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
<code>--cwd</code> | <code>command</code> キーのパスは、実際に確認した絶対パスへ置き換える。<br> | ||
<code>args</code> 配列には <code>acp</code> を指定して、OpenCodeをACPサーバとして起動する。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ acp.jsonの設定項目 | |||
! 項目 !! 配置 !! 説明 | |||
|- | |||
| <code>default_mcp_settings</code> || 最上位 || 全ローカルエージェントに適用する既定のMCP設定<br>エージェント固有設定で上書き可能 | |||
|- | |||
| <code>use_custom_mcp</code> || <code>default_mcp_settings</code> 配下 || ユーザが設定したMCPサーバをエージェントへ公開する。<br>既定値は <u>true</u> | |||
|- | |||
| <code>use_idea_mcp</code> || <code>default_mcp_settings</code> 配下 || IntelliJ MCP Serverをエージェントへ公開する。<br>既定値は <u>false</u><br><br>trueの場合、<code>idea_mcp_allowed_tools</code> キーで公開ツールを制限可能 | |||
|- | |||
| <code>agent_servers</code> || 最上位 || ACPエージェントの一覧<br>キーはAI Chatに表示される名前になる。 | |||
|- | |||
| <code>command</code> || 各エージェント配下 || エージェントの実行ファイル<br>JetBrainsがサブプロセスとして起動するため、絶対パスを指定する。 | |||
|- | |||
| <code>args</code> || 各エージェント配下 || 起動時に渡す引数の配列<br>OpenCodeでは <code>acp</code> を指定する。 | |||
|- | |||
| <code>env</code> (省略可能) || 各エージェント配下 || エージェントプロセスに設定する環境変数<br>プロキシ等が必要な場合に使用する。<br>APIキーの平文記述は避けること。 | |||
|} | |||
</center> | |||
<br> | |||
===== 特定の作業ディレクトリで起動する設定 ===== | |||
<code>--cwd</code> オプションを使用すると、特定の作業ディレクトリでOpenCodeを起動できる。<br> | |||
<br> | |||
複数のCargoプロジェクトを扱う場合に有効である。<br> | |||
<br> | <br> | ||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
"agent_servers": { | |||
"OpenCode-ProjectA": { | |||
"command": "/home/<ユーザ名>/.opencode/bin/opencode", | |||
"args": [ | |||
"acp", | |||
"--cwd", | |||
"command": "/ | "/path/to/project-a" | ||
] | |||
}, | |||
"OpenCode-ProjectB": { | |||
"command": "/home/<ユーザ名>/.opencode/bin/opencode", | |||
"args": [ | |||
"acp", | |||
"--cwd", | |||
"/path/to/project-b" | |||
] | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
==== | ==== ACP Registryからのインストール ==== | ||
JetBrains IDE バージョン 2025.3以降では、ACP RegistryからOpenCodeを直接インストールできる。<br> | |||
OpenCodeはACP Registryに登録されており、"Community-driven, fully open-source agent"として提供されている。<br> | |||
<br> | |||
ACP Registryからインストールする手順を、以下に示す。<br> | |||
# AI Chatツールウィンドウを開く。 | |||
# チャットモードセレクタから[Install From ACP Registry]を選択する。 | |||
#: または、[Settings] - [Tools] - [AI Assistant] - [Agents]から開くこともできる。<br> | |||
#: <br> | |||
# [Agents]ページで、OpenCodeを選択してインストールする。 | |||
# インストール完了後、AI ChatのエージェントセレクタにOpenCodeが表示される。 | |||
<br> | |||
ACP Registryを利用するには、RustRoverおよびJetBrains AI プラグインを最新版へ更新する必要がある。<br> | |||
<br> | |||
==== RustRoverでの有効化と動作確認 ==== | |||
===== 設定の反映 ===== | |||
<u>acp.json</u> ファイルの保存後、RustRoverのAI Chatでエージェントを選択できる。<br> | |||
<br> | |||
表示されない場合は、JSON形式と実行ファイルのパスを確認して、RustRoverを再起動する。<br> | |||
<br> | |||
===== エージェントの選択 ===== | |||
RustRoverでAI Chatツールウィンドウを開いて、チャットモードのエージェントセレクタから[OpenCode]を選択する。<br> | |||
<br> | |||
===== Cargoプロジェクトの動作確認 ===== | |||
Cargoプロジェクトまたはワークスペースを開いた状態で、読み取り中心の指示を送信する。<br> | |||
<br> | |||
# プロンプト例 | |||
このCargoプロジェクトの構成と主要クレートを調査し、ビルド方法とテスト方法を要約してください。 | |||
ファイルは変更しないでください。 | |||
<br> | <br> | ||
エージェントが応答し、プロジェクト内のファイルを参照できれば、ACP連携を確認できる。<br> | |||
<br> | <br> | ||
===== OpenCode単体での事前確認 ===== | |||
RustRover側を確認する前に、ターミナルで <code>opencode acp</code> コマンドを実行して、起動できるか確認する。<br> | |||
JetBrains公式ドキュメントでも、ターミナルで手動実行して動作確認することが推奨されている。<br> | |||
<br> | <br> | ||
<u> | ~/.opencode/bin/opencode acp | ||
<u>acp. | <br> | ||
<code>command</code> キーに設定した絶対パスへ置き換えて実行する。<br> | |||
このコマンドはACPサーバを起動し、標準入力と標準出力でACPメッセージを待機する。<br> | |||
<br> | |||
==== プロジェクト単位の設定 ==== | |||
ACPエージェントの登録はユーザ単位の <u>~/.jetbrains/acp.json</u> ファイルで行う。<br> | |||
<br> | |||
一方、OpenCodeの動作はプロジェクト単位で設定できる。<br> | |||
次のファイルをCargoプロジェクトまたはワークスペースのルートに配置する。<br> | |||
<br> | |||
* <u>opencode.json</u> または <u>opencode.jsonc</u> | |||
*: モデル、MCPサーバ、権限等のプロジェクト設定を記述する。 | |||
* <u>AGENTS.md</u> | |||
*: 作業ルール、設計方針、禁止事項等を記述する。 | |||
<br> | |||
OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索するため、サブディレクトリから作業してもルートの設定が適用される。<br> | |||
<br> | |||
==== トラブルシューティング ==== | |||
===== OpenCodeエージェントがAI Chatに表示されない ===== | |||
* 原因 | |||
*: <u>acp.json</u> ファイルのJSON形式が正しくない、または、設定変更がRustRoverに反映されていない。 | |||
*: <br> | |||
* 解決方法 | |||
** <u>acp.json</u> ファイルが正しいJSON形式であることを確認する。 | |||
** RustRoverを再起動する。 | |||
<br> | |||
===== エージェントの起動に失敗する ===== | |||
* 原因 | |||
*: <code>command</code> キーの絶対パスが誤っている、OpenCodeの認証が完了していない、実行ファイルを起動できない。 | |||
*: <br> | |||
* 解決方法 | |||
** <code>command -v opencode</code> コマンド および <code>readlink -f</code> コマンドで絶対パスを確認する。 | |||
** 設定した絶対パスで <code>opencode acp</code> コマンドを手動実行する。 | |||
** <code>opencode auth list</code> コマンドを実行して、プロバイダ認証を確認する。 | |||
<br> | |||
===== ACPログの取得 ===== | |||
AI Chatツールウィンドウ右上の [...(More)]ボタンから[Get ACP Logs]を選択すると、エージェントログのアーカイブを取得できる。<br> | |||
<br> | |||
詳細な要求と応答を記録するには、Registryの <code>llm.agent.extended.logging</code> キーを有効してRustRoverを再起動する。<br> | |||
<br> | |||
Registryを開く手順を、以下に示す。<br> | |||
# [Navigate]メニュー - [Search Everywhere]を選択する、または、[Shift]キーを2回押下して検索ウィンドウを開く。 | |||
# <u>Registry</u> と入力して、[Enter]キーを押下する。 | |||
# ダイアログで[Ctrl] + [F]キーを押下して、<code>llm.agent.extended.logging</code> キーを検索して、有効化する。 | |||
# [Close]ボタンを押下して、RustRoverを再起動する。 | |||
<br> | |||
ログにはチャット内容等の機密情報が含まれる可能性があるため、共有前に確認すること。<br> | |||
<br> | |||
==== セキュリティと運用上の注意 ==== | |||
* APIキーを <u>~/.jetbrains/acp.json</u> ファイルに平文で記述しないこと。 | |||
*: OpenCodeの認証機能 (<code>opencode auth login</code>) で設定した認証情報を使用する。 | |||
*: 認証情報は、<u>~/.local/share/opencode/auth.json</u> ファイルに保存される。 | |||
* <code>command</code> キーには絶対パスを指定すること。 | |||
*: シェルのエイリアスや相対パスは、RustRoverから起動できない場合がある。 | |||
* <code>use_idea_mcp</code> キー と <code>use_custom_mcp</code> キーの公開範囲を確認すること。 | |||
*: 有効にしたMCPサーバの機能がエージェントから利用可能になる。 | |||
*: 必要最小限に留め、<code>idea_mcp_allowed_tools</code> キーでツールを制限できる。 | |||
* 詳細ログを共有する前に機密情報を除去すること。 | |||
*: <code>llm.agent.extended.logging</code> 有効時のログには、チャット内容やファイル内容が含まれる可能性がある。 | |||
* WSL環境ではACP互換エージェントを使用しないこと。 | |||
*: JetBrains公式ドキュメントでサポート対象外とされている。 | |||
<br> | |||
==== 関連情報 ==== | |||
* [https://www.jetbrains.com/help/ai-assistant/acp.html JetBrains公式 ACPドキュメント] | |||
* [https://opencode.ai/docs/acp/ OpenCode公式 ACP Support] | |||
* [https://opencode.ai/docs/cli/ OpenCode公式 CLI] | |||
* [https://opencode.ai/docs/config/ OpenCode公式 Config] | |||
* [https://agentclientprotocol.com/ Agent Client Protocol仕様] | |||
* [[インストール - OpenCode]] | |||
<br><br> | <br><br> | ||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Rust]] | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Rust]] | ||
2026年8月15日 (土) 00:53時点における最新版
概要
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をインストールする必要がある。
# SUSE sudo zypper install gdb ## または、LLDBを使用する場合 sudo zypper install lldb
# RHEL 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]を指定することもできる。
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公式ドキュメントを参照すること。
ACPを使用したOpenCodeとの連携
ACP (Agent Client Protocol) を使用すると、RustRoverのAI ChatからOpenCodeをコーディングエージェントとして利用できる。
ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するプロトコルである。
エディタはACP互換エージェントをサブプロセスとして起動し、JSON-RPC over stdioで通信する。
RustRoverは、OpenCodeをサブプロセスとして起動して標準入出力を介して通信する。
ACPエージェントはJetBrains AIサービスサブスクリプションなしで利用できるため、RustRoverの非商用無料ライセンスでもOpenCodeをACP経由で使用可能である。
前提条件
- OpenCodeがインストールされ、プロバイダ認証が完了していること。
- RustRoverでAI AssistantおよびAI Chatが利用可能であること。
- AI AssistantプラグインはRustRoverと互換であり、非商用無料ライセンスでも有効化できる。
- WSL (Windows Subsystem for Linux) 環境ではないこと。
- JetBrains公式ドキュメントでWSL環境でのACP互換エージェントはサポート対象外とされている。
OpenCode側の認証とプロジェクト設定
OpenCodeの認証は、RustRoverの設定ファイル acp.json ファイルにはAPIキーを記述せず、OpenCode側で行う。
JetBrains公式ドキュメントでも、ほとんどのエージェントはAPIキーを acp.json ファイルに記述せず、ターミナルで認証することが推奨されている。
プロバイダを認証するには、ターミナルで以下に示すコマンドを実行する。
opencode auth login
認証済みのプロバイダを確認する場合は、以下に示すコマンドを実行する。
opencode auth list
認証情報は、~/.local/share/opencode/auth.json ファイルに保存される。
プロジェクト固有のモデル、MCPサーバ、権限等は、Cargoプロジェクトまたはワークスペースのルートに opencode.json または opencode.jsonc ファイルを配置して設定する。
OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索する。
CargoワークスペースのルートがGitリポジトリのルートと一致する場合が多いため、リポジトリまたはワークスペースルートに配置すれば自動検出される。
作業ルールや設計方針は、同じプロジェクトルートの AGENTS.md ファイルに記述する。
ACP経由でも AGENTS.md ファイルのプロジェクトルールは有効である。
JetBrains側のACP設定
~/.jetbrains/acp.jsonの作成
JetBrains IDEのACP設定は、ユーザ単位の ~/.jetbrains/acp.json ファイルで管理する。
AI Chatツールウィンドウ右上の[...(More)]ボタンから[Add Custom Agent]を選択すると、設定ファイルを作成して編集できる。
手動で作成する場合は、次のコマンドを実行する。
mkdir -p ~/.jetbrains
OpenCode実行ファイルの絶対パスの確認
command キーには、OpenCode実行ファイルの絶対パスを指定する。
JetBrains公式ドキュメントで、command パラメータには実行ファイルのフルパスを使用することが明記されている。
GUIから起動されるRustRoverのプロセスは、環境変数 <codePATH を継承しない場合があるため、相対パスやエイリアスは失敗する可能性がある。
次のコマンドで実行ファイルの場所を確認する。
command -v opencode readlink -f "$(command -v opencode)"
出力されたパスを command キーの値に使用する。
acp.jsonの記述
~/.jetbrains/acp.json ファイルに、次の内容を記述する。
{
"default_mcp_settings": {
"use_idea_mcp": true,
"use_custom_mcp": true
},
"agent_servers": {
"OpenCode": {
"command": "/home/<ユーザ名>/.opencode/bin/opencode",
"args": [
"acp"
]
}
}
}
command キーのパスは、実際に確認した絶対パスへ置き換える。
args 配列には acp を指定して、OpenCodeをACPサーバとして起動する。
| 項目 | 配置 | 説明 |
|---|---|---|
default_mcp_settings |
最上位 | 全ローカルエージェントに適用する既定のMCP設定 エージェント固有設定で上書き可能 |
use_custom_mcp |
default_mcp_settings 配下 |
ユーザが設定したMCPサーバをエージェントへ公開する。 既定値は true |
use_idea_mcp |
default_mcp_settings 配下 |
IntelliJ MCP Serverをエージェントへ公開する。 既定値は false trueの場合、 idea_mcp_allowed_tools キーで公開ツールを制限可能
|
agent_servers |
最上位 | ACPエージェントの一覧 キーはAI Chatに表示される名前になる。 |
command |
各エージェント配下 | エージェントの実行ファイル JetBrainsがサブプロセスとして起動するため、絶対パスを指定する。 |
args |
各エージェント配下 | 起動時に渡す引数の配列 OpenCodeでは acp を指定する。
|
env (省略可能) |
各エージェント配下 | エージェントプロセスに設定する環境変数 プロキシ等が必要な場合に使用する。 APIキーの平文記述は避けること。 |
特定の作業ディレクトリで起動する設定
--cwd オプションを使用すると、特定の作業ディレクトリでOpenCodeを起動できる。
複数のCargoプロジェクトを扱う場合に有効である。
{
"agent_servers": {
"OpenCode-ProjectA": {
"command": "/home/<ユーザ名>/.opencode/bin/opencode",
"args": [
"acp",
"--cwd",
"/path/to/project-a"
]
},
"OpenCode-ProjectB": {
"command": "/home/<ユーザ名>/.opencode/bin/opencode",
"args": [
"acp",
"--cwd",
"/path/to/project-b"
]
}
}
}
ACP Registryからのインストール
JetBrains IDE バージョン 2025.3以降では、ACP RegistryからOpenCodeを直接インストールできる。
OpenCodeはACP Registryに登録されており、"Community-driven, fully open-source agent"として提供されている。
ACP Registryからインストールする手順を、以下に示す。
- AI Chatツールウィンドウを開く。
- チャットモードセレクタから[Install From ACP Registry]を選択する。
- または、[Settings] - [Tools] - [AI Assistant] - [Agents]から開くこともできる。
- または、[Settings] - [Tools] - [AI Assistant] - [Agents]から開くこともできる。
- [Agents]ページで、OpenCodeを選択してインストールする。
- インストール完了後、AI ChatのエージェントセレクタにOpenCodeが表示される。
ACP Registryを利用するには、RustRoverおよびJetBrains AI プラグインを最新版へ更新する必要がある。
RustRoverでの有効化と動作確認
設定の反映
acp.json ファイルの保存後、RustRoverのAI Chatでエージェントを選択できる。
表示されない場合は、JSON形式と実行ファイルのパスを確認して、RustRoverを再起動する。
エージェントの選択
RustRoverでAI Chatツールウィンドウを開いて、チャットモードのエージェントセレクタから[OpenCode]を選択する。
Cargoプロジェクトの動作確認
Cargoプロジェクトまたはワークスペースを開いた状態で、読み取り中心の指示を送信する。
# プロンプト例 このCargoプロジェクトの構成と主要クレートを調査し、ビルド方法とテスト方法を要約してください。 ファイルは変更しないでください。
エージェントが応答し、プロジェクト内のファイルを参照できれば、ACP連携を確認できる。
OpenCode単体での事前確認
RustRover側を確認する前に、ターミナルで opencode acp コマンドを実行して、起動できるか確認する。
JetBrains公式ドキュメントでも、ターミナルで手動実行して動作確認することが推奨されている。
~/.opencode/bin/opencode acp
command キーに設定した絶対パスへ置き換えて実行する。
このコマンドはACPサーバを起動し、標準入力と標準出力でACPメッセージを待機する。
プロジェクト単位の設定
ACPエージェントの登録はユーザ単位の ~/.jetbrains/acp.json ファイルで行う。
一方、OpenCodeの動作はプロジェクト単位で設定できる。
次のファイルをCargoプロジェクトまたはワークスペースのルートに配置する。
- opencode.json または opencode.jsonc
- モデル、MCPサーバ、権限等のプロジェクト設定を記述する。
- AGENTS.md
- 作業ルール、設計方針、禁止事項等を記述する。
OpenCodeは起動時にカレントディレクトリから設定ファイルを探して、最も近いGitディレクトリまで上方向へ探索するため、サブディレクトリから作業してもルートの設定が適用される。
トラブルシューティング
OpenCodeエージェントがAI Chatに表示されない
- 原因
- acp.json ファイルのJSON形式が正しくない、または、設定変更がRustRoverに反映されていない。
- 解決方法
- acp.json ファイルが正しいJSON形式であることを確認する。
- RustRoverを再起動する。
エージェントの起動に失敗する
- 原因
commandキーの絶対パスが誤っている、OpenCodeの認証が完了していない、実行ファイルを起動できない。
- 解決方法
command -v opencodeコマンド およびreadlink -fコマンドで絶対パスを確認する。- 設定した絶対パスで
opencode acpコマンドを手動実行する。 opencode auth listコマンドを実行して、プロバイダ認証を確認する。
ACPログの取得
AI Chatツールウィンドウ右上の [...(More)]ボタンから[Get ACP Logs]を選択すると、エージェントログのアーカイブを取得できる。
詳細な要求と応答を記録するには、Registryの llm.agent.extended.logging キーを有効してRustRoverを再起動する。
Registryを開く手順を、以下に示す。
- [Navigate]メニュー - [Search Everywhere]を選択する、または、[Shift]キーを2回押下して検索ウィンドウを開く。
- Registry と入力して、[Enter]キーを押下する。
- ダイアログで[Ctrl] + [F]キーを押下して、
llm.agent.extended.loggingキーを検索して、有効化する。 - [Close]ボタンを押下して、RustRoverを再起動する。
ログにはチャット内容等の機密情報が含まれる可能性があるため、共有前に確認すること。
セキュリティと運用上の注意
- APIキーを ~/.jetbrains/acp.json ファイルに平文で記述しないこと。
- OpenCodeの認証機能 (
opencode auth login) で設定した認証情報を使用する。 - 認証情報は、~/.local/share/opencode/auth.json ファイルに保存される。
- OpenCodeの認証機能 (
commandキーには絶対パスを指定すること。- シェルのエイリアスや相対パスは、RustRoverから起動できない場合がある。
use_idea_mcpキー とuse_custom_mcpキーの公開範囲を確認すること。- 有効にしたMCPサーバの機能がエージェントから利用可能になる。
- 必要最小限に留め、
idea_mcp_allowed_toolsキーでツールを制限できる。
- 詳細ログを共有する前に機密情報を除去すること。
llm.agent.extended.logging有効時のログには、チャット内容やファイル内容が含まれる可能性がある。
- WSL環境ではACP互換エージェントを使用しないこと。
- JetBrains公式ドキュメントでサポート対象外とされている。
関連情報
- JetBrains公式 ACPドキュメント
- OpenCode公式 ACP Support
- OpenCode公式 CLI
- OpenCode公式 Config
- Agent Client Protocol仕様
- インストール - OpenCode