@NotNull
  public static Pair<String, List<Couple<Integer>>> format(@NotNull UCallExpression methodCallExpression) {
    final List<UExpression> args = methodCallExpression.getValueArguments();
    PsiElement callSourcePsi = methodCallExpression.getSourcePsi();
    if (args.size() > 0 && args.get(0) instanceof UInjectionHost injectionHost && isI18nProperty(injectionHost)) {
      final int count = JavaI18nUtil.getPropertyValueParamsMaxCount(args.get(0));
      if (args.size() == 1 + count) {
        String text = getI18nMessage((UInjectionHost)args.get(0));
        List<Couple<Integer>> replacementPositions = new ArrayList<>();
        for (int i = 1; i < count + 1; i++) {
          Object value = args.get(i).evaluate();
          if (value == null) {
            if (args.get(i) instanceof UReferenceExpression) {
              PsiElement sourcePsi = args.get(i).getSourcePsi();
              value = "{" + (sourcePsi != null ? sourcePsi.getText() : "<error>") + "}";
            }
            else {
              text = null;
              break;
            }
          }
          text = replacePlaceholder(text, "{" + (i - 1) + "}", value.toString(), replacementPositions);
        }
        if (text != null) {
          return Pair.create(text.length() > FOLD_MAX_LENGTH ? text.substring(0, FOLD_MAX_LENGTH - 3) + "...\"" : text,
                             replacementPositions);
        }
      }
    }

    return Pair.create(callSourcePsi != null ? callSourcePsi.getText() : "<error>", null);
  }
@NotNull
  public static Pair<String, List<Couple<Integer>>> format(@NotNull UCallExpression methodCallExpression)