mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
use DumbService#completeJustSumbittedTasks in some places between VFS changes and reference resolve
This commit is contained in:
+4
@@ -19,6 +19,7 @@ import com.intellij.ide.util.DirectoryChooserUtil;
|
||||
import com.intellij.lang.java.JavaFindUsagesProvider;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.JavaProjectRootsUtil;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
@@ -236,9 +237,12 @@ public class MoveClassesOrPackagesUtil {
|
||||
if (!Comparing.equal(moveDestination.getVirtualFile(), containingDirectory != null ? containingDirectory.getVirtualFile() : null)) {
|
||||
LOG.assertTrue(file.getVirtualFile() != null, aClass);
|
||||
|
||||
Project project = file.getProject();
|
||||
MoveFilesOrDirectoriesUtil.doMoveFile(file, moveDestination);
|
||||
file = moveDestination.findFile(file.getName());
|
||||
|
||||
DumbService.getInstance(project).completeJustSubmittedTasks();
|
||||
|
||||
if (newPackage != null && file instanceof PsiClassOwner && !FileTypeUtils.isInServerPageFile(file) && !PsiUtil.isModuleFile(file)) {
|
||||
// Do not rely on class instance identity retention after setPackageName (Scala)
|
||||
String aClassName = aClass.getName();
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
|
||||
import com.intellij.openapi.progress.ProgressIndicatorProvider;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.ui.Queryable;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
@@ -366,6 +367,8 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
|
||||
}
|
||||
if (copyVFile == null) throw new IncorrectOperationException("File was not copied: " + vFile);
|
||||
|
||||
DumbService.getInstance(getProject()).completeJustSubmittedTasks();
|
||||
|
||||
final PsiFile copyPsi = myManager.findFile(copyVFile);
|
||||
if (copyPsi == null) throw new IncorrectOperationException("Could not find file " + copyVFile + " after copying " + vFile);
|
||||
updateAddedFile(copyPsi);
|
||||
|
||||
@@ -64,7 +64,6 @@ import com.intellij.util.Processor;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -479,6 +478,8 @@ public abstract class BaseRefactoringProcessor implements Runnable {
|
||||
}
|
||||
});
|
||||
|
||||
DumbService.getInstance(myProject).completeJustSubmittedTasks();
|
||||
|
||||
for(Map.Entry<RefactoringHelper, Object> e: preparedData.entrySet()) {
|
||||
//noinspection unchecked
|
||||
e.getKey().performOperation(myProject, e.getValue());
|
||||
|
||||
+3
@@ -19,6 +19,7 @@ import com.intellij.ide.util.EditorHelper;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.paths.PsiDynaReference;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
@@ -181,6 +182,8 @@ public class MoveFilesOrDirectoriesProcessor extends BaseRefactoringProcessor {
|
||||
// sort by offset descending to process correctly several usages in one PsiElement [IDEADEV-33013]
|
||||
CommonRefactoringUtil.sortDepthFirstRightLeftOrder(usages);
|
||||
|
||||
DumbService.getInstance(myProject).completeJustSubmittedTasks();
|
||||
|
||||
// fix references in moved files to outer files
|
||||
for (PsiFile movedFile : movedFiles) {
|
||||
MoveFileHandler.forElement(movedFile).updateMovedFile(movedFile);
|
||||
|
||||
+3
@@ -18,6 +18,7 @@ package org.jetbrains.plugins.groovy.refactoring.move;
|
||||
|
||||
import com.intellij.lang.FileASTNode;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.tree.Factory;
|
||||
@@ -77,6 +78,8 @@ public class MoveGroovyClassHandler implements MoveClassHandler {
|
||||
if (!moveDestination.equals(file.getContainingDirectory())) {
|
||||
MoveFilesOrDirectoriesUtil.doMoveFile(file, moveDestination);
|
||||
file = moveDestination.findFile(file.getName());
|
||||
assert file != null;
|
||||
DumbService.getInstance(file.getProject()).completeJustSubmittedTasks();
|
||||
((PsiClassOwner)file).setPackageName(newPackageName);
|
||||
}
|
||||
return ((GroovyFile)file).getScriptClass();
|
||||
|
||||
Reference in New Issue
Block a user