### 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