private void processBeforeDeletedFile(@NotNull VirtualFile file) {
      if (file.isDirectory() && file instanceof NewVirtualFile && !isRecursiveDeleteSupported()) {
        for (VirtualFile child : ((NewVirtualFile)file).getCachedChildren()) {
          ProgressManager.checkCanceled();
          FileStatus status = myChangeListManager.getStatus(child);
          if (!filterOutByStatus(status)) {
            processBeforeDeletedFile(child);
          }
        }
      }
      else {
        FileStatus status = myChangeListManager.getStatus(file);
        if (filterOutByStatus(status) || shouldIgnoreDeletion(status)) return;

        FilePath filePath = VcsUtil.getFilePath(file);
        withLock(PROCESSING_LOCK.writeLock(), () -> {
          myDeletedFiles.add(filePath);
        });
      }
    }
private void processBeforeDeletedFile(@NotNull VirtualFile file)