void (@NotNull List<? extends @NotNull VFileEvent> events) { for (VFileEvent each : events) { if (!isRelevant(each.getPath())) continue; if (each instanceof VFileCreateEvent createEvent) { VirtualFile newChild = createEvent.getParent().findChild(createEvent.getChildName()); if (newChild != null) { updateFile(newChild, each); } } else if (each instanceof VFileCopyEvent copyEvent) { VirtualFile newChild = copyEvent.getNewParent().findChild(copyEvent.getNewChildName()); if (newChild != null) { updateFile(newChild, each); } } else if (each instanceof VFileContentChangeEvent) { updateFile(each.getFile(), each); } else if (each instanceof VFilePropertyChangeEvent) { if (isRenamed(each)) { updateFile(each.getFile(), each); } } else if (each instanceof VFileMoveEvent) { updateFile(each.getFile(), each); } } apply(); }