void (final ErrorTreeElement element) { if (element == myRoot) { return; } if (element instanceof GroupingElement groupingElement) { removeGroup(groupingElement.getName()); final VirtualFile virtualFile = groupingElement.getFile(); if (virtualFile != null) { ApplicationManager.getApplication().runReadAction(() -> { final PsiFile psiFile = virtualFile.isValid()? PsiManager.getInstance(myProject).findFile(virtualFile) : null; if (psiFile != null) { DaemonCodeAnalyzer.getInstance(myProject).restart(psiFile); // urge the daemon to re-highlight the file despite no modification has been made } }); } } else if (element instanceof NavigatableMessageElement navElement){ final GroupingElement parent = navElement.getParent(); if (parent != null) { synchronized (myLock) { final List<NavigatableMessageElement> groupMessages = myGroupNameToMessagesMap.get(parent.getName()); if (groupMessages != null) { groupMessages.remove(navElement); } } } } else { synchronized (myLock) { final List<ErrorTreeElement> simples = mySimpleMessages.get(element.getKind()); if (simples != null) { simples.remove(element); } } } }