@Nullable VirtualFile findProjectRoot(@NotNull VirtualFile sourceFile) {
    VirtualFile parent = sourceFile.getParent();
    while (parent != null) {
      if (isProjectDir(parent)) {
        return parent;
      }
      ProgressManager.checkCanceled();
      parent = parent.getParent();
    }
    return null;
  }
@Nullable VirtualFile findProjectRoot(@NotNull VirtualFile sourceFile)