private static String buildReplacementStringTemplate(@NotNull PsiPolyadicExpression expression) {
      StringBuilder content = new StringBuilder();
      boolean isStringFound = false;
      boolean textBlock = useTextBlockTemplate(expression);
      for (PsiExpression operand : expression.getOperands()) {
        if (!isStringFound && ExpressionUtils.hasStringType(operand)) {
          isStringFound = true;
          if (!content.isEmpty()) {
            content.insert(0, "\\{").append("}");
          }
        }

        if (operand instanceof PsiParenthesizedExpression parenthesized) {
          operand = PsiUtil.skipParenthesizedExprDown(parenthesized);
        }
        if (operand instanceof PsiLiteralExpression literal) {
          Object value = literal.getValue();
          if (ExpressionUtils.hasStringType(literal) && value == null) return null; // error in literal
          if (value instanceof String || value instanceof Character) {
            String string = String.valueOf(value);
            String escaped = StringUtil.escapeStringCharacters(string);
            content.append(textBlock ? PsiLiteralUtil.escapeTextBlockCharacters(escaped, false, true, false) : escaped);
            continue;
          }
        }
        toTemplateExpression(content, isStringFound, operand);
      }
      return textBlock
             ? CommonClassNames.JAVA_LANG_STRING_TEMPLATE + ".STR.\"\"\"\n" + content + "\"\"\""
             : CommonClassNames.JAVA_LANG_STRING_TEMPLATE + ".STR.\"" + content + "\"";
    }
private static String buildReplacementStringTemplate(@NotNull PsiPolyadicExpression expression)