@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiElement element) {
    if (!JavaLanguage.INSTANCE.equals(element.getLanguage())) return null;
    final PsiElement parent = PsiTreeUtil.getParentOfType(element, PsiMethod.class, PsiCodeBlock.class);
    if (!(parent instanceof PsiMethod method)) return null;
    final PsiParameterList parameterList = method.getParameterList();
    if (parameterList.isEmpty()) return null;
    final PsiClass containingClass = method.getContainingClass();
    if (containingClass == null || (containingClass.isInterface() && !PsiUtil.isAvailable(JavaFeature.EXTENSION_METHODS, method))) {
      return null;
    }
    if (containingClass.isAnnotationType()) {
      // Method with parameters in annotation is a compilation error; there's no sense to create overload
      return null;
    }
    return Presentation.of(QuickFixBundle.message("generate.overloaded.method.or.constructor.with.default.parameter.values",
                                                  JavaElementKind.fromElement(method).lessDescriptive().object()))
      .withIcon(AllIcons.Actions.RefactoringBulb)
      .withPriority(PriorityAction.Priority.LOW);
  }
@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiElement element)