void (@NotNull VirtualFile virtualFile, @NotNull List<? extends Problem> problems) { ApplicationManager.getApplication().assertIsNonDispatchThread(); if (problems.isEmpty()) return; ProblemFileInfo storedProblems = myProblems.computeIfAbsent(virtualFile, __ -> new ProblemFileInfo()); boolean fireListener = storedProblems.problems.isEmpty(); storedProblems.problems.addAll(problems); doQueue(virtualFile); if (fireListener) { if (hasProblemsFromExternalSources(virtualFile)) { fireProblemsChanged(virtualFile); } else { fireProblemsAppeared(virtualFile); } } }