mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
(no message)
This commit is contained in:
@@ -12,6 +12,7 @@ import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.UserDataHolder;
|
||||
import com.intellij.psi.scope.PsiScopeProcessor;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
|
||||
public interface PsiElement extends UserDataHolder, Iconable {
|
||||
@@ -114,5 +115,5 @@ public interface PsiElement extends UserDataHolder, Iconable {
|
||||
boolean isPhysical();
|
||||
|
||||
GlobalSearchScope getResolveScope();
|
||||
GlobalSearchScope getUseScope();
|
||||
SearchScope getUseScope();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.aspects.psi.PsiPointcut;
|
||||
import com.intellij.aspects.psi.PsiPointcutDef;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.jsp.JspDirective;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
|
||||
public interface PsiSearchHelper {
|
||||
PsiReference[] findReferences(PsiElement element, SearchScope searchScope, boolean ignoreAccessScope);
|
||||
@@ -50,7 +51,7 @@ public interface PsiSearchHelper {
|
||||
PsiFile[] findFilesWithPlainTextWords(String word);
|
||||
void processUsagesInNonJavaFiles(String qName, PsiNonJavaFileReferenceProcessor processor, GlobalSearchScope searchScope);
|
||||
|
||||
SearchScope getAccessScope(PsiElement element);
|
||||
SearchScope getUseScope(PsiElement element);
|
||||
|
||||
PsiFile[] findFormsBoundToClass(String className);
|
||||
|
||||
|
||||
@@ -15,160 +15,6 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PsiSearchScopeUtil {
|
||||
public interface AccessScopeHandler {
|
||||
SearchScope getAccessScope(PsiElement element);
|
||||
}
|
||||
|
||||
private static HashMap<FileType,AccessScopeHandler> scopeHandlers = new HashMap<FileType, AccessScopeHandler>();
|
||||
|
||||
public static void registerAccessScopeHandler(FileType fileType, AccessScopeHandler accessScopeHandler) {
|
||||
scopeHandlers.put(fileType, accessScopeHandler);
|
||||
}
|
||||
|
||||
public static SearchScope getAccessScope(PsiElement element) {
|
||||
if (element instanceof PsiPackage) {
|
||||
return element.getUseScope();
|
||||
}
|
||||
else if (element instanceof PsiClass) {
|
||||
if (element instanceof PsiAnonymousClass) {
|
||||
return new LocalSearchScope(element);
|
||||
}
|
||||
PsiFile file = element.getContainingFile();
|
||||
if (file instanceof JspFile) {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
PsiClass aClass = (PsiClass)element;
|
||||
if (aClass.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||
return element.getUseScope();
|
||||
}
|
||||
else if (aClass.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||
return element.getUseScope();
|
||||
}
|
||||
else if (aClass.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiClass topClass = getTopLevelClass(aClass);
|
||||
return topClass != null ? new LocalSearchScope(topClass) : new LocalSearchScope(aClass.getContainingFile());
|
||||
}
|
||||
else {
|
||||
PsiPackage aPackage = null;
|
||||
if (file instanceof PsiJavaFile) {
|
||||
aPackage = element.getManager().findPackage(((PsiJavaFile)file).getPackageName());
|
||||
}
|
||||
|
||||
if (aPackage == null) {
|
||||
PsiDirectory dir = file.getContainingDirectory();
|
||||
if (dir != null) {
|
||||
aPackage = dir.getPackage();
|
||||
}
|
||||
}
|
||||
|
||||
if (aPackage != null) {
|
||||
GlobalSearchScope scope = GlobalSearchScope.packageScope(aPackage, false);
|
||||
scope = scope.intersectWith(element.getUseScope());
|
||||
return scope;
|
||||
}
|
||||
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
}
|
||||
else if (element instanceof PsiMethod) {
|
||||
PsiFile file = element.getContainingFile();
|
||||
if (file instanceof JspFile) {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
|
||||
PsiMethod method = (PsiMethod)element;
|
||||
|
||||
PsiClass aClass = method.getContainingClass();
|
||||
if (aClass instanceof PsiAnonymousClass) {
|
||||
//method from anonymous class can be called from outside the class
|
||||
PsiElement methodCallExpr = PsiTreeUtil.getParentOfType(aClass, PsiMethodCallExpression.class);
|
||||
return new LocalSearchScope(methodCallExpr != null ? methodCallExpr : aClass);
|
||||
}
|
||||
|
||||
if (method.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||
return element.getUseScope();
|
||||
}
|
||||
else if (method.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||
return element.getUseScope();
|
||||
}
|
||||
else if (method.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiClass topClass = getTopLevelClass(method);
|
||||
return topClass != null ? new LocalSearchScope(topClass) : new LocalSearchScope(method.getContainingFile());
|
||||
}
|
||||
else {
|
||||
PsiPackage aPackage = file.getContainingDirectory().getPackage();
|
||||
if (aPackage != null) {
|
||||
GlobalSearchScope scope = GlobalSearchScope.packageScope(aPackage, false);
|
||||
scope = scope.intersectWith(element.getUseScope());
|
||||
return scope;
|
||||
}
|
||||
else {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (element instanceof PsiField) {
|
||||
PsiFile file = element.getContainingFile();
|
||||
if (file instanceof JspFile) {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
PsiField field = (PsiField)element;
|
||||
if (field.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||
return element.getUseScope();
|
||||
}
|
||||
else if (field.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||
return element.getUseScope();
|
||||
}
|
||||
else if (field.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiClass topClass = getTopLevelClass(field);
|
||||
return topClass != null ? new LocalSearchScope(topClass) : new LocalSearchScope(field.getContainingFile());
|
||||
}
|
||||
else {
|
||||
final PsiDirectory directory = file.getContainingDirectory();
|
||||
PsiPackage aPackage = directory == null ? null : directory.getPackage();
|
||||
if (aPackage != null) {
|
||||
GlobalSearchScope scope = GlobalSearchScope.packageScope(aPackage, false);
|
||||
scope = scope.intersectWith(element.getUseScope());
|
||||
return scope;
|
||||
}
|
||||
else {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (element instanceof ImplicitVariable) {
|
||||
return new LocalSearchScope(((ImplicitVariable)element).getDeclarationScope());
|
||||
}
|
||||
else if (element instanceof PsiLocalVariable) {
|
||||
PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiDeclarationStatement) {
|
||||
return new LocalSearchScope(parent.getParent());
|
||||
}
|
||||
else {
|
||||
return element.getUseScope();
|
||||
}
|
||||
}
|
||||
else if (element instanceof PsiParameter) {
|
||||
return new LocalSearchScope(((PsiParameter)element).getDeclarationScope());
|
||||
}
|
||||
else if (element instanceof PsiAntElement) {
|
||||
return ((PsiAntElement)element).getSearchScope();
|
||||
}
|
||||
else {
|
||||
AccessScopeHandler accessScopeHandler = scopeHandlers.get(element.getContainingFile().getFileType());
|
||||
if (accessScopeHandler!=null) return accessScopeHandler.getAccessScope(element);
|
||||
|
||||
return new LocalSearchScope(element.getContainingFile());
|
||||
}
|
||||
}
|
||||
|
||||
private static PsiClass getTopLevelClass(PsiElement element) {
|
||||
while (!(element.getParent() instanceof PsiFile)) {
|
||||
element = element.getParent();
|
||||
}
|
||||
return element instanceof PsiClass ? (PsiClass)element : null;
|
||||
}
|
||||
|
||||
//TODO: move to SearchScope itself
|
||||
public static SearchScope scopesUnion(SearchScope scope1, SearchScope scope2) {
|
||||
if (scope1 instanceof LocalSearchScope) {
|
||||
|
||||
@@ -80,7 +80,7 @@ public class UnusedParametersInspection extends FilteringInspectionTool {
|
||||
found[0] = true;
|
||||
return false;
|
||||
}
|
||||
}, psiParameter, helper.getAccessScope(psiParameter), false);
|
||||
}, psiParameter, helper.getUseScope(psiParameter), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public abstract class FindUsagesDialog extends DialogWrapper{
|
||||
}
|
||||
|
||||
protected boolean isInFileOnly() {
|
||||
return !myIsShowInNewTabVisible || PsiSearchScopeUtil.getAccessScope(myPsiElement) instanceof LocalSearchScope;
|
||||
return !myIsShowInNewTabVisible || myPsiElement.getManager().getSearchHelper().getUseScope(myPsiElement) instanceof LocalSearchScope;
|
||||
}
|
||||
|
||||
protected JComponent createNorthPanel() {
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.intellij.psi.PsiSubstitutor;
|
||||
import com.intellij.psi.impl.source.resolve.ResolveUtil;
|
||||
import com.intellij.psi.scope.PsiScopeProcessor;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
|
||||
public abstract class PsiElementBase extends ElementBase implements PsiElement {
|
||||
@@ -101,8 +102,8 @@ public abstract class PsiElementBase extends ElementBase implements PsiElement {
|
||||
return ((PsiManagerImpl)getManager()).getFileManager().getResolveScope(this);
|
||||
}
|
||||
|
||||
public GlobalSearchScope getUseScope() {
|
||||
return ((PsiManagerImpl)getManager()).getFileManager().getUseScope(this);
|
||||
public SearchScope getUseScope() {
|
||||
return getManager().getSearchHelper().getUseScope(this);
|
||||
}
|
||||
|
||||
public ItemPresentation getPresentation() {
|
||||
|
||||
@@ -36,10 +36,7 @@ import com.intellij.psi.jsp.*;
|
||||
import com.intellij.psi.search.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import com.intellij.psi.util.MethodSignature;
|
||||
import com.intellij.psi.util.MethodSignatureUtil;
|
||||
import com.intellij.psi.util.PropertyUtil;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
import com.intellij.psi.util.*;
|
||||
import com.intellij.psi.xml.XmlAttributeValue;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.psi.xml.XmlTokenType;
|
||||
@@ -65,6 +62,148 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
|
||||
WordInfo.JSP_ATTRIBUTE_VALUE |
|
||||
WordInfo.IN_COMMENTS;
|
||||
|
||||
public SearchScope getUseScope(PsiElement element) {
|
||||
final GlobalSearchScope maximalUseScope = myManager.getFileManager().getUseScope(element);
|
||||
if (element instanceof PsiPackage) {
|
||||
return maximalUseScope;
|
||||
}
|
||||
else if (element instanceof PsiClass) {
|
||||
if (element instanceof PsiAnonymousClass) {
|
||||
return new LocalSearchScope(element);
|
||||
}
|
||||
PsiFile file = element.getContainingFile();
|
||||
if (file instanceof JspFile) {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
PsiClass aClass = (PsiClass)element;
|
||||
if (aClass.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||
return maximalUseScope;
|
||||
}
|
||||
else if (aClass.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||
return maximalUseScope;
|
||||
}
|
||||
else if (aClass.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiClass topClass = getTopLevelClass(aClass);
|
||||
return topClass != null ? new LocalSearchScope(topClass) : new LocalSearchScope(aClass.getContainingFile());
|
||||
}
|
||||
else {
|
||||
PsiPackage aPackage = null;
|
||||
if (file instanceof PsiJavaFile) {
|
||||
aPackage = element.getManager().findPackage(((PsiJavaFile)file).getPackageName());
|
||||
}
|
||||
|
||||
if (aPackage == null) {
|
||||
PsiDirectory dir = file.getContainingDirectory();
|
||||
if (dir != null) {
|
||||
aPackage = dir.getPackage();
|
||||
}
|
||||
}
|
||||
|
||||
if (aPackage != null) {
|
||||
SearchScope scope = GlobalSearchScope.packageScope(aPackage, false);
|
||||
scope = scope.intersectWith(maximalUseScope);
|
||||
return scope;
|
||||
}
|
||||
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
}
|
||||
else if (element instanceof PsiMethod) {
|
||||
PsiFile file = element.getContainingFile();
|
||||
if (file instanceof JspFile) {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
|
||||
PsiMethod method = (PsiMethod)element;
|
||||
|
||||
PsiClass aClass = method.getContainingClass();
|
||||
if (aClass instanceof PsiAnonymousClass) {
|
||||
//method from anonymous class can be called from outside the class
|
||||
PsiElement methodCallExpr = PsiTreeUtil.getParentOfType(aClass, PsiMethodCallExpression.class);
|
||||
return new LocalSearchScope(methodCallExpr != null ? methodCallExpr : aClass);
|
||||
}
|
||||
|
||||
if (method.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||
return maximalUseScope;
|
||||
}
|
||||
else if (method.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||
return maximalUseScope;
|
||||
}
|
||||
else if (method.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiClass topClass = getTopLevelClass(method);
|
||||
return topClass != null ? new LocalSearchScope(topClass) : new LocalSearchScope(method.getContainingFile());
|
||||
}
|
||||
else {
|
||||
PsiPackage aPackage = file.getContainingDirectory().getPackage();
|
||||
if (aPackage != null) {
|
||||
SearchScope scope = GlobalSearchScope.packageScope(aPackage, false);
|
||||
scope = scope.intersectWith(maximalUseScope);
|
||||
return scope;
|
||||
}
|
||||
else {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (element instanceof PsiField) {
|
||||
PsiFile file = element.getContainingFile();
|
||||
if (file instanceof JspFile) {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
PsiField field = (PsiField)element;
|
||||
if (field.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||
return maximalUseScope;
|
||||
}
|
||||
else if (field.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||
return maximalUseScope;
|
||||
}
|
||||
else if (field.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||
PsiClass topClass = getTopLevelClass(field);
|
||||
return topClass != null ? new LocalSearchScope(topClass) : new LocalSearchScope(field.getContainingFile());
|
||||
}
|
||||
else {
|
||||
final PsiDirectory directory = file.getContainingDirectory();
|
||||
PsiPackage aPackage = directory == null ? null : directory.getPackage();
|
||||
if (aPackage != null) {
|
||||
SearchScope scope = GlobalSearchScope.packageScope(aPackage, false);
|
||||
scope = scope.intersectWith(maximalUseScope);
|
||||
return scope;
|
||||
}
|
||||
else {
|
||||
return new LocalSearchScope(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (element instanceof ImplicitVariable) {
|
||||
return new LocalSearchScope(((ImplicitVariable)element).getDeclarationScope());
|
||||
}
|
||||
else if (element instanceof PsiLocalVariable) {
|
||||
PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiDeclarationStatement) {
|
||||
return new LocalSearchScope(parent.getParent());
|
||||
}
|
||||
else {
|
||||
return maximalUseScope;
|
||||
}
|
||||
}
|
||||
else if (element instanceof PsiParameter) {
|
||||
return new LocalSearchScope(((PsiParameter)element).getDeclarationScope());
|
||||
}
|
||||
else if (element instanceof PsiAntElement) {
|
||||
return ((PsiAntElement)element).getSearchScope();
|
||||
}
|
||||
else {
|
||||
return maximalUseScope;
|
||||
}
|
||||
}
|
||||
|
||||
private static PsiClass getTopLevelClass(PsiElement element) {
|
||||
while (!(element.getParent() instanceof PsiFile)) {
|
||||
element = element.getParent();
|
||||
}
|
||||
return element instanceof PsiClass ? (PsiClass)element : null;
|
||||
}
|
||||
|
||||
public interface CustomSearchHelper {
|
||||
short getOccurenceMask();
|
||||
TokenSet getElementTokenSet();
|
||||
@@ -264,7 +403,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
|
||||
|
||||
SearchScope searchScope;
|
||||
if (!ignoreAccessScope) {
|
||||
SearchScope accessScope = getAccessScope(refElement);
|
||||
SearchScope accessScope = refElement.getUseScope();
|
||||
searchScope = originalScope.intersectWith(accessScope);
|
||||
if (searchScope == null) return true;
|
||||
}
|
||||
@@ -671,9 +810,9 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
|
||||
final String text = method.getName();
|
||||
final PsiMethod[] methods = isStrictSignatureSearch ? new PsiMethod[]{method} : getOverloadsMayBeOverriden(method);
|
||||
|
||||
SearchScope accessScope = getAccessScope(methods[0]);
|
||||
SearchScope accessScope = methods[0].getUseScope();
|
||||
for (int i = 0; i < methods.length; i++) {
|
||||
SearchScope someScope = PsiSearchScopeUtil.scopesUnion(accessScope, getAccessScope(methods[i]));
|
||||
SearchScope someScope = PsiSearchScopeUtil.scopesUnion(accessScope, methods[i].getUseScope());
|
||||
accessScope = someScope == null ? accessScope : someScope;
|
||||
}
|
||||
|
||||
@@ -822,7 +961,7 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
|
||||
return true;
|
||||
}
|
||||
|
||||
final SearchScope searchScope1 = searchScope.intersectWith(PsiSearchScopeUtil.getAccessScope(aClass));
|
||||
final SearchScope searchScope1 = searchScope.intersectWith(aClass.getUseScope());
|
||||
|
||||
RepositoryIndex repositoryIndex = repositoryManager.getIndex();
|
||||
VirtualFileFilter rootFilter;
|
||||
@@ -1511,10 +1650,6 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
|
||||
}
|
||||
}
|
||||
|
||||
public SearchScope getAccessScope(PsiElement element) {
|
||||
return PsiSearchScopeUtil.getAccessScope(element);
|
||||
}
|
||||
|
||||
public PsiFile[] findFormsBoundToClass(String className) {
|
||||
GlobalSearchScope projectScope = GlobalSearchScope.projectScope(myManager.getProject());
|
||||
PsiFile[] files = myManager.getCacheManager().getFilesWithWord(className, WordInfo.GUI_FORM_CLASS_NAME,
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.intellij.psi.impl.ElementBase;
|
||||
import com.intellij.psi.impl.SharedPsiElementImplUtil;
|
||||
import com.intellij.psi.scope.PsiScopeProcessor;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
|
||||
/**
|
||||
@@ -219,7 +220,7 @@ public class ASTWrapperPsiElement extends ElementBase implements PsiElement, Nav
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public GlobalSearchScope getUseScope() {
|
||||
public SearchScope getUseScope() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.intellij.psi.impl.source.codeStyle.CodeEditUtil;
|
||||
import com.intellij.psi.impl.source.resolve.ResolveUtil;
|
||||
import com.intellij.psi.scope.PsiScopeProcessor;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
|
||||
@@ -206,8 +207,8 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps
|
||||
return ((PsiManagerImpl)getManager()).getFileManager().getResolveScope(this);
|
||||
}
|
||||
|
||||
public GlobalSearchScope getUseScope() {
|
||||
return ((PsiManagerImpl)getManager()).getFileManager().getUseScope(this);
|
||||
public SearchScope getUseScope() {
|
||||
return getManager().getSearchHelper().getUseScope(this);
|
||||
}
|
||||
|
||||
public ItemPresentation getPresentation() {
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.intellij.psi.impl.source.SourceTreeToPsiMap;
|
||||
import com.intellij.psi.impl.source.resolve.ResolveUtil;
|
||||
import com.intellij.psi.scope.PsiScopeProcessor;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.util.CharTable;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
@@ -178,8 +179,8 @@ public class LeafPsiElement extends LeafElementImpl implements PsiElement {
|
||||
return ((PsiManagerImpl)getManager()).getFileManager().getResolveScope(this);
|
||||
}
|
||||
|
||||
public GlobalSearchScope getUseScope() {
|
||||
return ((PsiManagerImpl)getManager()).getFileManager().getUseScope(this);
|
||||
public SearchScope getUseScope() {
|
||||
return getManager().getSearchHelper().getUseScope(this);
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
|
||||
@@ -108,7 +108,7 @@ public class SystemBuilder {
|
||||
keyParameter = parameter;
|
||||
}
|
||||
|
||||
final PsiMethod[] overriders = helper.findOverridingMethods(keyMethod, helper.getAccessScope(keyMethod), true);
|
||||
final PsiMethod[] overriders = helper.findOverridingMethods(keyMethod, keyMethod.getUseScope(), true);
|
||||
PsiMethod prev = keyMethod;
|
||||
|
||||
for (int i = 0; i < overriders.length; i++) {
|
||||
@@ -694,7 +694,7 @@ public class SystemBuilder {
|
||||
addUsage(system, element);
|
||||
|
||||
if (!(element instanceof PsiExpression)) {
|
||||
PsiReference[] refs = helper.findReferences(element, helper.getAccessScope(element), true);
|
||||
PsiReference[] refs = helper.findReferences(element, helper.getUseScope(element), true);
|
||||
|
||||
for (int k = 0; k < refs.length; k++) {
|
||||
final PsiElement ref = refs[k].getElement();
|
||||
|
||||
@@ -133,7 +133,7 @@ public class RefactoringUtil {
|
||||
UsageInfoFactory factory) {
|
||||
PsiManager manager = element.getManager();
|
||||
PsiSearchHelper helper = manager.getSearchHelper();
|
||||
SearchScope scope = helper.getAccessScope(element);
|
||||
SearchScope scope = element.getUseScope();
|
||||
scope = scope.intersectWith(GlobalSearchScope.projectScope(manager.getProject()));
|
||||
int index = stringToSearch.lastIndexOf('.');
|
||||
String identifierToSearch = index >= 0 ? stringToSearch.substring(index + 1) : stringToSearch;
|
||||
|
||||
@@ -3,28 +3,25 @@ package com.intellij.xml.util;
|
||||
import com.intellij.codeInsight.completion.CompletionUtil;
|
||||
import com.intellij.j2ee.openapi.ex.ExternalResourceManagerEx;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementFactory;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.meta.PsiMetaData;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.filters.ClassFilter;
|
||||
import com.intellij.psi.meta.PsiMetaData;
|
||||
import com.intellij.psi.scope.processor.FilterElementProcessor;
|
||||
import com.intellij.psi.search.PsiElementProcessor;
|
||||
import com.intellij.psi.search.PsiSearchScopeUtil;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.CachedValue;
|
||||
import com.intellij.psi.util.CachedValueProvider;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.xml.*;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.xml.XmlElementDescriptor;
|
||||
import com.intellij.xml.impl.ant.AntPropertyDeclaration;
|
||||
|
||||
@@ -52,14 +49,6 @@ public class XmlUtil {
|
||||
public static final String JSP_NAMESPACE = "http://java.sun.com/JSP/Page";
|
||||
public static final String ALL_NAMESPACE = "http://www.intellij.net/ns/all";
|
||||
|
||||
static {
|
||||
PsiSearchScopeUtil.registerAccessScopeHandler(StdFileTypes.DTD, new PsiSearchScopeUtil.AccessScopeHandler() {
|
||||
public SearchScope getAccessScope(PsiElement element) {
|
||||
return GlobalSearchScope.projectScope(element.getProject());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static String getSchemaLocation(XmlTag tag, String namespace) {
|
||||
final String uri = ExternalResourceManagerEx.getInstanceEx().getResourceLocation(namespace);
|
||||
if (uri != null && !uri.equals(namespace)) return uri;
|
||||
|
||||
Reference in New Issue
Block a user