protected @NotNull <E extends PsiElement> String buildTooltipText(@NotNull Collection<E> elements,
                                                           @NotNull String prefix,
                                                           boolean skipFirstMember,
                                                           @Nullable String actionId,
                                                           @NotNull String pressMessageKey) {
    String firstDivider = getElementDivider(true, true, elements.size());
    String nextDivider = getElementDivider(false, true, elements.size());
    AtomicReference<String> reference = new AtomicReference<>(firstDivider); // optimization: calculate next divider only once
    return buildTooltipText(prefix, elements, e -> reference.getAndSet(nextDivider), e -> skipFirstMember, actionId, pressMessageKey);
  }
protected @NotNull <E extends PsiElement> String buildTooltipText(@NotNull Collection<E> elements,
                                                           @NotNull String prefix,
                                                           boolean skipFirstMember,
                                                           @Nullable String actionId,
                                                           @NotNull String pressMessageKey)