void (@NotNull List<? extends @NotNull VFileEvent> events) { Set<VirtualFile> toRefresh = null; for (var e : events) { if (e.getFileSystem() instanceof LocalFileSystem) { String homePath = null; if (e instanceof VFileContentChangeEvent cce) { var file = cce.getFile(); if ("release".equals(file.getName())) { homePath = file.getParent().getPath(); } } else if (e instanceof VFileDeleteEvent de) { homePath = de.getFile().getPath(); } if (homePath != null) { var handler = myHandlers.remove(homePath); if (handler != null) { handler.clearCaches(); var root = findFileByPath(composeRootPath(homePath)); if (root != null) { ((NewVirtualFile)root).markDirtyRecursively(); if (toRefresh == null) toRefresh = new HashSet<>(); toRefresh.add(root); } } } } } if (toRefresh != null) { var synchronous = ApplicationManager.getApplication().isUnitTestMode(); RefreshQueue.getInstance().refresh(!synchronous, true, null, toRefresh); } }