private void showPlugin() {
    @NlsSafe String text = "<html><span>" + requireNonNull(myPlugin).getName() + "</span></html>";
    myNameComponent.setText(text);
    myNameComponent.setForeground(null);
    updateNotifications();
    updateIcon();

    if (myErrorComponent != null) {
      myErrorComponent.setVisible(false);
    }

    updateButtons();

    IdeaPluginDescriptor plugin = getDescriptorForActions();
    String version = plugin.getVersion();
    if (plugin.isBundled() && !plugin.allowBundledUpdate()) {
      version = IdeBundle.message("plugin.version.bundled") + (Strings.isEmptyOrSpaces(version) ? "" : " " + version);
    }
    if (myUpdateDescriptor != null) {
      version = NewUiUtil.getVersion(plugin, myUpdateDescriptor);
    }

    boolean isVersion = !Strings.isEmptyOrSpaces(version);

    if (myVersion != null) {
      myVersion.setText(version);
      myVersionSize.setText(version);
      myVersion.setPreferredSize(
        new Dimension(myVersionSize.getPreferredSize().width + JBUIScale.scale(4), myVersionSize.getPreferredSize().height));

      myVersion.setVisible(isVersion);
    }

    if (myVersion1 != null) {
      myVersion1.setText(version);
      myVersion1.setVisible(isVersion);
    }

    if (myVersion2 != null) {
      myVersion2.setText(IdeBundle.message("plugins.configurable.version.0", version));
      myVersion2.setVisible(isVersion);
    }

    myTagPanel.setTags(PluginManagerConfigurable.getTags(myPlugin));

    if (myMarketplace) {
      showMarketplaceData(myPlugin);
      updateMarketplaceTabsVisible(myPlugin instanceof PluginNode node && !node.isConverted());
    }
    else {
      PluginNode node = getInstalledPluginMarketplaceNode();
      updateMarketplaceTabsVisible(node != null);
      if (node != null) {
        showMarketplaceData(node);
      }
      updateEnabledForProject();
    }

    String vendor = myPlugin.isBundled() ? null : Strings.trim(myPlugin.getVendor());
    String organization = myPlugin.isBundled() ? null : Strings.trim(myPlugin.getOrganization());
    if (!Strings.isEmptyOrSpaces(organization)) {
      myAuthor.show(organization, () -> mySearchListener.linkSelected(
        null,
        SearchWords.VENDOR.getValue() + (organization.indexOf(' ') == -1 ? organization : '\"' + organization + "\"")
      ));
    }
    else if (!Strings.isEmptyOrSpaces(vendor)) {
      myAuthor.show(vendor, null);
    }
    else {
      myAuthor.hide();
    }

    showLicensePanel();
    String homepage = MarketplaceUrls.getPluginHomepage(myPlugin.getPluginId());

    if (myPlugin.isBundled() && !myPlugin.allowBundledUpdate()
        || !isPluginFromMarketplace()
        || homepage == null) {
      myHomePage.hide();
    } else {
      myHomePage.showWithBrowseUrl(
        IdeBundle.message("plugins.configurable.plugin.homepage.link"),
        true,
        () -> homepage
      );
    }

    if (myDate != null) {
      String date = plugin instanceof PluginNode ? ((PluginNode)plugin).getPresentableDate() : null;
      myDate.setText(myMultiTabs ? IdeBundle.message("plugins.configurable.release.date.0", date) : date);
      myDate.setVisible(date != null);
    }

    if (mySuggestedFeatures != null) {
      String feature = null;
      if (myMarketplace && myPlugin instanceof PluginNode node) {
        feature = ContainerUtil.getFirstItem(node.getSuggestedFeatures());
      }
      mySuggestedFeatures.setSuggestedText(feature);
    }

    for (JBScrollPane scrollPane : myScrollPanes) {
      scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    }

    String description = getDescription();
    if (description != null && !description.equals(myDescription)) {
      myDescription = description;
      myDescriptionComponent.setText(XmlStringUtil.wrapInHtml(description));
      if (myDescriptionComponent.getCaret() != null) {
        myDescriptionComponent.setCaretPosition(0);
      }
    }
    myDescriptionComponent.setVisible(description != null);

    myChangeNotesPanel.show(getChangeNotes());

    if (myChangeNotesEmptyState != null) {
      String message = IdeBundle.message("plugins.configurable.notes.empty.text",
                                         StringUtil.defaultIfEmpty(StringUtil.defaultIfEmpty(organization, vendor), IdeBundle.message(
                                           "plugins.configurable.notes.empty.text.default.vendor")));
      myChangeNotesEmptyState.getEmptyText().setText(message);
    }

    if (myImagesComponent != null) {
      PluginNode node = getInstalledPluginMarketplaceNode();
      myImagesComponent.show(node == null ? myPlugin : node);
    }

    ApplicationManager.getApplication().invokeLater(() -> {
      IdeEventQueue.getInstance().flushQueue();
      for (JBScrollPane scrollPane : myScrollPanes) {
        ((JBScrollBar)scrollPane.getVerticalScrollBar()).setCurrentValue(0);
      }
    }, ModalityState.any());

    if (MyPluginModel.isInstallingOrUpdate(myPlugin)) {
      showProgress();
    }
    else {
      fullRepaint();
    }
  }
private void showPlugin()