<AI>
HTML上のJavaScriptから「行番号」や「列番号」を指定してエディタ Zed を起動するには、
Zedが対応している zed://file/ カスタムURLスキーム を利用します。

JavaScriptから window.location.href や  タグのシミュレートによってこのURLを呼び出すことで、ユーザーのローカル環境のZedを直接起動できます。

💡 URLスキームの記述フォーマット
Zedを特定の行列(行番号・列番号)で開く場合のURL構造は以下の通りです。

zed://file/【絶対ファイルパス】:【行番号】:【列番号】

・注意点: 行番号と列番号は、通常 1から始まるインデックス(1オリジン)として認識されます。

🛠️ JavaScriptでの実装例
ブラウザ上のJavaScriptから動的にURLを構築してZedを呼び出すコード例です。

javascript
/**
 * 行列を指定してZedでファイルを開く
 * @param {string} filePath - ローカルファイルの絶対パス (例: '/Users/username/project/src/index.js')
 * @param {number} line - 行番号 (1〜)
 * @param {number} column - 列番号 (1〜)
 */
function openInZed(filePath, line = 1, column = 1) {
  // 1. URLスキームを構築する
  const zedUrl = `zed://file/${filePath}:${line}:${column}`;
  
  // 2. ブラウザからURLスキームを呼び出す
  window.location.href = zedUrl;
}

// 使用例:index.js の 42行目、10列目を開く
openInZed('/Users/user/my-app/src/index.js', 42, 10);

コードは注意してご使用ください。

📝 HTML(リンク)での実装例
静的にリンクを設置したい場合は、 タグの href 属性に直接記述することも可能です。

html
<!-- リンクをクリックすると、Zedで対象ファイルの15行目・5列目が開く -->
<a href="zed://file//Users/user/my-app/src/main.js:15:5">
  Zedで開く (15行目:5列目)
</a>

コードは注意してご使用ください。

⚠️ 動作させるための前提条件と注意点

・CLI・スキームの登録状況:
ユーザーのPCに Zed がインストールされており、OSにカスタムURLスキーム(zed://)が正しく紐付けられている必要があります。
通常はアプリのインストール時、またはアプリ内の Install CLI などを実行した際に自動登録されます。

・ブラウザのセキュリティ制限:
Webサイト(https:// 等の環境)上のJavaScriptから実行する場合、
ブラウザが「外部アプリケーションを起動しても良いか」を確認する確認ダイアログがユーザーに表示されます。

・ファイルパスの解決:
ブラウザ内のJavaScriptはセキュリティ上の理由(サンドボックス)から、ユーザーのローカルにあるファイルの絶対パスを自由には取得できません。
この手法は、自作の社内ツールやローカル開発サーバー(ViteやWebpackの diagnostic エラー画面など)で、
あらかじめファイル絶対パスが分かっている環境で効果を発揮します。

さらに、開発サーバー(Node.jsなど)を経由したより高度な連携や、
他のエディタ(VS Codeの vscode:// など)との挙動の違いを比較したい場合はお知らせください!