public @NotNull List<? extends HtmlChunk> getErrors(@NotNull IdeaPluginDescriptor descriptor) {
    PluginId pluginId = descriptor.getPluginId();
    if (isDeleted(descriptor) ||
        InstalledPluginsState.getInstance().wasUninstalledWithoutRestart(pluginId) ||
        InstalledPluginsState.getInstance().wasInstalledWithoutRestart(pluginId)) {
      // we'll actually install the plugin when the configurable is closed; at this time we don't know if there's any loadingError
      return List.of();
    }

    PluginLoadingError loadingError = PluginManagerCore.INSTANCE.getLoadingError(pluginId);
    PluginId disabledDependency = loadingError != null ? loadingError.disabledDependency : null;
    if (disabledDependency == null) {
      return loadingError != null ?
             List.of(createTextChunk(loadingError.getShortMessage())) :
             List.of();
    }

    Map<PluginId, IdeaPluginDescriptor> requiredPlugins = new HashMap<>();
    getRequiredPluginsById(pluginId).filter(pair -> {
      IdeaPluginDescriptor requiredDescriptor = pair.getSecond();
      return requiredDescriptor == null || !requiredDescriptor.isEnabled();
    }).forEach(pair -> requiredPlugins.put(pair.getFirst(), pair.getSecond()));
    if (requiredPlugins.isEmpty()) {
      return List.of();
    }

    ArrayList<HtmlChunk> errors = new ArrayList<>();

    Set<String> pluginNamesOrIds = requiredPlugins.entrySet().stream()
      .map(entry -> getPluginNameOrId(entry.getKey(), entry.getValue()))
      .collect(Collectors.toUnmodifiableSet());
    String message = IdeBundle.message("new.plugin.manager.incompatible.deps.tooltip",
                                       pluginNamesOrIds.size(),
                                       joinPluginNamesOrIds(pluginNamesOrIds));
    errors.add(createTextChunk(message));

    //noinspection SSBasedInspection
    if (requiredPlugins.entrySet().stream().noneMatch(entry -> {
      IdeaPluginDescriptor requiredDescriptor = entry.getValue();
      return requiredDescriptor == null || PluginManagerCore.isIncompatible(requiredDescriptor);
    })) {
      String action = IdeBundle.message("new.plugin.manager.incompatible.deps.action", requiredPlugins.size());
      errors.add(HtmlChunk.link("link", action));
    }

    return Collections.unmodifiableList(errors);
  }
public @NotNull List<? extends HtmlChunk> getErrors(@NotNull IdeaPluginDescriptor descriptor)