private @NotNull Stream<Pair<@NotNull PluginId, @Nullable IdeaPluginDescriptorImpl>> getRequiredPluginsById(@NotNull PluginId pluginId) {
    Set<PluginId> pluginIds = getRequiredPluginIds(pluginId);
    if (pluginIds.isEmpty()) {
      return Stream.of();
    }

    Map<PluginId, IdeaPluginDescriptorImpl> pluginIdMap = PluginManagerCore.INSTANCE.buildPluginIdMap();
    return pluginIds
      .stream()
      .map(requiredPluginId -> {
        IdeaPluginDescriptorImpl requiredDescriptor = pluginIdMap.get(requiredPluginId);
        return Pair.create(requiredPluginId, requiredDescriptor == null && PluginManagerCore.isModuleDependency(requiredPluginId) ?
                                             PluginManagerCore.INSTANCE.findPluginByModuleDependency(requiredPluginId) :
                                             requiredDescriptor);
      });
  }
private @NotNull Stream<Pair<@NotNull PluginId, @Nullable IdeaPluginDescriptorImpl>> getRequiredPluginsById(@NotNull PluginId pluginId)