public static Map<String, Supplier<ExtensionPoint>> getExtensionPoints(Project project, Set<VirtualFile> files, String epPrefix) {
    Map<String, Supplier<ExtensionPoint>> result = new HashMap<>();

    final PsiManager psiManager = PsiManager.getInstance(project);
    final DomManager domManager = DomManager.getDomManager(project);
    for (VirtualFile file : files) {
      final Map<String, Integer> data = FileBasedIndex.getInstance().getFileData(NAME, file, project);
      if (data.isEmpty()) continue;

      for (Map.Entry<String, Integer> entry : data.entrySet()) {
        final String qualifiedName = entry.getKey();
        if (!StringUtil.startsWith(qualifiedName, epPrefix)) continue;

        result.put(qualifiedName, () -> {
          return getExtensionPointDom(psiManager, domManager, file, entry.getValue());
        });
      }
    }
    return result;
  }
public static Map<String, Supplier<ExtensionPoint>> getExtensionPoints(Project project, Set<VirtualFile> files, String epPrefix)