@Override
  public void reportProblemsFromExternalSource(@NotNull VirtualFile file, @NotNull Object source) {
    ApplicationManager.getApplication().assertIsNonDispatchThread();
    if (!isToBeHighlighted(file)) return;

    Set<Object> problems = myProblemsFromExternalSources.computeIfAbsent(file, __ -> ConcurrentCollectionFactory.createConcurrentSet());
    boolean isNewFileForExternalSource = problems.isEmpty();
    problems.add(source);

    if (isNewFileForExternalSource && !hasRegularProblems(file)) {
      fireProblemsAppeared(file);
    }
    else {
      fireProblemsChanged(file);
    }
  }
@Override
  public void reportProblemsFromExternalSource(@NotNull VirtualFile file, @NotNull Object source)