preserveQuoteStyle function

String preserveQuoteStyle(
  1. String oldString,
  2. String actualOldString,
  3. String newString
)

When old_string matched via quote normalization, apply the same curly quote style to new_string so the edit preserves the file's typography.

Implementation

String preserveQuoteStyle(
  String oldString,
  String actualOldString,
  String newString,
) {
  if (oldString == actualOldString) return newString;
  final hasDouble =
      actualOldString.contains(leftDoubleCurlyQuote) ||
      actualOldString.contains(rightDoubleCurlyQuote);
  final hasSingle =
      actualOldString.contains(leftSingleCurlyQuote) ||
      actualOldString.contains(rightSingleCurlyQuote);
  if (!hasDouble && !hasSingle) return newString;
  var result = newString;
  if (hasDouble) result = _applyCurlyDoubleQuotes(result);
  if (hasSingle) result = _applyCurlySingleQuotes(result);
  return result;
}