Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Brychcy2017-08-23 22:49:51 +0000
committerTill Brychcy2018-01-12 14:39:23 +0000
commit90dbec1ca3a0198af184c40ae0d2a321b7d5ec3c (patch)
tree27710444c5add55a267fe160f813c71677db97fe
parentee8312f2124c13f010fdd93befc1e41e3130be35 (diff)
downloadeclipse.jdt.ui-90dbec1ca3a0198af184c40ae0d2a321b7d5ec3c.tar.gz
eclipse.jdt.ui-90dbec1ca3a0198af184c40ae0d2a321b7d5ec3c.tar.xz
eclipse.jdt.ui-90dbec1ca3a0198af184c40ae0d2a321b7d5ec3c.zip
Bug 521331 - [testsources][assist] Handle test source visibility in
completion proposals Change-Id: I924dd481103e57954665b764240aba095d7a0017 Signed-off-by: Till Brychcy <register.eclipse@brychcy.de>
-rwxr-xr-xorg.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/java/CompletionProposalCollector.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/java/CompletionProposalCollector.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/java/CompletionProposalCollector.java
index ebeeff8a5d..2fe7199c38 100755
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/java/CompletionProposalCollector.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/java/CompletionProposalCollector.java
@@ -19,6 +19,7 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -30,6 +31,7 @@ import org.eclipse.jface.text.contentassist.IContextInformation;
import org.eclipse.jdt.core.CompletionContext;
import org.eclipse.jdt.core.CompletionProposal;
import org.eclipse.jdt.core.CompletionRequestor;
+import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
@@ -127,6 +129,8 @@ public class CompletionProposalCollector extends CompletionRequestor {
*/
private JavaContentAssistInvocationContext fInvocationContext;
+ private boolean fIsTestCodeExcluded;
+
/**
* Creates a new instance ready to collect proposals. If the passed
* <code>ICompilationUnit</code> is not contained in an
@@ -164,12 +168,41 @@ public class CompletionProposalCollector extends CompletionRequestor {
super(ignoreAll);
fJavaProject= project;
fCompilationUnit= cu;
+
+ fIsTestCodeExcluded = !isTestSource(project, cu);
fUserReplacementLength= -1;
if (!ignoreAll) {
setRequireExtendedContext(true);
}
}
+
+ private boolean isTestSource(IJavaProject project, ICompilationUnit cu) {
+ try {
+ IClasspathEntry[] resolvedClasspath= project.getResolvedClasspath(true);
+ final IPath resourcePath= cu.getResource().getFullPath();
+ for (IClasspathEntry e : resolvedClasspath) {
+ if (e.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
+ if (e.isTest()) {
+ if (e.getPath().isPrefixOf(resourcePath)) {
+ return true;
+ }
+ }
+ }
+ }
+ } catch (JavaModelException e) {
+ return false;
+ }
+ return false;
+ }
+
+ /**
+ * @since 3.14
+ */
+ @Override
+ public boolean isTestCodeExcluded() {
+ return fIsTestCodeExcluded;
+ }
/**
* Creates a new instance ready to collect proposals. If the passed

Back to the top