void (@NotNull Project project, @NotNull PsiFile file, @Nullable Editor editor, @NotNull PsiElement startElement, @NotNull PsiElement endElement) { final PsiElement element = PyQuickFixUtil.dereference(startElement); if (element == null) { return; } final PsiNameIdentifierOwner nameOwner = element instanceof PsiNameIdentifierOwner ? (PsiNameIdentifierOwner)element : PsiTreeUtil.getParentOfType(element, PsiNameIdentifierOwner.class, true); if (nameOwner == null || editor == null) { return; } if (checkLocalScope(element) != null && (nameOwner instanceof PyNamedParameter || nameOwner instanceof PyTargetExpression)) { new VariableInplaceRenamer(nameOwner, editor).performInplaceRename(); } else { PsiElementRenameHandler.invoke(nameOwner, project, ScopeUtil.getScopeOwner(nameOwner), editor); } }