@Override
  public @NotNull ModCommand perform(@NotNull ActionContext context) {
    if (!(context.file() instanceof PsiJavaFile javaFile)) return ModCommand.nop();
    PsiImportList importList = javaFile.getImportList();
    if (importList == null) return ModCommand.nop();
    List<PsiImportStatementBase> importStatements = new ArrayList<>();
    DaemonCodeAnalyzerEx.processHighlights(javaFile.getViewProvider().getDocument(), context.project(), HighlightSeverity.INFORMATION, 
                                           importList.getTextRange().getStartOffset(), 
                                           importList.getTextRange().getEndOffset(), info -> {
      if (UnusedImportsVisitor.isUnusedImportHighlightInfo(javaFile, info)) {
        PsiImportStatementBase importStatement = PsiTreeUtil.findElementOfClassAtOffset(javaFile, info.getActualStartOffset(), PsiImportStatementBase.class, false);
        if (importStatement != null) {
          importStatements.add(importStatement);
        }
      }
      return true;
    });

    if (importStatements.isEmpty()) return ModCommand.nop();
    return ModCommand.psiUpdate(context, updater -> {
      for (PsiImportStatementBase statement : ContainerUtil.map(importStatements, updater::getWritable)) {
        new CommentTracker().deleteAndRestoreComments(statement);
      }
    });
  }
@Override
  public @NotNull ModCommand perform(@NotNull ActionContext context)