@Override
  public void highlightsOutsideVisiblePartAreProduced(@NotNull HighlightingSession session,
                                                      @Nullable Editor editor,
                                                      @NotNull List<? extends HighlightInfo> infos,
                                                      @NotNull TextRange priorityRange,
                                                      @NotNull TextRange restrictedRange,
                                                      int groupId) {
    BackgroundUpdateHighlightersUtil.setHighlightersOutsideRange(infos, restrictedRange, priorityRange, groupId, session);
    if (editor != null) {
      PsiFile psiFile = session.getPsiFile();
      Project project = session.getProject();
      Document document = session.getDocument();
      long modificationStamp = document.getModificationStamp();
      ApplicationManager.getApplication().invokeLater(() -> {
        if (!project.isDisposed() && !editor.isDisposed() && modificationStamp != document.getModificationStamp()) {
          DaemonCodeAnalyzerImpl.repaintErrorStripeAndIcon(editor, project, psiFile);
        }
      });
    }
  }
@Override
  public void highlightsOutsideVisiblePartAreProduced(@NotNull HighlightingSession session,
                                                      @Nullable Editor editor,
                                                      @NotNull List<? extends HighlightInfo> infos,
                                                      @NotNull TextRange priorityRange,
                                                      @NotNull TextRange restrictedRange,
                                                      int groupId)