## 要件 ### 現行の仕様 #### Main dialog - `Search commands` の `Auto preview` が有効の場合 - 選択項目を変更するとプレビュー表示される - `Search commands` の `Auto preview` が無効の場合 - 選択項目を変更してもプレビュー表示されない - ダイアログコマンドの `preview` のキーを押すとプレビューが表示される - その後に選択項目を変更しても、変更後の項目ではプレビューされない - もちろん `preview` のキーを押せば再度プレビューされる ### 変更後の仕様 #### Main dialog - `Search commands` の `Auto preview` が有効の場合 - 選択項目を変更するとプレビュー表示される - `toggle auto preview` を押すと 『`Search commands` の `Auto preview` が無効の場合』と同様の動きに切り替わる - `Search commands` の `Auto preview` が無効の場合 - 選択項目を変更してもプレビュー表示されない - ダイアログコマンドの `preview` のキーを押すとプレビューが表示される - その後に選択項目を変更しても、変更後の項目ではプレビューされない - もちろん `preview` のキーを押せば再度プレビューされる - `toggle auto preview` を押すと 『`Search commands` の `Auto preview` が有効の場合』と同様の動きに切り替わり、即座に現在の選択項目をプレビューする `toggle auto preview` は Header Search や InFile Search の `toggle auto preview` と同様の動きをする。 ### 注意点 直近コミットで以下2つの対応がされている。 - feat(main/backlink/grep): Don't store previewed items in history - fix: Wrong file flashes before opening target when preview is enabled 途中でプレビューの有効/無効を切り替えることにより、上記で対応した『履歴の整合性』や『ファイル決定時のチラツキ』が発生しないよう注意してほしい。 ## 対応内容 > [!left-bubble] ![[chappy.webp]] **[[チャッピー]]** > やりとりした内容を簡潔にまとめてみたよ。 ### 目的 - Main dialog の auto preview を実行中にトグル可能にし、Header/InFile と同様の挙動に揃える - auto preview が有効なときだけ、ダイアログ上に状態マークを表示する(既存UIと競合しない位置) ### 変更内容(挙動) - Main dialog で `toggle auto preview` を追加 - 有効時: 選択変更で自動プレビュー - 無効時: 自動プレビューなし(`preview` キーでのみ表示) - トグルON時: 即座に現在選択をプレビュー - トグルOFF時: 以後は自動プレビューしない - コマンドプレフィックスで SearchCommand が切り替わった場合は、その `autoPreview` 値に追従 - 既存の履歴整合性・チラツキ対策に影響しないよう、プレビュー実行や履歴復元のロジック自体は維持 ### 変更内容(UI) - auto preview の状態マークは Search command ステータス行の末尾に表示 - 入力欄直後への配置は改行で左下に落ちるため採用せず - 既存の右上ステータス行に統合し、レイアウト崩れを回避 ### 実装ポイント - Main dialog の自動プレビュー状態を `autoPreviewEnabled` として保持 - デバウンスの有効/無効、トグル時の即時プレビューに使用 - アイコンは `searchCommandEl` 生成後に差し込み、再描画時も復元 ### 変更ファイル - `src/ui/AnotherQuickSwitcherModal.ts` - `src/settings.ts` - `styles.css`