Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Johnston2018-11-24 03:28:31 +0000
committerSarika Sinha2018-12-03 05:45:29 +0000
commitfc43b2a2b9a4c3999d0e1e1fc692609c439676a0 (patch)
tree8eea08f4824a1072b0a599f578a0fac9cf2ac4d7
parent04983d9cfd4995e38ef96821aa98e4ec6e6c6307 (diff)
downloadeclipse.jdt.ui-fc43b2a2b9a4c3999d0e1e1fc692609c439676a0.tar.gz
eclipse.jdt.ui-fc43b2a2b9a4c3999d0e1e1fc692609c439676a0.tar.xz
eclipse.jdt.ui-fc43b2a2b9a4c3999d0e1e1fc692609c439676a0.zip
Bug 541479 - [code mining] Binary references are not counted
- modify JavaReferenceCodeMining to use a workspace search scope that matches that used by the FindReferencesAction class - in the match verifier allow an element to have an ancestor that is IJavaElement.CLASS_FILE Change-Id: I02425dea8a9c3946eefd2061bd1656969dc5710e Signed-off-by: Jeff Johnston <jjohnstn@redhat.com>
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/codemining/JavaReferenceCodeMining.java26
1 files changed, 15 insertions, 11 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/codemining/JavaReferenceCodeMining.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/codemining/JavaReferenceCodeMining.java
index d2c7168b81..9cae0157d6 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/codemining/JavaReferenceCodeMining.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/codemining/JavaReferenceCodeMining.java
@@ -20,16 +20,12 @@ import org.eclipse.swt.events.MouseEvent;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.codemining.ICodeMiningProvider;
import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.search.IJavaSearchConstants;
import org.eclipse.jdt.core.search.IJavaSearchScope;
@@ -42,6 +38,7 @@ import org.eclipse.jdt.core.search.SearchRequestor;
import org.eclipse.jdt.ui.actions.FindReferencesAction;
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
+import org.eclipse.jdt.internal.ui.search.JavaSearchScopeFactory;
/**
* Java reference code mining.
@@ -110,14 +107,17 @@ public class JavaReferenceCodeMining extends AbstractJavaElementLineHeaderCodeMi
SearchPattern pattern= SearchPattern.createPattern(element, IJavaSearchConstants.REFERENCES);
SearchEngine engine= new SearchEngine();
engine.search(pattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
- createSearchScope(), new SearchRequestor() {
+ createSearchScope(element), new SearchRequestor() {
@Override
public void acceptSearchMatch(SearchMatch match) throws CoreException {
Object o= match.getElement();
- if (o instanceof IJavaElement
- && ((IJavaElement) o).getAncestor(IJavaElement.COMPILATION_UNIT) != null) {
- count.incrementAndGet();
+ if (o instanceof IJavaElement) {
+ IJavaElement e= (IJavaElement)o;
+ if (e.getAncestor(IJavaElement.COMPILATION_UNIT) != null
+ || e.getAncestor(IJavaElement.CLASS_FILE) != null) {
+ count.incrementAndGet();
+ }
}
}
}, monitor);
@@ -128,11 +128,15 @@ public class JavaReferenceCodeMining extends AbstractJavaElementLineHeaderCodeMi
/**
* Create Java workspace scope.
*
+ * @param element IJavaElement to search references for
+ *
* @return the Java workspace scope.
* @throws JavaModelException when java error.
*/
- private static IJavaSearchScope createSearchScope() throws JavaModelException {
- IJavaProject[] projects= JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()).getJavaProjects();
- return SearchEngine.createJavaSearchScope(projects, IJavaSearchScope.SOURCES);
+ private static IJavaSearchScope createSearchScope(IJavaElement element) throws JavaModelException {
+ JavaSearchScopeFactory factory= JavaSearchScopeFactory.getInstance();
+ boolean isInsideJRE = factory.isInsideJRE(element);
+ IJavaSearchScope scope= factory.createWorkspaceScope(isInsideJRE);
+ return scope;
}
}

Back to the top