ModCommand (@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 new ModChooseMember( QuickFixBundle.message("choose.default.value.parameters.popup.title"), members, defaultSelection, ModChooseMember.SelectionMode.MULTIPLE, sel -> ModCommand.psiUpdate(context, updater -> { invoke(context.project(), updater.getWritable(element), updater, ContainerUtil.map2Array(sel, PsiParameter.EMPTY_ARRAY, s -> updater.getWritable(((ParameterClassMember)s).getParameter()))); })); }