Claude Code 既知の回避策
このドキュメントは Claude Code(AI コードエディタ)固有の挙動や制限と、その回避策をまとめたものです。
1. TypeScript ファイルに日本語正規表現リテラルを含む行は Edit ツールで直接編集できない(#1167)
現象
Edit ツールの old_string に正規表現リテラル(例: /[-ゟ]/)を含めようとすると、Unicode 文字 ↔ \uXXXX エスケープ変換が競合してファイル内の文字列と一致しない。
\n を含む行も同様に一致しないケースがある。
回避策
Python スクリプトで "\\uXXXX" のようにダブルバックスラッシュを使って literal \u 文字列を生成し、content.replace(old, new, 1) で置換する。
# NG: r"[-ゟ]" や実際の Unicode 文字はファイルの文字列と一致しない
# OK: ダブルバックスラッシュで literal \u を生成する
old = "... /[\\u3040-\\u309f]/.test(...) ..."
content = content.replace(old, new_code, 1)
\n を含む行も同様にダブルバックスラッシュで表記すること(例: "join('\\n\\n')")。