show 'Preview' if usages in generated code are found during rename/move refactoring (IDEA-128194)

This commit is contained in:
nik
2014-08-13 11:48:11 +04:00
parent b67febc214
commit abfb033251
4 changed files with 22 additions and 14 deletions
@@ -23,7 +23,6 @@ import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.psi.*;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.PackageScope;
@@ -48,7 +47,6 @@ import com.intellij.refactoring.util.classRefs.ClassReferenceScanner;
import com.intellij.usageView.UsageInfo;
import com.intellij.usageView.UsageViewDescriptor;
import com.intellij.usageView.UsageViewUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.Processor;
import com.intellij.util.VisibilityUtil;
@@ -472,9 +470,7 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor {
}
protected boolean isPreviewUsages(UsageInfo[] usages) {
if (UsageViewUtil.hasNonCodeUsages(usages)) {
WindowManager.getInstance().getStatusBar(myProject).setInfo(
RefactoringBundle.message("occurrences.found.in.comments.strings.and.non.java.files"));
if (UsageViewUtil.reportNonRegularUsages(usages, myProject)) {
return true;
}
else {
@@ -320,11 +320,7 @@ public class RenameProcessor extends BaseRefactoringProcessor {
protected boolean isPreviewUsages(UsageInfo[] usages) {
if (myForceShowPreview) return true;
if (super.isPreviewUsages(usages)) return true;
if (UsageViewUtil.hasNonCodeUsages(usages)) {
WindowManager.getInstance().getStatusBar(myProject)
.setInfo(RefactoringBundle.message("occurrences.found.in.comments.strings.and.non.java.files"));
return true;
}
if (UsageViewUtil.reportNonRegularUsages(usages, myProject)) return true;
return false;
}
@@ -26,7 +26,6 @@ import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.psi.*;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.searches.ReferencesSearch;
@@ -40,7 +39,9 @@ import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteCustomUsageInfo;
import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceSimpleDeleteUsageInfo;
import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceUsageInfo;
import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteUsageInfo;
import com.intellij.refactoring.util.*;
import com.intellij.refactoring.util.NonCodeSearchDescriptionLocation;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.refactoring.util.TextOccurrencesUtil;
import com.intellij.usageView.UsageInfo;
import com.intellij.usageView.UsageViewDescriptor;
import com.intellij.usageView.UsageViewUtil;
@@ -352,8 +353,7 @@ public class SafeDeleteProcessor extends BaseRefactoringProcessor {
@Override
protected boolean isPreviewUsages(UsageInfo[] usages) {
if(myPreviewNonCodeUsages && (UsageViewUtil.hasNonCodeUsages(usages) || UsageViewUtil.hasUsagesInGeneratedCode(usages, myProject))) {
WindowManager.getInstance().getStatusBar(myProject).setInfo(RefactoringBundle.message("occurrences.found.in.comments.strings.non.java.files.and.generated.code"));
if(myPreviewNonCodeUsages && UsageViewUtil.reportNonRegularUsages(usages, myProject)) {
return true;
}
@@ -24,10 +24,13 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.GeneratedSourcesFilter;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.StatusBar;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.psi.ElementDescriptionUtil;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiReference;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.MoveRenameUsageInfo;
import com.intellij.refactoring.util.NonCodeUsageInfo;
import com.intellij.usages.Usage;
@@ -179,4 +182,17 @@ public class UsageViewUtil {
}
return usageInfos;
}
public static boolean reportNonRegularUsages(UsageInfo[] usages, final Project project) {
boolean inGeneratedCode = hasUsagesInGeneratedCode(usages, project);
if (hasNonCodeUsages(usages) || inGeneratedCode) {
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
if (statusBar != null) {
statusBar.setInfo(inGeneratedCode ? RefactoringBundle.message("occurrences.found.in.comments.strings.non.java.files.and.generated.code")
: RefactoringBundle.message("occurrences.found.in.comments.strings.and.non.java.files"));
}
return true;
}
return false;
}
}