@Override
  public void showCodeSmellErrors(@NotNull final List<CodeSmellInfo> smellList) {
    smellList.sort(Comparator.comparingInt(o -> o.getTextRange().getStartOffset()));

    ApplicationManager.getApplication().invokeLater(() -> {
      if (myProject.isDisposed()) return;
      if (smellList.isEmpty()) {
        return;
      }

      final VcsErrorViewPanel errorTreeView = new VcsErrorViewPanel(myProject);

      FileDocumentManager fileManager = FileDocumentManager.getInstance();

      for (CodeSmellInfo smellInfo : smellList) {
        final VirtualFile file = fileManager.getFile(smellInfo.getDocument());
        if (file == null) continue;
        String presentableUrl = file.getPresentableUrl();
        final OpenFileDescriptor navigatable =
          new OpenFileDescriptor(myProject, file, smellInfo.getStartLine(), smellInfo.getStartColumn());
        final String exportPrefix = NewErrorTreeViewPanel.createExportPrefix(smellInfo.getStartLine() + 1);
        final String rendererPrefix =
          NewErrorTreeViewPanel.createRendererPrefix(smellInfo.getStartLine() + 1, smellInfo.getStartColumn() + 1);
        if (smellInfo.getSeverity() == HighlightSeverity.ERROR) {
          errorTreeView.addMessage(MessageCategory.ERROR, new String[]{smellInfo.getDescription()}, FileUtil.getLocationRelativeToUserHome(presentableUrl), navigatable,
                                   exportPrefix, rendererPrefix, null);
        }
        else {//if (smellInfo.getSeverity() == HighlightSeverity.WARNING) {
          errorTreeView.addMessage(MessageCategory.WARNING, new String[]{smellInfo.getDescription()}, FileUtil.getLocationRelativeToUserHome(presentableUrl),
                                   navigatable, exportPrefix, rendererPrefix, null);
        }

      }

      ToolWindow toolWindow = ProblemsView.getToolWindow(myProject);
      if (toolWindow != null && toolWindow.isAvailable()) {
        toolWindow.activate(() -> {
          ContentManager contentManager = toolWindow.getContentManager();

          for (Content oldContent : contentManager.getContents()) {
            if (oldContent.isPinned()) continue;
            if (Boolean.TRUE.equals(oldContent.getUserData(CODE_SMELL_DETECTOR_KEY))) {
              contentManager.removeContent(oldContent, true);
            }
          }

          ContentImpl content = new ContentImpl(errorTreeView, VcsBundle.message("code.smells.error.messages.tab.name"), true);
          content.putUserData(CODE_SMELL_DETECTOR_KEY, true);
          contentManager.addContent(content);
          contentManager.setSelectedContent(content, true);
        }, true, true);
      }
      else {
        AbstractVcsHelperImpl helper = (AbstractVcsHelperImpl)AbstractVcsHelper.getInstance(myProject);
        helper.openMessagesView(errorTreeView, VcsBundle.message("code.smells.error.messages.tab.name"));
      }
    });
  }
@Override
  public void showCodeSmellErrors(@NotNull final List<CodeSmellInfo> smellList)