void (@NotNull final InitialInfo initialInfo, @NotNull final Editor editor) { final List<GrParameterListOwner> scopes = findScopes(initialInfo); if (scopes.isEmpty()) { throw new GrRefactoringError(GroovyRefactoringBundle.message("there.is.no.method.or.closure")); } else if (scopes.size() == 1 || ApplicationManager.getApplication().isUnitTestMode()) { final GrParameterListOwner owner = scopes.get(0); final PsiElement toSearchFor; if (owner instanceof GrMethod) { toSearchFor = SuperMethodWarningUtil.checkSuperMethod((PsiMethod)owner); if (toSearchFor == null) return; //if it is null, refactoring was canceled } else { toSearchFor = MethodOrClosureScopeChooser.findVariableToUse(owner); } showDialogOrStartInplace(new IntroduceParameterInfoImpl(initialInfo, owner, toSearchFor), editor); } else { myEnclosingMethodsPopup = MethodOrClosureScopeChooser.create(scopes, editor, this, (owner, element) -> { showDialogOrStartInplace(new IntroduceParameterInfoImpl(initialInfo, owner, element), editor); return null; }); myEnclosingMethodsPopup.showInBestPositionFor(editor); } }