CC逆引きリファレンス

編集中に外部でファイルが変わっても編集を続けたい

15. ツール・機能

コマンド / 機能

Edit ツール(v2.1.208 の改善)

read後の変更にも一意マッチで対応

概要

Edit ツールは v2.1.208 から、Read した後に対象ファイルが外部(Git操作、他プロセス、フォーマッタなど)で変更されていても、置換対象のテキストがファイル内で一意にマッチする限り編集を実行できるようになりました。以前は「ファイルが変更されています」というエラーで編集が失敗するケースがありました。

設定例

# 例: フォーマッタが自動整形した直後でも
# 対象の文字列が一意であれば Edit が成功する

「fetchData 関数にエラーハンドリングを追加して」
# → Read 後に prettier がファイルを整形していても
#   対象コードが一意に特定できれば Edit が通る
公式ドキュメントを見る

こんな時に使う

  • 保存時に自動フォーマッタが走るプロジェクトで編集を続けたい時
  • 他プロセス(ウォッチャー等)がファイルを触る環境で作業したい時
  • Read直後の再編集エラーを減らしたい時

使い方

  1. 1特別な操作は不要、v2.1.208 以降は自動で有効
  2. 2置換対象の文字列が一意であれば外部変更後でも Edit が成功する
  3. 3一意に特定できない場合は従来通りエラーになる

Tips

  • replace_all を使う場合も一意性の判定は変わらず適用される
  • ファイル全体が大きく書き換わった場合は改めて Read してから編集する方が安全
  • 自動フォーマッタやlint --fixと相性が良くなった