@Override
  public JsonStringLiteral handleContentChange(@NotNull JsonStringLiteral element, @NotNull TextRange range, String newContent)
    throws IncorrectOperationException {
    assert new TextRange(0, element.getTextLength()).contains(range);

    final String originalContent = element.getText();
    final TextRange withoutQuotes = getRangeInElement(element);
    final JsonElementGenerator generator = new JsonElementGenerator(element.getProject());
    final String replacement =
      StringUtil.unescapeStringCharacters(originalContent.substring(withoutQuotes.getStartOffset(), range.getStartOffset())) +
      newContent +
      StringUtil.unescapeStringCharacters(originalContent.substring(range.getEndOffset(), withoutQuotes.getEndOffset()));
    return (JsonStringLiteral)element.replace(generator.createStringLiteral(replacement));
  }
@Override
  public JsonStringLiteral handleContentChange(@NotNull JsonStringLiteral element, @NotNull TextRange range, String newContent)