public ErrorTreeElement addMessage(@NotNull ErrorTreeElementKind kind,
                         String @NotNull [] text,
                         @Nullable VirtualFile underFileGroup,
                         @Nullable VirtualFile file,
                         int line,
                         int column,
                         @Nullable Object data) {
    if (underFileGroup == null && file == null) {
      return addSimpleMessageElement(new SimpleMessageElement(kind, text, data));
    }

    if (file == null) {
      line = -1;
      column = -1;
    }

    final int guiLine = line < 0 ? -1 : line + 1;
    final int guiColumn = column < 0 ? -1 : column + 1;

    VirtualFile group = underFileGroup == null ? file : underFileGroup;
    VirtualFile nav = file == null ? underFileGroup : file;
    return addNavigatableMessage(
      group.getPresentableUrl(),
      new OpenFileDescriptor(myProject, nav, line, column),
      kind,
      text,
      data,
      NewErrorTreeViewPanel.createExportPrefix(guiLine),
      NewErrorTreeViewPanel.createRendererPrefix(guiLine, guiColumn),
      group
    );
  }
public ErrorTreeElement addMessage(@NotNull ErrorTreeElementKind kind,
                         String @NotNull [] text,
                         @Nullable VirtualFile underFileGroup,
                         @Nullable VirtualFile file,
                         int line,
                         int column,
                         @Nullable Object data)