@NotNull
  IntentionListStep getSubStep(@NotNull IntentionActionWithTextCaching action, @NlsContexts.PopupTitle String title) {
    ShowIntentionsPass.IntentionsInfo intentions = new ShowIntentionsPass.IntentionsInfo();
    if (myCachedIntentions instanceof CachedIntentions cachedIntentions) {
      intentions.setOffset(cachedIntentions.getOffset());
    }
    for (IntentionAction optionIntention : action.getOptionIntentions()) {
      intentions.intentionsToShow.add(
        new HighlightInfo.IntentionActionDescriptor(optionIntention, null, null, getIcon(optionIntention), null, null, null));
    }
    for (IntentionAction optionFix : action.getOptionErrorFixes()) {
      intentions.errorFixesToShow.add(
        new HighlightInfo.IntentionActionDescriptor(optionFix, null, null, getIcon(optionFix), null, null, null));
    }
    for (IntentionAction optionFix : action.getOptionInspectionFixes()) {
      intentions.inspectionFixesToShow.add(
        new HighlightInfo.IntentionActionDescriptor(optionFix, null, null, getIcon(optionFix), null, null, null));
    }
    intentions.setTitle(title);

    return new IntentionListStep(myPopup, myEditor, myFile, myProject,
                                 CachedIntentions.create(myProject, myFile, myEditor, intentions)) {
      @Override
      protected void chooseActionAndInvoke(@NotNull IntentionActionWithTextCaching cachedAction,
                                           @NotNull PsiFile file,
                                           @NotNull Project project,
                                           @Nullable Editor editor) {
        IntentionListStep.this.chooseActionAndInvoke(cachedAction, file, project, editor);
      }
    };
  }
@NotNull
  IntentionListStep getSubStep(@NotNull IntentionActionWithTextCaching action, @NlsContexts.PopupTitle String title)