@Override
  protected @NotNull ModCommand perform(@NotNull ActionContext context, @NotNull PsiElement element) {
    PsiMethod method = PsiTreeUtil.getParentOfType(element, PsiMethod.class);
    assert method != null;
    PsiParameterList parameterList = method.getParameterList();
    PsiParameter[] parameters = parameterList.getParameters();
    if (parameters.length == 1) {
      return ModCommand.psiUpdate(method, (m, updater) -> invoke(context.project(), m, updater,
                                                                 updater.getWritable(m).getParameterList().getParameters()));
    }
    List<ParameterClassMember> members = ContainerUtil.map(parameters, ParameterClassMember::new);
    PsiParameter selectedParam = PsiTreeUtil.getParentOfType(element, PsiParameter.class);
    int idx = selectedParam != null ? ArrayUtil.find(parameters, selectedParam) : -1;
    List<ParameterClassMember> defaultSelection = idx >= 0 ? List.of(members.get(idx)) : members;
    return ModCommand.chooseMultipleMembers(
      QuickFixBundle.message("choose.default.value.parameters.popup.title"),
      members, defaultSelection, 
      sel -> ModCommand.psiUpdate(context, updater -> {
        invoke(context.project(), updater.getWritable(element), updater,
               ContainerUtil.map2Array(sel, PsiParameter.EMPTY_ARRAY,
                                       s -> updater.getWritable(((ParameterClassMember)s).getParameter())));
      }));
  }
@Override
  protected @NotNull ModCommand perform(@NotNull ActionContext context, @NotNull PsiElement element)