From 018dff3c5d34b12071d9e5238d5ee9a296e38a1f Mon Sep 17 00:00:00 2001 From: Sergey Vasiliev Date: Thu, 10 Jan 2008 12:47:50 +0300 Subject: [PATCH] inject el seam --- .../resolve/reference/impl/PsiMultiReference.java | 2 +- .../psi/impl/beanProperties/BeanProperty.java | 5 +++++ .../psi/impl/search/CustomPropertyScopeProvider.java | 11 +++++++++++ .../psi/impl/search/MethodUsagesSearcher.java | 20 ++++++++++++++++++-- util/src/com/intellij/openapi/util/LazyInstance.java | 10 +++++++++- 5 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 source/com/intellij/psi/impl/search/CustomPropertyScopeProvider.java diff --git a/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java b/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java index 1eff29b15c..d66dfd0d9f 100644 --- a/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java +++ b/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/PsiMultiReference.java @@ -151,7 +151,7 @@ public class PsiMultiReference implements PsiPolyVariantReference { } } - if (result.size() == 0) { + if (result.size() == 0 && selfReference != null) { result.add(selfReference); // if i the only one starring at the sun } diff --git a/source/com/intellij/psi/impl/beanProperties/BeanProperty.java b/source/com/intellij/psi/impl/beanProperties/BeanProperty.java index 0ffb7bd79d..b5e1613ca5 100644 --- a/source/com/intellij/psi/impl/beanProperties/BeanProperty.java +++ b/source/com/intellij/psi/impl/beanProperties/BeanProperty.java @@ -6,6 +6,7 @@ package com.intellij.psi.impl.beanProperties; import com.intellij.ide.IdeBundle; import com.intellij.openapi.util.IconLoader; +import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; import com.intellij.psi.PsiMethod; @@ -142,5 +143,9 @@ public class BeanProperty { public Icon getIcon() { return getIcon(0); } + + public TextRange getTextRange() { + return TextRange.from(0, 0); + } } } diff --git a/source/com/intellij/psi/impl/search/CustomPropertyScopeProvider.java b/source/com/intellij/psi/impl/search/CustomPropertyScopeProvider.java new file mode 100644 index 0000000000..39ad973dfc --- /dev/null +++ b/source/com/intellij/psi/impl/search/CustomPropertyScopeProvider.java @@ -0,0 +1,11 @@ +package com.intellij.psi.impl.search; + +import com.intellij.openapi.extensions.ExtensionPointName; +import com.intellij.openapi.project.Project; +import com.intellij.psi.search.SearchScope; + +public interface CustomPropertyScopeProvider { + ExtensionPointName EP_NAME = new ExtensionPointName("com.intellij.customPropertyScopeProvider"); + + SearchScope getScope(final Project project); +} diff --git a/source/com/intellij/psi/impl/search/MethodUsagesSearcher.java b/source/com/intellij/psi/impl/search/MethodUsagesSearcher.java index 7b27a1ae4f..02c8dbf192 100644 --- a/source/com/intellij/psi/impl/search/MethodUsagesSearcher.java +++ b/source/com/intellij/psi/impl/search/MethodUsagesSearcher.java @@ -3,10 +3,11 @@ */ package com.intellij.psi.impl.search; -import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadActionProcessor; +import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.util.Computable; +import com.intellij.openapi.extensions.Extensions; import com.intellij.psi.*; import com.intellij.psi.search.*; import com.intellij.psi.search.searches.MethodReferencesSearch; @@ -117,12 +118,27 @@ public class MethodUsagesSearcher implements QueryExecutor extends NotNullLazyValue{ @NotNull protected final T compute() { try { - return getInstanceClass().newInstance(); + Class tClass = getInstanceClass(); + Constructor constructor = tClass.getConstructor(); + constructor.setAccessible(true); + return tClass.newInstance(); } catch (InstantiationException e) { throw new RuntimeException(e); @@ -39,5 +44,8 @@ public abstract class LazyInstance extends NotNullLazyValue{ catch (ClassNotFoundException e) { throw new RuntimeException(e); } + catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } } } -- 2.11.4.GIT