@Override
  public @Nullable Icon getIcon(@NotNull IntentionActionWithTextCaching value) {
    if (value.getIcon() != null) {
      return value.getIcon();
    }

    IntentionAction action = IntentionActionDelegate.unwrap(value.getAction());
    Object iconable = action;
    //custom icon
    LocalQuickFix fix = QuickFixWrapper.unwrap(action);
    if (fix != null) {
      iconable = fix;
    }

    if (iconable instanceof Iconable) {
      Icon icon = ((Iconable)iconable).getIcon(0);
      if (icon != null) {
        return icon;
      }
    }

    return ReadAction.compute(() -> {
      if (IntentionManagerSettings.getInstance().isShowLightBulb(action)) {
        return myErrorFixes.contains(value) ? AllIcons.Actions.QuickfixBulb :
               myInspectionFixes.contains(value) ? AllIcons.Actions.IntentionBulb :
               ExperimentalUI.isNewUI() ? null :
               AllIcons.Actions.RealIntentionBulb;
      }
      else {
        return myErrorFixes.contains(value) ? AllIcons.Actions.QuickfixOffBulb :
               ExperimentalUI.isNewUI() ? null :
               IconLoader.getDisabledIcon(AllIcons.Actions.RealIntentionBulb);
      }
    });
  }
@Override
  public @Nullable Icon getIcon(@NotNull IntentionActionWithTextCaching value)