@Override
  public void after(@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();
  }
@Override
  public void after(@NotNull List<? extends @NotNull VFileEvent> events)