private static @NotNull List<ProjectType> findProjectTypes(@NotNull Project project) {
    List<ProjectTypesProvider> providers = ProjectTypesProvider.EP_NAME.getExtensionList();
    if (providers.isEmpty()) return emptyList();

    return ReadAction.<List<ProjectType>>nonBlocking(() -> {
      if (DumbService.isDumb(project)) return emptyList();

      return providers.stream()
        .flatMap(p -> p.inferProjectTypes(project).stream())
        .toList();
    }).executeSynchronously();
  }
private static @NotNull List<ProjectType> findProjectTypes(@NotNull Project project)