Line-level text diff for AST replace previews.
@spec unified(String.t(), String.t(), String.t()) :: String.t()