@Override
  public T handleContentChange(@NotNull T tag, @NotNull TextRange range, String newContent) throws IncorrectOperationException {
    final StringBuilder replacement = new StringBuilder( tag.getValue().getText() );
    final int valueOffset = tag.getValue().getTextRange().getStartOffset() - tag.getTextOffset();

    replacement.replace(
      range.getStartOffset() - valueOffset,
      range.getEndOffset() - valueOffset,
      newContent
    );
    tag.getValue().setEscapedText(replacement.toString());
    return tag;
  }
@Override
  public T handleContentChange(@NotNull T tag, @NotNull TextRange range, String newContent)