override fun doRename()

in src/main/kotlin/org/arend/refactoring/rename/ArendGlobalReferableRenameHandler.kt [58:85]


    override fun doRename(elementToRename: PsiElement, editor: Editor, dataContext: DataContext?): InplaceRefactoring? {
        if (ApplicationManager.getApplication().isUnitTestMode && dataContext != null) { //Invoked only in tests
            val newName = PsiElementRenameHandler.DEFAULT_NAME.getData(dataContext)
            if (newName != null) {
                val project = editor.project
                if (project != null) {
                    val context = Util.getContext(project, elementToRename, editor)
                    if (context != null) ArendRenameProcessor(project, elementToRename, newName, context, null).run()
                }
                return null
            }
        }
        if (elementToRename is PsiNameIdentifierOwner && (elementToRename is GlobalReferable || Util.isDefIdentifierFromNsId(
                elementToRename
            ))) {
            val renamer = createMemberRenamer(elementToRename, elementToRename, editor)
            val startedRename = renamer.performInplaceRename()
            if (!startedRename) {
                if (checkNotGeneratePreview()) {
                    invokeLater {
                        Util.customPerformDialogRename(elementToRename, editor)
                    }
                }
            }
            return null
        }
        return super.doRename(elementToRename, editor, dataContext)
    }