public ErrorTreeElement addNavigatableMessage(@Nullable String groupName,
                                                Navigatable navigatable,
                                                @NotNull ErrorTreeElementKind kind,
                                                final String[] message,
                                                final Object data,
                                                String exportText,
                                                String rendererTextPrefix,
                                                VirtualFile file) {
    if (groupName == null) {
      return addSimpleMessageElement(new NavigatableMessageElement(kind, null, message, navigatable, exportText, rendererTextPrefix));
    }
    synchronized (myLock) {
      List<NavigatableMessageElement> elements = myGroupNameToMessagesMap.get(groupName);
      if (elements == null) {
        elements = new ArrayList<>();
        myGroupNameToMessagesMap.put(groupName, elements);
      }
      NavigatableMessageElement element = new NavigatableMessageElement(
        kind, getGroupingElement(groupName, data, file), message, navigatable, exportText, rendererTextPrefix
      );
      elements.add(element);
      return element;
    }
  }
public ErrorTreeElement addNavigatableMessage(@Nullable String groupName,
                                                Navigatable navigatable,
                                                @NotNull ErrorTreeElementKind kind,
                                                final String[] message,
                                                final Object data,
                                                String exportText,
                                                String rendererTextPrefix,
                                                VirtualFile file)