| (同じ利用者による、間の17版が非表示) | |||
| 1行目: | 1行目: | ||
== | == 概要 == | ||
Visual Studio Code (以下、VSCode) は、Code - OSSリポジトリをベースにMicrosoft独自のカスタマイズが施されており、従来のマイクロソフト製品ライセンスでリリースされている。<br> | |||
コードエディタのシンプルさと、開発者のコアとなる編集 - ビルド - デバッグのサイクルに必要なものを兼ね備えている。<br> | |||
<br> | |||
軽量なデバッグ、豊富な拡張性モデル、既存のツールとの軽量な統合とともに、包括的なコード編集、ナビゲーション、理解のサポートを提供する。<br> | |||
<br> | |||
VSCodeは毎月アップデートされており、新機能やバグが修正される。<br> | |||
最新のリリースを毎日入手する場合は、Insidersビルドをインストールする。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>VSCodeには様々なテレメトリ機能が搭載されており、端末の情報は逐一Microsoftに送信されている。</u><br> | |||
<u>たとえ、テレメトリ機能を無効にするオプションを設定しても、なお情報を送信し続けている。 (完全に無効化することができない)</u><br> | |||
<u>そのため、VSCodeのようなスパイウェアは使用せずに、[https://vscodium.com Codium]を導入することを強く推奨する。</u><br> | |||
<br> | |||
<u>Codiumのインストールを知りたい場合は、[[インストール - VSCodium]]を参照すること。</u><br> | |||
<br><br> | |||
== VSCodeのインストール == | |||
==== リポジトリを登録してインストール ==== | |||
まず、VSCodeのリポジトリと鍵を追加するため、以下のコマンドを入力する。<br> | まず、VSCodeのリポジトリと鍵を追加するため、以下のコマンドを入力する。<br> | ||
# | # RHEL | ||
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc | sudo rpm --import <nowiki>https://packages.microsoft.com/keys/microsoft.asc</nowiki> | ||
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' | sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=<nowiki>https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc</nowiki>" > /etc/yum.repos.d/vscode.repo' | ||
# SUSE | # SUSE | ||
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc | sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc | ||
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/vscode.repo' | sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/vscode.repo' | ||
# Mobian / Raspberry Pi | |||
- | |||
# Manjaro ARM | |||
- | |||
<br> | <br> | ||
アップデート可能なパッケージの一覧を表示する。<br> | アップデート可能なパッケージの一覧を表示する。<br> | ||
# | # RHEL | ||
sudo | sudo dnf check-update | ||
# SUSE | # SUSE | ||
sudo zypper list-updates | sudo zypper list-updates | ||
<br> | |||
# Mobian / Raspberry Pi | |||
- | |||
# Manjaro ARM | |||
- | |||
<br> | |||
以下のコマンドを入力して、VSCodeをインストールする。<br> | 以下のコマンドを入力して、VSCodeをインストールする。<br> | ||
# | # RHEL | ||
sudo | sudo dnf update | ||
sudo dnf install code | |||
# SUSE | # SUSE | ||
sudo zypper refresh | sudo zypper refresh | ||
sudo zypper install code | sudo zypper install code | ||
# Mobian / Raspberry Pi | |||
sudo apt install code | |||
# Manjaro ARM | |||
sudo pacman -S --needed --noconfirm base-devel git # AURヘルパを使用して、VS Codeをインストールする前に以下に示すパッケージがインストールされていることを確認する | |||
sudo yay -s visual-studio-code-bin # VS Codeのインストール | |||
sudo yay -s vscode # VS Code Insidersビルドをインストールすることもできる | |||
<br> | <br> | ||
codeコマンドがPATH環境変数に含まれているかどうか確認する。<br> | codeコマンドがPATH環境変数に含まれているかどうか確認する。<br> | ||
which code | which code | ||
<br> | |||
==== 手動でインストール ==== | |||
[https://code.visualstudio.com/Download Microsoftの公式Webサイト]にアクセスして、VSCodeの64bitのTarballファイルをダウンロードする。<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
tar xf code-stable-x64-<バージョン>.tar.gz | |||
<br> | |||
解凍したディレクトリを任意のディレクトリに配置する。<br> | |||
mv code-stable-x64-<バージョン> VSCode | |||
mv VSCode <VSCodeのインストールディレクトリ> | |||
<br> | |||
必要であれば、~/.profileファイル等に環境変数<code>PATH</code>を追記する。<br> | |||
vi ~/.profile | |||
<br> | |||
# ~/.profileファイル | |||
export PATH="/<VSCodeのインストールディレクトリ>/bin:$PATH" | |||
<br> | |||
VSCodeのデスクトップエントリファイルを作成する。<br> | |||
vi ~/.local/share/applications/VSCode.desktop | |||
<br> | |||
<syntaxhighlight lang="ini"> | |||
# ~/.local/share/applications/VSCode.desktopファイル | |||
[Desktop Entry] | |||
Name=Visual Studio Code | |||
Comment=Code Editing. Redefined. | |||
GenericName=Text Editor | |||
Exec=/<VSCodeのインストールディレクトリ>/bin/code --unity-launch %F | |||
Icon=com.visualstudio.code | |||
Type=Application | |||
StartupNotify=false | |||
StartupWMClass=Code | |||
Categories=Utility;TextEditor;Development;IDE; | |||
MimeType=text/plain;inode/directory;application/x-code-workspace; | |||
Actions=new-empty-window; | |||
Keywords=vscode; | |||
[Desktop Action new-empty-window] | |||
Name=New Empty Window | |||
Exec=/<VSCodeのインストールディレクトリ>/bin/code --new-window %F | |||
Icon=com.visualstudio.code | |||
</syntaxhighlight> | |||
<br> | |||
vi ~/.local/share/applications/VSCode-url-handler.desktop | |||
<br> | |||
<syntaxhighlight lang="ini"> | |||
# ~/.local/share/applications/VSCode-url-handler.desktopファイル | |||
[Desktop Entry] | |||
Type=Application | |||
Name=Visual Studio Code - URL Handler | |||
GenericName=Text Editor | |||
Comment=Code Editing. Redefined. | |||
Exec=/<VSCodeのインストールディレクトリ>/bin/code --open-url %U | |||
Icon=com.visualstudio.code | |||
Categories=Utility;TextEditor;Development;IDE; | |||
MimeType=x-scheme-handler/vscode; | |||
Keywords=vscode; | |||
NoDisplay=true | |||
StartupNotify=true | |||
</syntaxhighlight> | |||
<br> | |||
==== エラー関連 ==== | |||
VSCodeの起動時に、以下に示すようなエラーが出力される場合がある。<br> | |||
Writing login information to the keychain failed with error 'GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: | |||
The name org.freedesktop.secrets was not provided by any .service files'. | |||
<br> | |||
このエラーを解決するには、gnome-keyringをインストールする。<br> | |||
sudo zypper install gnome-keyring | |||
<br><br> | <br><br> | ||
== | == スーパーユーザ権限での実行 == | ||
root権限でVSCodeを実行する場合は、以下のコマンドで実行する。<br> | root権限でVSCodeを実行する場合は、以下のコマンドで実行する。<br> | ||
なお、以下のVSCode-Rootディレクトリは既存のディレクトリなら何でもよい。<br> | なお、以下のVSCode-Rootディレクトリは既存のディレクトリなら何でもよい。<br> | ||
code --user-data-dir='VSCode-Root' | code --user-data-dir='VSCode-Root' | ||
<br><br> | |||
== C/C++拡張機能 == | |||
==== C/C++拡張機能のインストール ==== | |||
# VS Codeメイン画面左の拡張機能のボタンを押下する。 | |||
# 検索欄に"C/C++"と入力して、C/C++拡張機能をインストールする。 | |||
# [再読み込み]ボタンを押下する。 | |||
<br> | |||
==== インテリセンスの設定 ==== | |||
コードナビゲーションや自動補完の機能を有効にする。(この設定が無くても、ビルドおよびデバッグ可能である)<br> | |||
<br> | |||
# まず、事前にC/C++プロジェクトのディレクトリを開く。 | |||
# 次に、[Ctrl] + [Shift] + [P]キーを同時押下して、コマンドパレットを開く。 | |||
# "C/Cpp: Edit configurations..."を選択する。この時、C/C++プロジェクトの.vscodeディレクトリに、c_cpp_properties.jsonファイルが自動的に作成される。ただし、.vscodeディレクトリが存在しない場合は、プロジェクトディレクトリに自動で作成される。 | |||
# c_cpp_properties.jsonファイルを、以下の内容のように編集する。 | |||
<syntaxhighlight lang="json"> | |||
"ファイル名": "c_cpp_properties.jsonファイル", | |||
{ | |||
"version": 4, | |||
"configurations": [ | |||
{ | |||
"name": "Linux64", // その他: "Win32", "Mac"も指定可能 | |||
"includePath": [ | |||
"${workspaceFolder}", | |||
"/home/hoge/include" // インクルードするファイルがあるディレクトリを追加 | |||
], | |||
"defines": [ // 使用するプリプロセッサの定義 | |||
"_DEBUG", | |||
"UNICODE", | |||
"_UNICODE", | |||
"PI=3.14159" | |||
], | |||
// "windowsSdkVersion": "8.1", // Windowsの場合、Windows SDKインクルードパスのバージョン | |||
"compilerPath": "/usr/bin/gcc", // 使用するコンパイラのパス | |||
"cStandard": "c17", // その他: "c99", "c17", "c23"等も指定可能 | |||
"cppStandard": "c++17", // その他: "C++11", "C++14", "C++20"等も指定可能 | |||
"compilerArgs": [ // コンパイラに渡す引数 | |||
"-w", | |||
"-std=gnu++17", | |||
"-Wno-error=narrowing" | |||
], | |||
"intelliSenseMode": "linux-gcc-x64" // その他: "windows-msvc-x64", "msvc-x64", "macos-clang-x64", "clang-x64"等も指定可能 | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
==== ビルドの設定 ==== | |||
tasks.jsonファイルを作成して編集する。<br> | |||
<br> | |||
# [Ctrl] + [Shift] + [P]キーを同時押下して、コマンドパレットを開く。 | |||
# [Tasks: Configure Task]を選択する。 | |||
# [テンプレートから tasks.json を生成]を選択する。 | |||
# [Others 任意の外部コマンドを実行する例]を選択する。 | |||
# プロジェクトディレクトリの.vscodeディレクトリに、tasks.jsonファイルが自動的に作成される。 | |||
# tasks.jsonファイルを、以下の内容のように編集する。 | |||
<syntaxhighlight lang="json"> | |||
"ファイル名": "task.jsonファイル", | |||
{ | |||
// See https://go.microsoft.com/fwlink/?LinkId=733558 | |||
// for the documentation about the tasks.json format | |||
"version": "2.0.0", | |||
"tasks": [ | |||
{ | |||
"label": "sample", // プロジェクトのファイル名を指定 | |||
"type": "shell", | |||
"command": "g++", | |||
"args": ["-g", "main.cpp"], // プログラムのエントリポイントがあるcppファイル名を指定 | |||
"group": { | |||
"kind": "build", | |||
"isDefault": true | |||
} | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
最後に、ビルドができるかどうか確認する。<br> | |||
なお、ビルドのショートカットは、[Ctrl] + [Shift] + [B]キーを同時押下することでも可能である。<br> | |||
<br> | |||
==== デバッグの設定 ==== | |||
launch.jsonファイルを作成して編集する。<br> | |||
<br> | |||
# VS Codeメイン画面左のデバッグボタンを選択する。([Ctrl] + [Shift] + [D]キーを同時押下しても可能である) | |||
# デバッグ画面上部にある"構成がありません"と表示されているプルダウンの右側にある歯車を選択する。 | |||
# [環境の選択]プルダウンから、[C++ (GDB/LLDB)]を選択する。 | |||
# C/C++プロジェクトの.vscodeディレクトリに、launch.jsonファイルが自動的に作成される。 | |||
# launch.jsonファイルを、以下の内容のように編集する。launch.jsonファイルの詳細は、[https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md C/C++拡張機能のGithub]を参照すること。 | |||
<syntaxhighlight lang="json"> | |||
"ファイル名": "launch.jsonファイル", | |||
{ | |||
// IntelliSense を使用して利用可能な属性を学べます。 | |||
// 既存の属性の説明をホバーして表示します。 | |||
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 | |||
"version": "0.2.0", | |||
"configurations": [ | |||
{ | |||
"name": "(gdb) Launch", | |||
"type": "cppdbg", | |||
"request": "launch", | |||
"program": "${workspaceRoot}/Sample", // 出力される実行ファイル名またはライブラリファイル名 | |||
"args": [], | |||
"environment": [], | |||
"cwd": "${workspaceFolder}", | |||
"stopAtEntry": false, | |||
"externalConsole": true, // 外部ターミナルを使用する場合はtrue | |||
"MIMode": "gdb", // その他: "lldb"も指定可能 | |||
"miDebuggerPath": "/usr/bin/gdb", // 使用するデバッガのパス | |||
"setupCommands": [ | |||
{ | |||
"description": "Enable pretty-printing for gdb", | |||
"text": "-enable-pretty-printing", | |||
"ignoreFailures": true | |||
} | |||
] | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
デバッグが実行できるかどうか確認する。<br> | |||
なお、デバッグの実行は、[F5]キーの押下、[デバック]メニューバー - [デバッグの開始]を選択、[デバッグ]画面上部にある[▶]でも可能である。<br> | |||
<br><br> | <br><br> | ||
| 46行目: | 278行目: | ||
Dolphinにコンテキストメニューを追加する場合、まず、以下のディレクトリに移動する。<br> | Dolphinにコンテキストメニューを追加する場合、まず、以下のディレクトリに移動する。<br> | ||
cd Open_in_VSCode.desktop ~/.local/share/kservices5 | cd Open_in_VSCode.desktop ~/.local/share/kservices5 | ||
または | # または | ||
cd Open_in_VSCode.desktop /usr/share/kservices5 | cd Open_in_VSCode.desktop /usr/share/kservices5 | ||
<br> | <br> | ||
| 52行目: | 284行目: | ||
vi Open_in_VSCode.desktop | vi Open_in_VSCode.desktop | ||
<br> | <br> | ||
<syntaxhighlight lang="ini"> | |||
[Desktop Entry] | [Desktop Entry] | ||
Type=Service | Type=Service | ||
| 68行目: | 301行目: | ||
Name=Open in VS Code as SuperUser | Name=Open in VS Code as SuperUser | ||
Icon=com.visualstudio.code | Icon=com.visualstudio.code | ||
Exec=code --user-data-dir=/home/<ユーザ名>/Program/VScode_root_project %u | Exec=code --user-data-dir=/home/<ユーザ名>/Program/VScode_root_project %u | ||
</syntaxhighlight> | |||
<br><br> | |||
== VS Codeの設定 == | |||
==== タブをPreview modeで開かない ==== | |||
新しいファイルを開く時に現在のタブが上書きされて表示される場合がある。<br> | |||
<br> | |||
上書きされるタブはファイルをPreview modeで開いているため、続けて他のファイルを開く場合、以前のタブを上書きして表示する。<br> | |||
タブがPreview modeで開かれている場合、タブのタイトルが斜体になる。<br> | |||
<br> | |||
この挙動を回避するためには、以下のいずれかを行う。<br> | |||
* ファイルをダブルクリックして開く | |||
* settings.jsonファイルに、<code>"workbench.editor.enablePreview": false</code>を追記する。 | |||
<br><br> | |||
== OpenCodeによるAIコーディング支援 == | |||
OpenCodeは、Anomaly社が開発するオープンソースのAIコーディングエージェントである。<br> | |||
端末ベースのインターフェース (TUI)、デスクトップアプリケーション、IDE統合の3形態で提供されており、75以上のLLMプロバイダーに対応する。<br> | |||
<br> | |||
VSCode上でOpenCodeを使用する方法は2つある。<br> | |||
<br> | |||
* 公式の端末統合 (拡張機能 <u>sst-dev.opencode</u>) | |||
*: VSCodeの統合端末上で <code>opencode</code> コマンドを実行して使用する方法 | |||
*: 拡張機能が自動インストールされ、キーボードショートカットから起動できる。 | |||
* サードパーティのACPクライアント (拡張機能 <u>formulahendry.acp-client</u>) | |||
*: Agent Client Protocol (ACP) を経由して、OpenCodeをVSCodeのチャットパネル上で操作する方法 | |||
*: この経路はOpenCode公式チームが直接提供するものではなく、サードパーティが開発・保守している。 | |||
<br> | |||
==== 前提条件 ==== | |||
OpenCodeをVSCode上で使用するには、以下に示す環境が必要である。<br> | |||
<br> | |||
* OpenCode CLIのインストール | |||
* いずれかのLLMプロバイダーのAPIキー | |||
* 端末統合を使用する場合 | |||
*: VSCode本体 または Cursor、Windsurf、VSCodium等のフォーク | |||
* ACPクライアントを使用する場合 | |||
*: Node.js 18以上 | |||
<br> | |||
==== OpenCode CLIのインストール ==== | |||
Linux環境における簡単なインストール方法は、公式インストールスクリプトを使用することである。<br> | |||
<br> | |||
curl -fsSL https://opencode.ai/install | bash | |||
<br> | |||
このスクリプトは、以下の優先順位でインストール先を決定する。<br> | |||
<br> | |||
* 環境変数 <code>OPENCODE_INSTALL_DIR</code> | |||
* 環境変数 <code>XDG_BIN_DIR</code> | |||
* <u>~/bin</u> (ディレクトリが存在するか作成可能な場合) | |||
* <u>~/.opencode/bin</u> (デフォルトのフォールバック) | |||
<br> | |||
必要に応じて、インストール先を 環境変数 <code>PATH</code>に追加する。<br> | |||
環境変数 | |||
export PATH="$HOME/.opencode/bin:$PATH" | |||
<br> | |||
その他のインストール方法を以下に示す。<br> | |||
<br> | |||
* npm | |||
*: <pre>npm install -g opencode-ai@latest</pre> | |||
* Bun | |||
*: <pre>bun install -g opencode-ai@latest</pre> | |||
* Homebrew | |||
*: <pre>brew install anomalyco/tap/opencode</pre> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>2026年7月現在、OpenCode CLI単体の公式RPMパッケージ (zypper / dnf用) は提供されていない。</u><br> | |||
<u>OpenCode DesktopのRPMパッケージはGitHub Releasesから入手可能だが、CLIとは別物である。</u><br> | |||
<br> | |||
<u>SUSE / RHEL環境では、curlインストールスクリプトまたはnpm経由のインストールを推奨する。</u><br> | |||
<br> | |||
==== 認証の設定 ==== | |||
OpenCodeの使用には、LLMプロバイダーの認証情報が必要である。<br> | |||
認証情報は、<u>~/.local/share/opencode/auth.json</u> に保存される。<br> | |||
<br> | |||
認証の設定方法は以下の2通りがある。<br> | |||
<br> | |||
===== 方法1: /connectコマンド ===== | |||
# OpenCodeを起動する。 | |||
# <code>/connect</code> コマンドを実行する。 | |||
# 使用するプロバイダー (OpenCode Zen、Anthropic、OpenAI等) を選択する。 | |||
# 画面の指示に従ってAPIキーを入力する。 | |||
<br> | |||
===== 方法2: auth loginオプション ===== | |||
opencode auth login | |||
<br> | |||
プロバイダーを指定する場合は以下のように実行する。<br> | |||
<br> | |||
opencode auth login --provider anthropic | |||
<br> | |||
==== ACP (Agent Client Protocol) とは ==== | |||
ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するオープンプロトコルである。<br> | |||
<br> | |||
Language Server Protocol (LSP) が言語サーバ統合を標準化したのと同様に、ACPはエージェントとエディタの相互運用性を実現する。<br> | |||
<br> | |||
ACPの主な特徴は以下の通りである。<br> | |||
<br> | |||
* 通信方式 | |||
*: JSON-RPC 2.0 over stdio (ローカルエージェントの場合) | |||
*: データ形式は nd-JSON (改行区切りJSON) | |||
* メッセージ形式 | |||
*: ユーザ可読テキストのデフォルト形式はMarkdown | |||
* 対応シナリオ | |||
*: ローカルエージェント (エディタのサブプロセスとして実行) | |||
*: リモートエージェント (HTTP / WebSocket 経由、策定中) | |||
<br> | |||
OpenCodeはACPに対応しており、<code>opencode acp</code> コマンドでACPサーバを起動する。<br> | |||
このコマンドは、標準入出力 (stdio) 経由でJSON-RPCメッセージを送受信するサブプロセスとして動作する。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>ACP経由では、TUI上の <code>/undo</code> コマンド および <code>/redo</code> コマンドは使用できない。</u><br> | |||
<u>その他の機能 (ファイル操作、端末コマンド実行、カスタムツール、MCPサーバ、プロジェクトルール等) は全て使用可能である。</u><br> | |||
<br> | |||
==== 方法1: 公式の端末統合 (sst-dev.opencode) ==== | |||
OpenCodeは、VSCodeの統合端末上で直接動作する公式拡張機能 <u>sst-dev.opencode</u> を提供している。<br> | |||
この拡張機能は、VSCodeの統合端末で <code>opencode</code> コマンドを実行すると自動的にインストールされる。<br> | |||
<br> | |||
===== インストール ===== | |||
# VSCodeの統合端末を開く。 | |||
# <code>opencode</code> コマンドを実行する。 | |||
# 拡張機能が自動的にインストールされる。 | |||
<br> | |||
手動でインストールする場合は、VSCodeの拡張機能マーケットプレイスで <u>OpenCode</u> を検索してインストールする。<br> | |||
<br> | |||
===== キーボードショートカット ===== | |||
<center> | |||
{| class="wikitable" | |||
|+ 公式端末統合のキーボードショートカット | |||
! 操作 !! Mac !! Windows / Linux | |||
|- | |||
| クイック起動 (分割端末でOpenCodeを開く) || [Cmd] + [Esc] || [Ctrl] + [Esc] | |||
|- | |||
| 新規セッション || [Cmd] + [Shift] + [Esc] || [Ctrl] + [Shift] + [Esc] | |||
|- | |||
| ファイル参照の挿入 || [Cmd] + [Option] + [K] || [Ctrl] + [Alt] + [K] | |||
|} | |||
</center> | |||
<br> | |||
===== 主な機能 ===== | |||
* コンテキスト認識 | |||
*: 現在の選択範囲や開いているタブの内容を、自動的にOpenCodeと共有する。 | |||
* ファイル参照ショートカット | |||
*: <code>@File#L37-42</code> のような形式で、特定のファイルと行番号を指定できる。 | |||
* 分割端末表示 | |||
*: VSCodeの画面下部にOpenCodeを分割表示する。 | |||
<br> | |||
===== トラブルシューティング ===== | |||
拡張機能が自動インストールされない場合は、以下に示す項目を確認する。<br> | |||
<br> | |||
* 統合端末上で <code>opencode</code> を実行しているか。 | |||
* 各IDEのCLIコマンドがインストールされているか。 | |||
*: インストールされていない場合は、[Ctrl] + [Shift] + [P]キー ([Cmd] + [Shift] + [P]キー) を押下してコマンドパレットを開き、 | |||
*: <u>Shell Command: Install 'code' command in PATH</u> を実行する。 | |||
** VSCode | |||
**: <code>code</code> コマンド | |||
** Cursor | |||
**: <code>cursor</code> コマンド | |||
** Windsurf | |||
**: <code>windsurf</code> コマンド | |||
** VSCodium | |||
**: <code>codium</code> コマンド | |||
* VSCodeに拡張機能のインストール権限があるか。 | |||
<br> | |||
==== 方法2: サードパーティACPクライアント (formulahendry.acp-client) ==== | |||
<u>formulahendry.acp-client</u> は、VSCode上でACP対応エージェントを操作するためのサードパーティ製拡張機能である。<br> | |||
<br> | |||
この拡張機能を使用すると、OpenCodeを含む11種類のAIコーディングエージェントをVSCodeのチャットパネルから直接操作できる。<br> | |||
<br> | |||
<u>この拡張機能はOpenCode公式チームが開発・保守するものではなく、コミュニティ (Jun Han氏) によって提供されている。</u><br> | |||
<br> | |||
===== インストール ===== | |||
VSCodeの拡張機能マーケットプレイスから <u>formulahendry.acp-client</u> をインストールする。<br> | |||
<br> | |||
または、以下のURLから直接インストールできる。<br> | |||
* [https://marketplace.visualstudio.com/items?itemName=formulahendry.acp-client Visual Studio Code Marketplace] | |||
* [https://open-vsx.org/extension/formulahendry/acp-client Open VSX Marketplace] | |||
<br> | |||
===== 事前設定済みエージェント ===== | |||
この拡張機能には、下表に示すエージェントが事前設定されている。<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ ACP Clientの事前設定済みエージェント | |||
! エージェント名 !! デフォルトコマンド | |||
|- | |||
| GitHub Copilot || <code>npx @github/copilot-language-server@latest --acp</code> | |||
|- | |||
| Claude Code || <code>npx @agentclientprotocol/claude-agent-acp@latest</code> | |||
|- | |||
| Gemini CLI || <code>npx @google/gemini-cli@latest --experimental-acp</code> | |||
|- | |||
| Qwen Code || <code>npx @qwen-code/qwen-code@latest --acp --experimental-skills</code> | |||
|- | |||
| Auggie CLI || <code>npx @augmentcode/auggie@latest --acp</code> | |||
|- | |||
| Qoder CLI || <code>npx @qoder-ai/qodercli@latest --acp</code> | |||
|- | |||
| Codex CLI || <code>npx @zed-industries/codex-acp@latest</code> | |||
|- | |||
| OpenCode || <code>npx opencode-ai@latest acp</code> | |||
|- | |||
| OpenClaw || <code>npx openclaw acp</code> | |||
|- | |||
| Kiro CLI || <code>kiro-cli acp</code> | |||
|- | |||
| Hermes Agent || <code>hermes acp</code> | |||
|} | |||
</center> | |||
<br> | |||
===== OpenCodeのACP設定 (ローカルインストール版) ===== | |||
VSCode全体の設定である <u>~/.config/Code/User/settings.json</u> ファイルに、以下に示す設定を追加する。<br> | |||
または、[Ctrl] + [Shift] + [P]キーを押下して、コマンドパレットから <u>Preferences: Open User Settings (JSON)</u> を入力する。<br> | |||
<br> | |||
<syntaxhighlight lang="json"> | |||
{ | |||
// ...略 | |||
"acp.agents": { | |||
"OpenCode": { | |||
"command": "opencode", // または、OpenCodeのフルパスを指定する | |||
"args": [ | |||
"acp", | |||
"--print-logs" | |||
] | |||
} | |||
}, | |||
"acp.logTraffic": true | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
なお、<code>--print-logs</code> は、標準エラー出力 (stderr) のログを表示する診断用オプションである。<br> | |||
<br> | |||
この設定では、ACP Clientが <code>opencode acp</code> コマンドをローカルサブプロセスとして起動する。<br> | |||
OpenCodeが環境変数 <code>PATH</code> から見つからない場合は、<code>which opencode</code> コマンドで確認した絶対パスを <code>command</code> に指定する。<br> | |||
<br> | |||
===== ACP Clientの主要設定項目 ===== | |||
<center> | |||
{| class="wikitable" | |||
|+ ACP Client拡張機能の設定項目 | |||
! 設定キー !! デフォルト値 !! 説明 | |||
|- | |||
| <code>acp.agents</code> || (11エージェント) || エージェント設定<br>各キーがエージェント名、<br>値に <code>command</code>、<code>args</code>、<code>env</code> を指定する。 | |||
|- | |||
| <code>acp.autoApprovePermissions</code> || ask || 権限リクエストの処理方法<br><code>ask</code>: 都度確認<br><code>allowAll</code>: 全て自動承認 | |||
|- | |||
| <code>acp.defaultWorkingDirectory</code> || "" || エージェントセッションのデフォルト作業ディレクトリ<br>空の場合は現在のワークスペースを使用する。 | |||
|- | |||
| <code>acp.logTraffic</code> || true || ACPプロトコル通信のログをACP Traffic出力チャンネルに記録する。 | |||
|} | |||
</center> | |||
<br> | |||
===== 基本的な使用方法 ===== | |||
# VSCodeのアクティビティバーからACP Clientパネル (ACPアイコン) を開く。 | |||
# エージェント一覧からOpenCodeを選択して接続する。 | |||
# チャットパネルにプロンプトを入力して送信する。 | |||
<br> | |||
===== キーボードショートカット ===== | |||
<center> | |||
{| class="wikitable" | |||
|+ ACP Clientのキーボードショートカット | |||
! ショートカット !! 操作 | |||
|- | |||
| [Ctrl] + [Shift] + [A]<br>[Cmd] + [Shift] + [A] || チャットパネルを開く | |||
|- | |||
| [Esc] (応答生成中) || 現在の処理をキャンセル | |||
|} | |||
</center> | |||
<br> | |||
===== コマンドパレット操作 ===== | |||
コマンドパレット ([Ctrl] + [Shift] + [P]キーを押下) では、以下に示すコマンドが使用できる。<br> | |||
<br> | |||
* <u>ACP: Connect to Agent</u> | |||
*: エージェントに接続する。 | |||
* <u>ACP: New Conversation</u> | |||
*: 新しい会話を開始する。 | |||
* <u>ACP: Send Prompt</u> | |||
*: エージェントにメッセージを送信する。 | |||
* <u>ACP: Cancel Current Turn</u> | |||
*: 現在の処理をキャンセルする。 | |||
* <u>ACP: Disconnect Agent</u> | |||
*: エージェントから切断する。 | |||
* <u>ACP: Restart Agent</u> | |||
*: エージェントプロセスを再起動する。 | |||
* <u>ACP: Show Protocol Traffic</u> | |||
*: ACP通信のログを表示する。 | |||
<br> | |||
==== 公式端末統合とACPクライアントの比較 ==== | |||
<center> | |||
{| class="wikitable" | |||
|+ OpenCodeをVSCodeで使用する2つの方法の比較 | |||
! 項目 !! 公式端末統合 (sst-dev.opencode) !! サードパーティACP (formulahendry.acp-client) | |||
|- | |||
| 提供元 || OpenCode公式 (Anomaly / SST) || コミュニティ (Jun Han) | |||
|- | |||
| インターフェース || VSCodeの統合端末 (TUI) || VSCodeのチャットパネル (GUI) | |||
|- | |||
| インストール方法 || <code>opencode</code>実行時に自動インストール || 拡張機能マーケットプレイスから手動インストール | |||
|- | |||
| 起動方法 || キーボードショートカット (<code>Ctrl+Esc</code>) || ACPパネルからエージェント接続 | |||
|- | |||
| 通信方式 || 端末上の直接実行 || ACP (JSON-RPC 2.0 over stdio) | |||
|- | |||
| TUI機能 (<code>/undo</code>、<code>/redo</code>) || 使用可能 || 使用不可 | |||
|- | |||
| ファイル参照ショートカット || <code>Alt+Ctrl+K</code> || なし | |||
|- | |||
| コンテキスト認識 || 選択範囲・タブの自動共有 || 手動でプロンプトに入力 | |||
|- | |||
| 前提条件 || OpenCode CLI || OpenCode CLI + Node.js 18以上 | |||
|} | |||
</center> | |||
<br> | |||
==== プロキシ環境での使用 ==== | |||
企業内ネットワーク等でプロキシを使用する場合は、以下の環境変数を設定する。<br> | |||
<br> | |||
* HTTPSプロキシを使用する場合 | |||
*: <syntaxhighlight lang="sh"> | |||
export HTTPS_PROXY=https://proxy.example.com:8080 | |||
</syntaxhighlight> | |||
*: <br> | |||
* HTTPプロキシを使用する場合 | |||
*: <syntaxhighlight lang="sh"> | |||
export HTTP_PROXY=http://proxy.example.com:8080 | |||
</syntaxhighlight> | |||
<br> | |||
<u>OpenCodeのTUIはローカルHTTPサーバと通信するため、以下に示す設定が必須である。</u><br> | |||
<u>この設定を行わないと、ルーティングループが発生して正常に動作しない。</u><br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
export NO_PROXY=localhost,127.0.0.1 | |||
</syntaxhighlight> | |||
<br> | |||
プロキシが認証を要求する場合は、URLに認証情報を含める。<br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
export HTTPS_PROXY=http://username:password@proxy.example.com:8080 | |||
</syntaxhighlight> | |||
<br> | |||
カスタムCA証明書を使用する場合は、以下に示す環境変数を設定する。<br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem | |||
</syntaxhighlight> | |||
<br> | |||
==== アクセス許可の設定 ==== | |||
OpenCodeでは、<u>opencode.json</u> ファイルの <code>permission</code> セクションで各操作の許可設定を行える。<br> | |||
<br> | |||
基本的な設定例を以下に示す。<br> | |||
<br> | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"$schema": "https://opencode.ai/config.json", | |||
"permission": { | |||
"*": "ask", | |||
"bash": "allow", | |||
"edit": "deny" | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
操作は以下の3つのアクションに設定できる。<br> | |||
<br> | |||
* <code>allow</code> | |||
*: 確認なしで実行を許可する。 | |||
* <code>ask</code> | |||
*: 実行前に確認を求める。 | |||
* <code>deny</code> | |||
*: 実行を拒否する。 | |||
<br> | |||
自動承認モードで起動する場合は、<code>--auto</code> フラグを使用する。<br> | |||
<br> | |||
opencode --auto | |||
<br> | |||
==== トラブルシューティング ==== | |||
===== OpenCodeが起動しない ===== | |||
以下を確認する。<br> | |||
<br> | |||
* ログを確認する。 | |||
*: ログは <u>~/.local/share/opencode/log/</u> に保存されている。 | |||
* 端末にログを出力して起動する。 | |||
*: <pre>opencode --print-logs</pre> | |||
* ログレベルをDEBUGに設定して詳細情報を取得する。 | |||
*: <pre>opencode --log-level DEBUG</pre> | |||
* デバッグ情報を表示する。 | |||
*: <pre>opencode debug paths</pre> | |||
* 最新バージョンにアップグレードする。 | |||
*: <pre>opencode upgrade</pre> | |||
<br> | |||
===== PATHが通っていない / コマンドが見つからない ===== | |||
ACP Clientの設定では、<code>command</code> に絶対パスを指定する。<br> | |||
<br> | |||
# 設定例 | |||
"command": "/home/<ユーザ名>/.opencode/bin/opencode" | |||
<br> | |||
<code>which opencode</code> コマンドを実行してインストール先を確認し、そのパスを使用する。<br> | |||
<br> | |||
===== ACPサーバが起動しない / 通信できない ===== | |||
ACP通信のログを確認するには、以下の方法がある。<br> | |||
<br> | |||
* ACP Clientの設定で <code>"acp.logTraffic": true</code> を確認する。 | |||
* VSCodeのコマンドパレットから <u>ACP: Show Protocol Traffic</u> を実行する。<br>または、出力パネルで[ACP Traffic]チャンネルを選択する。 | |||
<br> | |||
手動でACPサーバの動作を確認する場合は、以下に示すコマンドを実行する。<br> | |||
<br> | |||
opencode acp --print-logs --log-level DEBUG | |||
<br> | |||
===== 認証エラー ===== | |||
以下を確認する。<br> | |||
<br> | |||
* <code>/connect</code> コマンドで再認証する。 | |||
* APIキーが有効であることを確認する。 | |||
* ネットワークがプロバイダーのAPIに接続できることを確認する。 | |||
* 認証情報ファイル <u>~/.local/share/opencode/auth.json</u> が存在するか確認する。 | |||
<br> | |||
===== モデルが見つからない ===== | |||
以下を確認する。<br> | |||
<br> | |||
* プロバイダーに認証済みであること。 | |||
* モデル名が <code>プロバイダーID/モデルID</code> の形式で正しく指定されていること。 | |||
*: 例: <u>anthropic/claude-sonnet-5</u>、<u>openai/gpt-5.5</u> | |||
* 利用可能なモデル一覧を表示する。 | |||
*: <pre>opencode models</pre> | |||
<br> | |||
===== 許可ダイアログが応答しない ===== | |||
ACP Clientで許可ダイアログが応答しない場合は、<code>acp.autoApprovePermissions</code> を <code>allowAll</code> に設定して一時的に自動承認に切り替える。<br> | |||
<br> | |||
===== ACP経由で /undo や /redo が使えない ===== | |||
これは仕様上の制限である。<br> | |||
<br> | |||
<code>/undo</code> コマンド および <code>/redo</code> コマンドはACP経由ではサポートされていない。<br> | |||
これらの操作が必要な場合は、公式端末統合 (<code>sst-dev.opencode</code>) を使用するか、端末上で直接OpenCodeのTUIを起動する。<br> | |||
<br> | |||
==== 制限事項 ==== | |||
* ACP経由では、<code>/undo</code> コマンド および <code>/redo</code> コマンドは使用できない。 | |||
* ACP Client経由でエージェントを使用する場合、エージェントがシステムのPATHに含まれているか、npxで利用可能である必要がある。 | |||
* ACP Clientのファイル添付機能は、現時点ではまだ実装されていない。 | |||
* ACP経由のリモートエージェント接続 (HTTP / WebSocket) は策定中であり、現時点ではローカルのstdio接続のみが安定して使用できる。 | |||
<br><br> | <br><br> | ||
== 関連情報 == | |||
* [https://opencode.ai/docs/ OpenCode 公式ドキュメント] | |||
* [https://opencode.ai/docs/acp/ OpenCode ACPサポート] | |||
* [https://opencode.ai/docs/cli/ OpenCode CLIリファレンス] | |||
* [https://opencode.ai/docs/ide/ OpenCode IDE統合] | |||
* [https://opencode.ai/docs/providers/ OpenCode プロバイダー設定] | |||
* [https://opencode.ai/docs/troubleshooting/ OpenCode トラブルシューティング] | |||
* [https://opencode.ai/docs/network/ OpenCode ネットワーク設定] | |||
* [https://opencode.ai/docs/permissions/ OpenCode 権限設定] | |||
* [https://agentclientprotocol.com/get-started/introduction Agent Client Protocol 入門] | |||
* [https://agentclientprotocol.com/get-started/clients ACP対応クライアント一覧] | |||
* [https://github.com/formulahendry/vscode-acp ACP Client for VS Code (GitHub)] | |||
* [https://marketplace.visualstudio.com/items?itemName=formulahendry.acp-client ACP Client (VS Code Marketplace)] | |||
* [https://marketplace.visualstudio.com/items?itemName=sst-dev.opencode OpenCode公式拡張機能 (VS Code Marketplace)] | |||
* [https://github.com/anomalyco/opencode OpenCode GitHubリポジトリ] | |||
<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}} - VSCodeのインストール手順、C/C++開発環境の設定、Dolphin連携、およびOpenCodeによるAIコーディング支援 (ACP / 端末統合) の総合ガイド | This page is {{PAGENAME}} in MochiuWiki - comprehensive guide to VSCode installation, C/C++ development setup, and OpenCode AI coding assistance | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||