@Override
    public @NotNull Component getListCellRendererComponent(@NotNull JList list,
                                                           Object matchedValue,
                                                           int index, boolean isSelected, boolean cellHasFocus) {
      SimpleColoredComponent nameComponent = new SimpleColoredComponent();

      boolean showIcon = UISettings.getInstance().getShowIconsInMenus();
      IconCompOptionalCompPanel<SimpleColoredComponent>
        panel = new IconCompOptionalCompPanel<>(nameComponent) {
        @Override
        public AccessibleContext getAccessibleContext() {
          return nameComponent.getAccessibleContext();
        }
      };

      panel.setBorder(JBUI.Borders.empty(2));
      panel.setOpaque(true);
      Color bg = UIUtil.getListBackground(isSelected, cellHasFocus);
      panel.setBackground(bg);

      if (myUseListFont) {
        nameComponent.setFont(list.getFont());
      }
      nameComponent.setOpaque(false);

      if (matchedValue instanceof String) { //...
        if (showIcon) {
          panel.setIcon(EMPTY_ICON);
        }
        String str = cutName((String)matchedValue, null, list, panel);
        nameComponent.append(str, new SimpleTextAttributes(SimpleTextAttributes.STYLE_PLAIN,
                                                           defaultActionForeground(isSelected, cellHasFocus, null)));
        return panel;
      }

      Color groupFg;
      groupFg = isSelected ? NamedColorUtil.getListSelectionForeground(true) : NamedColorUtil.getInactiveTextColor();

      Object value = ((MatchedValue)matchedValue).value;
      String pattern = ((MatchedValue)matchedValue).pattern;

      Border eastBorder = JBUI.Borders.emptyRight(2);
      if (value instanceof ActionWrapper actionWithParentGroup) {
        AnAction anAction = actionWithParentGroup.getAction();
        boolean toggle = anAction instanceof ToggleAction;
        String groupName = actionWithParentGroup.getAction() instanceof ApplyIntentionAction ? null : actionWithParentGroup.getGroupName();
        Presentation presentation = actionWithParentGroup.getPresentation();
        Color fg = defaultActionForeground(isSelected, cellHasFocus, presentation);
        boolean disabled = !isSelected && !presentation.isEnabledAndVisible();

        if (disabled) {
          groupFg = UIUtil.getLabelDisabledForeground();
        }

        if (showIcon) {
          Icon icon = presentation.getIcon();
          if (isSelected && presentation.getSelectedIcon() != null) {
            icon = presentation.getSelectedIcon();
          }
          panel.setIcon(createLayeredIcon(icon, disabled));
        }

        if (toggle) {
          addOnOffButton(panel, Toggleable.isSelected(presentation));
        }
        else if (groupName != null) {
          JLabel groupLabel = new JLabel(groupName);
          groupLabel.setBackground(bg);
          groupLabel.setBorder(eastBorder);
          groupLabel.setForeground(groupFg);
          panel.setRight(groupLabel);
        }

        if (anAction instanceof PromoAction promoAction) {
          customizePromoAction(promoAction, bg, eastBorder, groupFg, panel);
        }

        panel.setToolTipText(presentation.getDescription());
        @NlsSafe String actionId = ActionManager.getInstance().getId(anAction);
        Shortcut[] shortcuts = KeymapUtil.getActiveKeymapShortcuts(actionId).getShortcuts();
        String shortcutText = KeymapUtil.getPreferredShortcutText(shortcuts);
        String text = ActionPresentationDecorator.decorateTextIfNeeded(anAction, presentation.getText());
        String name = getName(text, groupName, toggle);
        name = cutName(name, shortcutText, list, panel);

        appendWithColoredMatches(nameComponent, name, pattern, fg, isSelected);
        if (UISettings.getInstance().getShowInplaceCommentsInternal() && actionId != null) {
          nameComponent.append(" " + actionId + " ", SimpleTextAttributes.GRAYED_ATTRIBUTES);
        }
        if (StringUtil.isNotEmpty(shortcutText)) {
          nameComponent.append(" " + shortcutText,
                               new SimpleTextAttributes(SimpleTextAttributes.STYLE_SMALLER | SimpleTextAttributes.STYLE_BOLD, groupFg));
        }
      }
      else if (value instanceof OptionDescription) {
        if (!isSelected && !(value instanceof BooleanOptionDescription)) {
          Color descriptorBg;
          if (StartupUiUtil.isUnderDarcula()) {
            descriptorBg = ColorUtil.brighter(UIUtil.getListBackground(), 1);
          }
          else {
            descriptorBg = JBUI.CurrentTheme.BigPopup.LIST_SETTINGS_BACKGROUND;
          }
          panel.setBackground(descriptorBg);
          nameComponent.setBackground(descriptorBg);
        }
        String hit = calcHit((OptionDescription)value);
        Color fg = UIUtil.getListForeground(isSelected, cellHasFocus);

        if (showIcon) {
          panel.setIcon(EMPTY_ICON);
        }
        if (value instanceof BooleanOptionDescription) {
          boolean selected = ((BooleanOptionDescription)value).isOptionEnabled();
          addOnOffButton(panel, selected);
        }
        else {
          JLabel settingsLabel = new JLabel(myGroupNamer.fun((OptionDescription)value));
          settingsLabel.setForeground(groupFg);
          settingsLabel.setBackground(bg);
          settingsLabel.setBorder(eastBorder);
          panel.setRight(settingsLabel);
        }

        String name = cutName(hit, null, list, panel);
        appendWithColoredMatches(nameComponent, name, pattern, fg, isSelected);
      }
      return panel;
    }
@Override
    public @NotNull Component getListCellRendererComponent(@NotNull JList list,
                                                           Object matchedValue,
                                                           int index, boolean isSelected, boolean cellHasFocus)