MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - RustRoverのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - RustRover
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == JetBrains RustRoverは、IntelliJプラットフォームをベースにしたRust専用の統合開発環境である。<br> <br> RustRoverには、Cargo、デバッガ、Rustfmt、Clippy等の主要なRustツールチェーンとの統合機能が含まれており、Rust開発に必要な機能が最初から備わっている。<br> また、Web開発関連のプラグインも付属しているので、Webシステム開発も同じ環境で開発できる。<br> <br><br> == RustRoverのインストール == [https://www.jetbrains.com/rust/ Jetbrains RustRoverの公式Webサイト]からRustRoverをダウンロードする。<br> <br> ダウンロードしたファイルを解凍する。<br> tar xf RustRover-<バージョン>.tar.gz <br> 次に、デスクトップエントリファイルを作成する。<br> vi ~/.local/applications/JetBrains_RustRover.desktop <br> <syntaxhighlight lang="ini"> # ~/.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; </syntaxhighlight> <br><br> == ウォッチハンドルの設定 == VCS、ビルドツール、コードジェネレータ等による変更等、外部からファイルの変更を把握することが不可欠である。<br> そのため、IntelliJプラットフォームでは、そのような変更を監視するためのバックグラウンドプロセスを実行している。<br> <br> この方法は各プラットフォームで異なり、Linuxにおいては、Inotify機能を使用している。<br> <br> Inotify機能において、プロジェクト内の各ディレクトリにウォッチハンドルを設定する必要がある。<br> しかし、ウォッチハンドルの初期値は、プロジェクトによっては十分ではない可能性がある。<br> <br> IntelliJプラットフォームでは、ウォッチハンドルの制限に達する場合、ディレクトリツリーの再帰的なスキャンに戻ってしまう。<br> <br> この状況を防ぐためには、ウォッチの上限 (例: 512K) を増加させることを推奨する。<br> <br> /etc/sysctl.confファイル または /etc/sysctl.d/ディレクトリに*.confファイル(例. idea.conf)に、以下の設定を追加する。<br> sudo vi /etc/sysctl.conf または sudo vi /etc/sysctl.d/idea.conf <br> # /etc/sysctl.confファイル または /etc/sysctl.d/idea.confファイル fs.inotify.max_user_watches = 1048576 <br> 上記の変更を適用する。<br> sudo sysctl -p --system <br> RustRoverを起動している場合は、RustRoverを再起動する。<br> <br> 現在の設定を確認する場合は、以下に示すコマンドを実行する。<br> sudo sysctl fs.inotify.max_user_watches <br> <u>※注意</u><br> <u>監視制限はユーザごとの設定である。</u><br> <u>もし、同一ユーザでInotifyを使用している他のソフトウェアが動作している場合は、全てのソフトウェアのニーズに合うように制限値を高くする必要がある。</u><br> <br> 一部のLinuxディストリビューションでは、この設定を /usr/lib/sysctl.d ディレクトリ配下のファイルで構成する場合がある。<br> これらのディレクトリ内のファイルはファイル名の順序で読み込まれるため、/etc/sysctl.d/idea.conf を使用してシステム設定を上書きし、優先度の高い設定を適用できる。<br> <br><br> == RustRoverの起動 == cd /<RustRoverのインストールディレクトリ>/bin ./rustrover <br><br> == RustRoverの設定 == ==== 行番号と空白文字の表示 ==== [File] - [Settings] - [Editor] - [General] - [Appearance]を選択する。<br> [Show line numbers]チェックボックスと[Show whitespaces]チェックボックスにチェックを入力する。<br> <br> ==== Samba上にプロジェクトを置く場合 ==== External file changes sync may be slowを表示させないために、<br> [File] - [Settings] - [Appearance & Behavior] - [Notifications]から[File Watcher Messages]を[No popup]にする。<br> <br><br> == Rustツールチェーンの設定 == RustRoverでRust開発を行うには、Rustツールチェーンのインストールが必要である。<br> <br> ==== Rustのインストール ==== Rustをインストールするには、rustupを使用することを推奨する。<br> curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh <br> インストール完了後、シェルを再起動するか、以下のコマンドを実行する。<br> source $HOME/.cargo/env <br> Rustのバージョンを確認する。<br> rustc --version cargo --version <br> ==== RustRoverでのツールチェーン設定 ==== [File] - [Settings] - [Languages & Frameworks] - [Rust]を選択する。<br> [Toolchain location]でrustupのパスを指定する。(通常は自動検出される)<br> <br> 標準ライブラリのソースコードを取得する。<br> rustup component add rust-src <br><br> == エラー関連 == ==== Cargoプロジェクトのビルドエラー ==== Cargoのキャッシュが破損している場合、以下のコマンドでクリーンアップを実行する。<br> cargo clean <br> ==== Rust Analyzerの問題 ==== Rust Analyzerが正常に動作しない場合、以下に示す手順を試す。<br> # [File] - [Invalidate Caches...]を選択して、キャッシュをクリアする。 # RustRoverを再起動する。 <br> ==== ツールチェーンのバージョン指定 ==== 特定のRustバージョンを使用する場合、rust-toolchain.tomlファイルをプロジェクトルートに作成する。<br> <syntaxhighlight lang="toml"> # rust-toolchain.tomlファイル [toolchain] channel = "1.75.0" components = ["rustfmt", "clippy"] </syntaxhighlight> <br><br> == RustRoverの日本語化 == RustRover 2024.1以降、日本語化プラグインで日本語にローカライズ可能である。<br> <br> # [https://plugins.jetbrains.com/plugin/13964-japanese-language-pack------ JetBrainsの公式Webサイト]から、Japanese Language Packプラグインをダウンロードする。<br><u>この時、zipファイルは解凍しないことに注意する。</u> # ダウンロードしたプラグインファイルを、<RustRoverのインストールディレクトリ>/pluginsディレクトリに配置する。 # RustRoverのメイン画面のメニューバーから、[Settings]または[Preferences] - [Plugins]を選択する。 # [Settings]画面の上側にある歯車ボタンから、[Install Plugin from Disk...]を選択する。 # 上記でダウンロードしたJapanese Language Packプラグインファイルを選択してインストールする。 # RustRoverを再起動して、正常にローカライズできたかどうかを確認する。 <br><br> == ビルドターゲットの設定 == Rustでは、クロスコンパイルのためにターゲットトリプルを指定することができる。<br> <br> 利用可能なターゲットを確認する。<br> rustup target list <br> 特定のターゲットをインストールする。<br> rustup target add x86_64-unknown-linux-gnu rustup target add x86_64-pc-windows-gnu <br> RustRoverでビルドターゲットを指定する手順を、以下に示す。<br> # [Run] - [Edit Configurations...]を選択する。 # 該当する実行構成を選択する。 # [Command]セクションの[Target]フィールドでターゲットトリプルを指定する。 # [Apply]ボタンを押下して設定を保存する。 <br> または、プロジェクトの.cargo/config.tomlファイルでデフォルトターゲットを設定できる。<br> <syntaxhighlight lang="toml"> # .cargo/config.tomlファイル [build] target = "x86_64-unknown-linux-gnu" </syntaxhighlight> <br><br> == 外部コンソールの使用 == RustRoverでは、出力コンソールを外部コンソールアプリケーションに変更することができる。<br> これにより、プログラムの実行時において、別ウインドウでコンソールが起動する。<br> <br> なお、この設定はプロジェクトごとに個別に設定することが可能である。<br> <br> # まず、プロジェクトの実行構成を開く。 #* [Run]メニューバー - [Edit Configurations...]を選択する。 #* または、ツールバーの[実行構成]プルダウンの横にある編集ボタンを選択する。 #: <br> # 該当する実行構成を選択して、以下に示す設定を変更する。 ## [Configuration]タブを開く。 ## [Run in external console]チェックボックスにチェックを入力する。 #: <br> # [Apply]ボタンを押下して設定を保存する。 <br> この設定は、以下に示すような場合に有効である。<br> * <code>std::io::stdin().read_line()</code> 等の入力待ちを使用する場合 * プログラムの実行結果をより見やすく表示する場合 * IDE内蔵のコンソールで文字化け等の問題が発生する場合 <br><br> == Cargoの設定 == ==== Cargo.tomlの編集 ==== RustRoverは、<u>Cargo.toml</u> ファイルの編集時に、依存関係の自動補完とバージョン管理機能を提供する。<br> <br> 依存関係を追加する場合、以下のようにCargo.tomlファイルを編集する。<br> <br> <syntaxhighlight lang="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"] } </syntaxhighlight> <br> または、以下のコマンドで依存関係を追加できる。<br> <br> cargo add serde --features derive cargo add tokio --features full <br> ==== Cargoワークスペース ==== 複数のクレートを含むワークスペースを作成する場合、ルートディレクトリに <u>Cargo.toml</u> ファイルを作成する。<br> <br> <syntaxhighlight lang="toml"> # Cargo.tomlファイル (ワークスペースルート) [workspace] members = [ "crate_a", "crate_b", ] [workspace.dependencies] serde = "1.0" </syntaxhighlight> <br> RustRoverは、ワークスペース内の全てのクレートを自動的に認識し、相互参照を提供する。<br> <br><br> == デバッグ設定 == ==== GDBまたはLLDBのインストール ==== Linuxでは、GDBまたはLLDBをインストールする必要がある。<br> <br> # SUSE sudo zypper install gdb ## または、LLDBを使用する場合 sudo zypper install lldb <br> # RHEL sudo dnf install gdb ## または、LLDBを使用する場合 sudo dnf install lldb <br> ==== デバッガの設定 ==== [File] - [Settings] - [Build, Execution, Deployment] - [Debugger]を選択する。<br> [Rust]セクションで、使用するデバッガ (GDBまたはLLDB) を選択する。<br> <br> デバッグビルドを実行するには、以下の手順を実行する。<br> # ブレークポイントを設定する箇所で、行番号の左側をクリックする。 # [Run] - [Debug...]を選択するか、ツールバーのデバッグアイコンを選択する。 # デバッガが起動し、ブレークポイントで停止する。 <br> <u>※注意</u><br> <u>リリースビルドではデバッグ情報が削除されるため、デバッグにはデバッグビルドを使用すること。</u><br> <br><br> == テストの実行 == RustRoverは、Rustの標準的なテストフレームワークと統合されている。<br> <br> テストを実行する方法を、以下に示す。<br> # テスト関数の横に表示される実行アイコンを選択する。 # または、[Run] - [Run...]から該当するテストを選択する。 # または、以下のキーボードショートカットを使用する。 #* 個別のテストを実行: [Ctrl] + [Shift] + [F10] (Linux / Windows) #* 最後のテストを再実行: [Shift] + [F10] (Linux / Windows) <br> 全てのテストを実行するには、以下のコマンドを使用する。<br> <br> cargo test <br> 特定のテストのみを実行するには、以下のようにする。<br> <br> cargo test test_name <br><br> == Rustfmtの設定 == Rustfmtは、Rustコードの自動フォーマットツールである。<br> <br> Rustfmtをインストールする。<br> <br> rustup component add rustfmt <br> RustRoverでRustfmtを使用するには、以下の設定を行う。<br> # [File] - [Settings] - [Languages & Frameworks] - [Rust] - [Rustfmt]を選択する。 # [Run rustfmt on Save]チェックボックスにチェックを入力すると、ファイル保存時に自動フォーマットされる。 <br> 手動でフォーマットを実行するには、以下の手順を実行する。<br> # [Code] - [Reformat Code]を選択する。 # または、[Ctrl] + [Alt] + [L]キー (Linux / Windows) を押下する。 <br> プロジェクトルートに <u>rustfmt.toml</u> ファイルを作成することで、フォーマット設定をカスタマイズできる。<br> <br> <syntaxhighlight lang="toml"> # rustfmt.tomlファイル max_width = 100 hard_tabs = false tab_spaces = 4 newline_style = "Unix" </syntaxhighlight> <br><br> == Clippyの設定 == Clippyは、Rustコードの静的解析ツールであり、コードの品質向上に役立つ。<br> <br> Clippyをインストールする。<br> <br> rustup component add clippy <br> RustRoverでは、Clippyの警告がエディタ上にリアルタイムで表示される。<br> <br> Clippyを手動で実行するには、以下のコマンドを使用する。<br> <br> cargo clippy <br> 全ての警告を修正候補付きで表示するには、以下のコマンドを使用する。<br> <br> cargo clippy --fix <br> 特定のClippy lintを無効にする場合、以下のようにコード内で指定できる。<br> <br> <syntaxhighlight lang="rust"> #![allow(clippy::lint_name)] // または、特定の関数やブロックに対して #[allow(clippy::lint_name)] fn my_function() { // ... } </syntaxhighlight> <br><br> == マクロ展開の表示 == RustRoverでは、マクロの展開結果を確認することができる。<br> <br> マクロ展開を表示する手順を、以下に示す。<br> # マクロ呼び出しにカーソルを置く。 # [Tools] - [Rust] - [Show Macro Expansion]を選択する。<br>または、[Ctrl] + [Shift] + [M]キー (Linux / Windows) を押下する。 <br> 展開結果が別ウィンドウに表示され、マクロがどのようにコードを生成するかを確認できる。<br> <br><br> == プロファイリング == RustRoverでは、Cargo Flamingoを使用してパフォーマンスプロファイリングが可能である。<br> <br> Cargo Flamingoをインストールする。<br> <br> cargo install flamegraph <br> プロファイリングを実行するには、以下のコマンドを使用する。<br> <br> cargo flamegraph <br> 生成されたフレームグラフ (flamegraph.svg) を、ブラウザで開いて確認する。<br> <br> <u>※注意</u><br> <u>Linuxでは、perfツールへのアクセス権限が必要な場合がある。</u><br> <u>その場合、以下に示すコマンドを実行する。</u><br> <br> echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid <br><br> == WebAssembly (WASM) サポート == RustRoverは、WebAssemblyターゲットへのコンパイルをサポートしている。<br> <br> WASMターゲットをインストールする。<br> <br> rustup target add wasm32-unknown-unknown <br> wasm-packをインストールする。<br> <br> cargo install wasm-pack <br> WASMプロジェクトをビルドするには、以下のコマンドを使用する。<br> <br> wasm-pack build --target web <br> RustRoverの実行構成で、ビルドターゲットとして[wasm32-unknown-unknown]を指定することもできる。<br> <br><br> == 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> ===== リモートサーバ ===== リモートMCPサーバに接続する場合の設定例を以下に示す。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "microsoftdocs": { "url": "https://learn.microsoft.com/api/mcp" } } } </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> <center> {| 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> <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> <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> <br> <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> <syntaxhighlight lang="json"> { "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" ] } } } </syntaxhighlight> <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> エージェントが応答し、プロジェクト内のファイルを参照できれば、ACP連携を確認できる。<br> <br> ===== OpenCode単体での事前確認 ===== RustRover側を確認する前に、ターミナルで <code>opencode acp</code> コマンドを実行して、起動できるか確認する。<br> JetBrains公式ドキュメントでも、ターミナルで手動実行して動作確認することが推奨されている。<br> <br> ~/.opencode/bin/opencode 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> {{#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__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Rust]]
インストール - RustRover
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse