mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-115761 MakeInnerClassOf refactoring should probably exclude target classes from GeneratedSources roots
This commit is contained in:
@@ -6,6 +6,8 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiCodeFragment;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.search.DelegatingGlobalSearchScope;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -69,4 +71,22 @@ public class JavaProjectRootsUtil {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static GlobalSearchScope getScopeWithoutGeneratedSources(@NotNull GlobalSearchScope baseScope, @NotNull Project project) {
|
||||
return new NonGeneratedSourceScope(baseScope, project);
|
||||
}
|
||||
|
||||
private static class NonGeneratedSourceScope extends DelegatingGlobalSearchScope {
|
||||
@NotNull private final Project myProject;
|
||||
|
||||
private NonGeneratedSourceScope(@NotNull GlobalSearchScope baseScope, @NotNull Project project) {
|
||||
super(baseScope);
|
||||
myProject = project;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(@NotNull VirtualFile file) {
|
||||
return super.contains(file) && !isInGeneratedCode(file, myProject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -32,6 +32,7 @@ import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Pass;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.ProjectScope;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
@@ -175,7 +176,8 @@ public class MoveClassesOrPackagesDialog extends RefactoringDialog {
|
||||
myWithBrowseButtonReference = createPackageChooser();
|
||||
myClassPackageChooser = createPackageChooser();
|
||||
|
||||
myInnerClassChooser = new ClassNameReferenceEditor(myProject, null, ProjectScope.getProjectScope(myProject));
|
||||
GlobalSearchScope scope = JavaProjectRootsUtil.getScopeWithoutGeneratedSources(ProjectScope.getProjectScope(myProject), myProject);
|
||||
myInnerClassChooser = new ClassNameReferenceEditor(myProject, null, scope);
|
||||
myInnerClassChooser.addDocumentListener(new DocumentAdapter() {
|
||||
public void documentChanged(DocumentEvent e) {
|
||||
validateButtons();
|
||||
|
||||
Reference in New Issue
Block a user