Web Shell のメンションアイコンチップ
問題
カスタムの @ メンションメニューでは拡張機能、ファイル、および MCP への参照を挿入できますが、確定されたアイテムはコンポーザー内でプレーンテキストとしてレンダリングされていました。以前のコンポーザーの実装では、これらの参照はアイコンチップとしてレンダリングされていました。現在のカスタムメンションアーキテクチャでは、テーブルなどのホスト定義のメンションアイテムにおいても、同じチップレンダリングを利用できるようにする必要があります。
設計
- @ メンションメニューは、テキストの選択と挿入の責務を維持します。
- メンションアイテムが、挿入された参照を記述する
composerTagをオプションで提供できるようにします。 - 組み込みのファイル、拡張機能、および MCP プロバイダーに対してコンポーザータグの自動生成を継続し、ホスト側の変更なしに既存の組み込みメンションでアイコンチップが再利用できるようにします。
WebShellにcomposerTagIconsprop を追加し、ホストがcomposerTag.kindごとにアイコン URL を登録できるようにします。- コンポーザーのレンダリング時に、カスタムアイコンを優先して確認し、見つからない場合は組み込みアイコンにフォールバックする単一のヘルパーを通じてアイコンを解決します。
- 解決されたアイコン URL は内部のインラインデコレーションデータにのみ保存し、パブリックなコンポーザータグの値からは除外します。
対象範囲
この変更は、確定された @ メンションアイテムおよびプログラムから挿入されたインラインタグに対するコンポーザータグのアイコン登録とレンダリングを対象としています。表示上の @ メンションピッカーの行を変更したり、既存の atProviders の API surface 以外に新しいプロバイダー登録 API を追加したりすることはありません。
リスク
- カスタムアイコン URL は CSS マスク経由で適用されるため、CSS カスタムプロパティに書き込む前に URL 値をエスケープする必要があります。
- エディター内にテキストが残っている状態で
composerTagIconsが変更された場合、既存のインラインデコレーションを更新する必要があります。
Last updated on