<AI>
HTML上のJavaScriptから次世代エディタ「Zed」を起動し、
特定の行・桁(列)を指定してファイルを開くには、
カスタムURLスキーム(zed://)を利用するか、Node.js等のバックエンドを経由してCLI(zedコマンド)を呼び出します。
ブラウザのセキュリティ制限(サンドボックス)があるため、
Webサイト上の通常のJavaScriptからローカルのファイルを直接開く場合はURLスキーム方式を、
自作のツールやElectron、Node.js環境(Vite等の開発サーバー拡張など)から開く場合はCLI方式を採用します。
1. カスタムURLスキームを使用する方法(ブラウザ・Webページ用)
ブラウザ上で動作するJavaScriptからZedを呼び出すには、zed://file/パス:行:列 のフォーマットでカスタムURL(ディープリンク)を開きます。
[1] , [2]
構文
text
zed://file/絶対パス:行番号:列番号
コードは注意してご使用ください。
JavaScriptの実装例
javascript
// 開きたいファイルの情報を指定
const filePath = '/Users/username/projects/my-app/src/index.js';
const line = 42; // 行番号
const column = 10; // 列番号(桁)
// URLの組み立て
const zedUrl = `zed://open/file/${filePath}:${line}:${column}`;
// Zedを起動して指定位置を開く
window.location.href = zedUrl;
コードは注意してご使用ください。
2. CLI(コマンドライン)を経由する方法(Node.js・開発ツール用)
ローカルの開発サーバー(Node.js環境)やElectronなどのデスクトップアプリ、あるいは拡張機能のバックエンドから制御する場合、
ZedのCLIコマンドを呼び出すのが最も確実です。
[1]
構文
bash
zed パス:行番号:列番号
コードは注意してご使用ください。
Node.js(JavaScript)の実装例
child_process モジュールを使用して、シェル経由で zed コマンドを発行します。
javascript
const { exec } = require('child_process');
const filePath = '/Users/username/projects/my-app/src/index.js';
const line = 42;
const column = 10;
// コマンドの組み立て (例: zed /path/to/file.js:42:10)
const command = `zed "${filePath}:${line}:${column}"`;
exec(command, (error, stdout, stderr) => {
if (error) {
console.error(`Zedの起動に失敗しました: ${error.message}`);
return;
}
console.log('Zedでファイルを開きました');
});
コードは注意してご使用ください。
⚠️ 注意点事前にZedのメニューから 「Zed > Install CLI」 を実行し、ターミナルから zed コマンドが利用できる状態にしておく必要があります。
[1] , [2]
まとめ(直接比較)
実装環境 起動アプローチ パス指定の書式
一般的なブラウザ (Chrome/Safari等) window.location.href zed://file/absolute/path:line:column
Node.js / ローカル環境 child_process.exec() zed "/absolute/path:line:column"
もし特定のフレームワークや環境(例:Viteのカスタムエラー画面からコードを開きたい、
Reactアプリの開発ツールに組み込みたいなど)で実装を進めている場合は、
その開発環境を教えていただければ、より具体的な統合コードを提案できます。
AI は不正確な情報を表示することがあるため、生成された回答を再確認するようにしてください