### Eclipse Workspace Patch 1.0
#P org.eclipse.jdt.core.tests.model
Index: src/org/eclipse/jdt/core/tests/model/JavadocTypeCompletionModelTest.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavadocTypeCompletionModelTest.java,v
retrieving revision 1.9
diff -u -r1.9 JavadocTypeCompletionModelTest.java
--- src/org/eclipse/jdt/core/tests/model/JavadocTypeCompletionModelTest.java 29 Mar 2006 04:03:07 -0000 1.9
+++ src/org/eclipse/jdt/core/tests/model/JavadocTypeCompletionModelTest.java 26 Jan 2007 10:36:35 -0000
@@ -14,6 +14,7 @@
import junit.framework.Test;
+import org.eclipse.jdt.core.CompletionProposal;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
@@ -1030,4 +1031,313 @@
JavaCore.setOptions(oldOptions);
}
}
+/**
+ * @category Tests for filtered completion
+ */
+public void test100() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasi bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasi",
+ 1,
+ new int[]{});
+ assertResults(
+ "ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNR+"}\n" +
+ "ZBasicTestTypes[JAVADOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNRIT+"}"
+ );
+}
+public void test101() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasi bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasi",
+ 1,
+ new int[]{CompletionProposal.JAVADOC_TYPE_REF});
+ assertResults(
+ "ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNR+"}"
+ );
+}
+public void test102() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasi bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasi",
+ 1,
+ new int[]{CompletionProposal.TYPE_REF});
+ assertResults(
+ "ZBasicTestTypes[JAVADOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNRIT+"}"
+ );
+}
+public void test103() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasicTestTypes#fo bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public void foo() {}\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasicTestTypes#fo",
+ 1,
+ new int[]{});
+ assertResults(
+ "foo[JAVADOC_METHOD_REF]{{@link ZBasicTestTypes#foo()}, Ljavadoc.types.ZBasicTestTypes;, ()V, foo, null, "+this.positions+R_DICNRNSIT+"}"
+ );
+}
+public void test104() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasicTestTypes#fo bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public void foo() {}\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasicTestTypes#fo",
+ 1,
+ new int[]{CompletionProposal.JAVADOC_METHOD_REF});
+ assertResults(
+ ""
+ );
+}
+public void test105() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasicTestTypes#fo bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public void foo() {}\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasicTestTypes#fo",
+ 1,
+ new int[]{CompletionProposal.METHOD_REF});
+ assertResults(
+ "foo[JAVADOC_METHOD_REF]{{@link ZBasicTestTypes#foo()}, Ljavadoc.types.ZBasicTestTypes;, ()V, foo, null, "+this.positions+R_DICNRNSIT+"}"
+ );
+}
+public void test106() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasicTestTypes#fo bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public int foo;\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasicTestTypes#fo",
+ 1,
+ new int[]{});
+ assertResults(
+ "foo[JAVADOC_FIELD_REF]{{@link ZBasicTestTypes#foo}, Ljavadoc.types.ZBasicTestTypes;, I, foo, null, "+this.positions+R_DICNRNSIT+"}"
+ );
+}
+public void test107() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasicTestTypes#fo bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public int foo;\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasicTestTypes#fo",
+ 1,
+ new int[]{CompletionProposal.JAVADOC_FIELD_REF});
+ assertResults(
+ ""
+ );
+}
+public void test108() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla ZBasicTestTypes#fo bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public int foo;\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "ZBasicTestTypes#fo",
+ 1,
+ new int[]{CompletionProposal.FIELD_REF});
+ assertResults(
+ "foo[JAVADOC_FIELD_REF]{{@link ZBasicTestTypes#foo}, Ljavadoc.types.ZBasicTestTypes;, I, foo, null, "+this.positions+R_DICNRNSIT+"}"
+ );
+}
+public void test109() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla javadoc.types.ZBasi bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "javadoc.types.ZBasi",
+ 1,
+ new int[]{});
+ assertResults(
+ "ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNR+"}\n" +
+ "ZBasicTestTypes[JAVADOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNRIT+"}"
+ );
+}
+public void test110() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla javadoc.types.ZBasi bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "javadoc.types.ZBasi",
+ 1,
+ new int[]{CompletionProposal.JAVADOC_TYPE_REF});
+ assertResults(
+ "ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNR+"}"
+ );
+}
+public void test111() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla javadoc.types.ZBasi bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "javadoc.types.ZBasi",
+ 1,
+ new int[]{CompletionProposal.TYPE_REF});
+ assertResults(
+ "ZBasicTestTypes[JAVADOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNRIT+"}"
+ );
+}
+public void test112() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla javadoc.types.ZBasicTestTypes.Inn bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public class Inner {}\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "javadoc.types.ZBasicTestTypes.Inn",
+ 1,
+ new int[]{});
+ assertResults(
+ "ZBasicTestTypes.Inner[TYPE_REF]{Inner, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNR+"}\n" +
+ "ZBasicTestTypes.Inner[JAVADOC_TYPE_REF]{{@link Inner}, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNRIT+"}"
+ );
+}
+public void test113() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla javadoc.types.ZBasicTestTypes.Inn bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public class Inner {}\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "javadoc.types.ZBasicTestTypes.Inn",
+ 1,
+ new int[]{CompletionProposal.JAVADOC_TYPE_REF});
+ assertResults(
+ "ZBasicTestTypes.Inner[TYPE_REF]{Inner, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNR+"}"
+ );
+}
+public void test114() throws JavaModelException {
+ String source =
+ "package javadoc.types;\n" +
+ "/**\n" +
+ " * Completion after:\n" +
+ " * bla javadoc.types.ZBasicTestTypes.Inn bla\n" +
+ " */\n" +
+ "public class ZBasicTestTypes {\n" +
+ " public class Inner {}\n" +
+ "}\n";
+ completeInJavadoc(
+ "/Completion/src/javadoc/types/ZBasicTestTypes.java",
+ source,
+ true,
+ "javadoc.types.ZBasicTestTypes.Inn",
+ 1,
+ new int[]{CompletionProposal.TYPE_REF});
+ assertResults(
+ "ZBasicTestTypes.Inner[JAVADOC_TYPE_REF]{{@link Inner}, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNRIT+"}"
+ );
+}
}
Index: src/org/eclipse/jdt/core/tests/model/AbstractJavadocCompletionModelTest.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavadocCompletionModelTest.java,v
retrieving revision 1.11
diff -u -r1.11 AbstractJavadocCompletionModelTest.java
--- src/org/eclipse/jdt/core/tests/model/AbstractJavadocCompletionModelTest.java 19 Jan 2007 17:06:24 -0000 1.11
+++ src/org/eclipse/jdt/core/tests/model/AbstractJavadocCompletionModelTest.java 26 Jan 2007 10:36:35 -0000
@@ -281,14 +281,21 @@
}
protected void completeInJavadoc(String path, String source, boolean showPositions, String completeBehind, int occurencePosition) throws JavaModelException {
- completeInJavadoc(new String[] { path, source }, showPositions, completeBehind, occurencePosition);
+ completeInJavadoc(new String[] { path, source }, showPositions, completeBehind, occurencePosition, null);
}
+ protected void completeInJavadoc(String path, String source, boolean showPositions, String completeBehind, int occurencePosition, int[] ignoreList) throws JavaModelException {
+ completeInJavadoc(new String[] { path, source }, showPositions, completeBehind, occurencePosition, ignoreList);
+ }
protected void completeInJavadoc(String[] sources, boolean showPositions, String completeBehind) throws JavaModelException {
- completeInJavadoc(sources, showPositions, completeBehind, 1);
+ completeInJavadoc(sources, showPositions, completeBehind, 1, null);
}
-
+
protected void completeInJavadoc(String[] sources, boolean showPositions, String completeBehind, int occurencePosition) throws JavaModelException {
+ completeInJavadoc(sources, showPositions, completeBehind, occurencePosition, null);
+ }
+
+ protected void completeInJavadoc(String[] sources, boolean showPositions, String completeBehind, int occurencePosition, int[] ignoreList) throws JavaModelException {
assertNotNull("We should have sources!!!", sources);
assertTrue("Invalid number of sources!!!", sources.length%2==0);
@@ -305,6 +312,11 @@
// Complete
this.requestor = new CompletionTestsRequestor2(true, false, showPositions);
+ if (ignoreList != null) {
+ for (int i = 0; i < ignoreList.length; i++) {
+ this.requestor.setIgnored(ignoreList[i], true);
+ }
+ }
String source = this.workingCopies[0].getSource();
this.replacedText = completeBehind;
this.completionStart = -1;
#P org.eclipse.jdt.core
Index: codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java,v
retrieving revision 1.315
diff -u -r1.315 CompletionEngine.java
--- codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 19 Jan 2007 17:06:30 -0000 1.315
+++ codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 26 Jan 2007 10:36:39 -0000
@@ -1510,7 +1510,8 @@
// get the source positions of the completion identifier
if (qualifiedBinding instanceof ReferenceBinding && !(qualifiedBinding instanceof TypeVariableBinding)) {
- if (!this.requestor.isIgnored(CompletionProposal.JAVADOC_TYPE_REF)) {
+ if (!this.requestor.isIgnored(CompletionProposal.TYPE_REF) ||
+ !this.requestor.isIgnored(CompletionProposal.JAVADOC_TYPE_REF)) {
int rangeStart = typeRef.completeInText() ? typeRef.sourceStart : (int) (completionPosition >>> 32);
setSourceRange(rangeStart, (int) completionPosition);
findMemberTypes(this.completionToken,
@@ -4260,9 +4261,7 @@
}
this.noProposal = false;
- if(!this.requestor.isIgnored(CompletionProposal.TYPE_REF)) {
- createTypeProposal(memberType, memberType.qualifiedSourceName(), IAccessRule.K_ACCESSIBLE, completionName, relevance);
- }
+ createTypeProposal(memberType, memberType.qualifiedSourceName(), IAccessRule.K_ACCESSIBLE, completionName, relevance);
}
}
@@ -6321,7 +6320,9 @@
skip = true;
}
- boolean proposeType = !this.requestor.isIgnored(CompletionProposal.TYPE_REF);
+ boolean proposeType =
+ !this.requestor.isIgnored(CompletionProposal.TYPE_REF) ||
+ !this.requestor.isIgnored(CompletionProposal.JAVADOC_TYPE_REF);
boolean proposeAllMemberTypes = !this.assistNodeIsConstructor;
@@ -6398,7 +6399,7 @@
relevance += computeRelevanceForException(sourceType.sourceName);
}
this.noProposal = false;
- if(!this.requestor.isIgnored(CompletionProposal.TYPE_REF)) {
+ if(proposeType) {
char[] typeName = sourceType.sourceName();
createTypeProposal(sourceType, typeName, IAccessRule.K_ACCESSIBLE, typeName, relevance);
}
@@ -6563,7 +6564,9 @@
PackageBinding packageBinding,
Scope scope) {
- boolean proposeType = !this.requestor.isIgnored(CompletionProposal.TYPE_REF);
+ boolean proposeType =
+ !this.requestor.isIgnored(CompletionProposal.TYPE_REF) ||
+ !this.requestor.isIgnored(CompletionProposal.JAVADOC_TYPE_REF);
char[] qualifiedName =
CharOperation.concatWith(packageBinding.compoundName, token, '.');
@@ -6642,7 +6645,7 @@
relevance += computeRelevanceForException(sourceType.sourceName);
}
this.noProposal = false;
- if(!this.requestor.isIgnored(CompletionProposal.TYPE_REF)) {
+ if(proposeType) {
char[] typeName = sourceType.sourceName();
createTypeProposal(sourceType, typeName, IAccessRule.K_ACCESSIBLE, typeName, relevance);
}
Index: model/org/eclipse/jdt/core/CompletionProposal.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionProposal.java,v
retrieving revision 1.37
diff -u -r1.37 CompletionProposal.java
--- model/org/eclipse/jdt/core/CompletionProposal.java 12 Jan 2007 17:58:48 -0000 1.37
+++ model/org/eclipse/jdt/core/CompletionProposal.java 26 Jan 2007 10:36:40 -0000
@@ -446,7 +446,7 @@
/**
* Completion is a link reference to a method in a javadoc text.
* This kind of completion might occur in a context like
- * " * blabla Runtime.get^ blabla"
and complete it to
+ * " * blabla Runtime#get^ blabla"
and complete it to
* " * blabla {@link Runtime#getRuntime() }"
.
*
* The following additional context information is available