@Override
  protected void doReplacement(@NotNull PsiFile psiFile,
                               Editor editor,
                               UInjectionHost literalExpression,
                               String i18nizedText) throws IncorrectOperationException {
    UastCodeGenerationPlugin generationPlugin = UastCodeGenerationPlugin.byLanguage(literalExpression.getLang());
    Document document = editor.getDocument();
    if (mySelectionRange != null && generationPlugin != null) {
      UastElementFactory elementFactory = generationPlugin.getElementFactory(psiFile.getProject());
      try {
        UBinaryExpression binaryExpression = breakStringLiteral(literalExpression, generationPlugin, elementFactory, mySelectionRange.getEndOffset());
        if (binaryExpression != null) {
          literalExpression = (UInjectionHost)binaryExpression.getLeftOperand();
        }
        binaryExpression = breakStringLiteral(literalExpression, generationPlugin, elementFactory, mySelectionRange.getStartOffset());
        if (binaryExpression != null) {
          literalExpression = (UInjectionHost)binaryExpression.getRightOperand();
        }
        PsiDocumentManager.getInstance(psiFile.getProject()).doPostponedOperationsAndUnblockDocument(document);
      }
      catch (IncorrectOperationException e) {
        LOG.error(e);
      }
    }
    doDocumentReplacement(psiFile, literalExpression, i18nizedText, document, generationPlugin);
  }
@Override
  protected void doReplacement(@NotNull PsiFile psiFile,
                               Editor editor,
                               UInjectionHost literalExpression,
                               String i18nizedText)