void (Project project, PsiElement @NotNull [] elements, PsiElement targetContainer, DataContext dataContext, MoveCallback callback) { if (elements.length == 0) return; try (var ignored = SlowOperations.startSection(SlowOperations.ACTION_PERFORM)) { if (DumbService.isDumb(project)) { MoveFilesOrDirectoriesHandler filesOrDirectoriesHandler = MoveHandlerDelegate.EP_NAME.findExtensionOrFail(MoveFilesOrDirectoriesHandler.class); if (filesOrDirectoriesHandler.canMove(elements, targetContainer, null)) { int copyDumb = Messages.showYesNoDialog(project, RefactoringBundle.message("move.handler.is.dumb.during.indexing"), getRefactoringName(), Messages.getQuestionIcon()); if (copyDumb == Messages.YES) { logDelegate(project, filesOrDirectoriesHandler, elements[0].getLanguage()); filesOrDirectoriesHandler.doMove(project, elements, filesOrDirectoriesHandler.adjustTargetForMove(dataContext, targetContainer), callback); } } } else { for (MoveHandlerDelegate delegate : MoveHandlerDelegate.EP_NAME.getExtensionList()) { if (delegate.canMove(elements, targetContainer, null)) { logDelegate(project, delegate, elements[0].getLanguage()); delegate.doMove(project, elements, delegate.adjustTargetForMove(dataContext, targetContainer), callback); break; } } } } }