void (@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); } }