未保存のタブを含む置換では、ディスク上の原稿とメモリ内の編集途中を同じものとして扱えません。テキストエディタ 置換の対象表を作るなら、まず「保存済み」「未保存」「範囲外」の三つに分けます。STUDIO-327で実測できたのは保存済みファイルへの検索、予行、適用、逆検索です。未保存バッファを含めた画面操作は今回の環境では再現していません。
最初に五件の所在を紙へ出す
固定語Old327をワークスペース全体で検索すると、四ファイルに五件ありました。置換対象のincludedフォルダへ絞ると三ファイル四件です。差分の一件はexcluded/archive.mdにあり、変更しないARCHIVEとして残します。
対象内の四件も一括許可にはしません。三件は現在の表記へ直すEDIT、一件は引用に含まれるKEEPです。表にはパス、行、前後文、分類、理由を書きます。ここで未保存タブが存在するなら、同じパスでも「ディスク版」と「タブ版」を二行にしなければなりません。
一件の予行で保存済み側を確かめる
最初のEDIT一件だけをpreviewし、対象パスと置換後の文を分類表へ戻します。一致したので一件をapplyし、保存後に再検索しました。実測値はcanary=1です。その後、残る二件をpreviewしてからapplyし、remaining=2を得ました。
三件を同時に押さなかったのは、範囲や置換語の誤りを最初の一件で止めるためです。予行結果が引用行やarchiveを指した場合は適用せず、検索範囲と分類へ戻ります。成功通知だけでなく、保存された文を開き直して新語を読みます。
旧語が二件残る状態を合格にする
処理後のincludedにはOld327が一件残りました。引用のKEEPです。範囲外のarchiveにも一件残っています。したがって期待値はold inside=1、old outside=1であり、旧語0件ではありません。
逆検索で二件を見つけ、それぞれを元の分類行へ結びます。対象内に二件残れば未処理のEDITがあるかもしれず、範囲外が0件ならarchiveまで変えた疑いがあります。件数と理由を同時に満たして初めて保存済み側が合格です。
未保存タブは別の試験票にする
公開資料では未保存タブを含む確認付き置換が案内されていますが、このCLI検索は可変のメモリバッファを公開しません。アプリ本体は存在し、アクセシビリティの許可状態も読めましたが、決定的に同じ未保存状態を作って値を取得するfixtureがありませんでした。起動しただけで「未保存タブも置換できた」とは判定できません。
画面試験を行う日は、保存済みの行をDisk327、同じタブの未保存差分をBuffer327にします。preview前のスクリーン名、タブの未保存印、二つの候補文、許可した一件、キャンセルした一件を記録します。保存後にディスクを再読込し、どちらの版が残ったかまで見ます。
バッファを誤って保存した場合の復旧
失敗例は、古いディスク版を正しいと思ってタブ差分を捨てることです。逆に、未確認のタブを保存して引用まで変更する失敗もあります。どちらの場合も、失敗したタブやファイルを上書きで消さず、別名の退避ファイルへ保存します。
復旧は、開始時のディスクSHA、退避したバッファ、分類表の三つを並べます。採用する文を一行ずつ決め、新しい作業ファイルへ反映します。再検索で三つのEDITだけが新語、引用とarchiveが旧語になり、未保存差分の採否も理由付きで説明できれば回復です。
同名タブがあるときはパスだけで決めない
別フォルダに同名のchapter-2.mdがある場合、タブ名だけでは対象を識別できません。ワークスペース相対パス、先頭見出し、開始時SHAを記録し、previewの候補もその三点へ戻します。タブの並び順は閉じたり開いたりすると変わるため、何番目のタブという指定を引き渡しには使いません。
未保存タブにはディスクSHAがないので、退避時に内容SHAを作ります。後から保存済み版へ統合したときも、どのバッファを採用したかを追跡できます。表示名ではなく内容と相対パスで照合するのが、安全な確認付き置換の前提です。
引き渡すのは三変更と二残存の理由
今回の実測で渡せる値は、全体五件、対象四件、カナリア一件、残り二件、対象内の旧語一件、範囲外の旧語一件です。各値は永続artifactのcommand-log.jsonと保存後三ファイルのSHAへ結びます。
未保存バッファの候補数、タブ上のpreview表示、キャンセル後の状態は未実測欄に残します。次の担当者が同じ固定ファイルで保存済み側を再現し、別のUI試験票で未保存側を検証できることが完了条件です。二つを一つの成功文へまとめないことで、タイトルが約束する範囲と現在の証拠の差を正直に管理できます。
引き渡し時には、未保存タブを閉じたかどうかも書きます。閉じる操作そのものが保存・破棄の選択を伴うため、状態を曖昧にしたまま検証を終えません。画面試験が未実施なら、タブを操作したという記録も作らず、ディスク側の合格だけを確定します。