void (final Project project, final MatchProvider provider, boolean showDialog) { final List<Match> duplicates = provider.getDuplicates(); int idx = 0; final Ref<Boolean> showAll = new Ref<>(); if (!showDialog) showAll.set(true); final String confirmDuplicatePrompt = getConfirmationPrompt(provider, duplicates); for (final Match match : duplicates) { final PsiFile file = match.getFile(); final VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile == null || !virtualFile.isValid()) return; if (!CommonRefactoringUtil.checkReadOnlyStatus(project, file)) return; final Editor editor = FileEditorManager.getInstance(project).openTextEditor(new OpenFileDescriptor(project, virtualFile), false); LOG.assertTrue(editor != null); if (!match.getMatchStart().isValid() || !match.getMatchEnd().isValid()) continue; if (replaceMatch(project, provider, match, editor, ++idx, duplicates.size(), showAll, confirmDuplicatePrompt, false)) return; } }