diff --git a/core/org.eclipse.cdt.ui.tests/ChangeLog b/core/org.eclipse.cdt.ui.tests/ChangeLog index e45bce445c0..e69384ee9ad 100644 --- a/core/org.eclipse.cdt.ui.tests/ChangeLog +++ b/core/org.eclipse.cdt.ui.tests/ChangeLog @@ -1,3 +1,7 @@ +2004-05-11 Andrew Niefer + Renamed CompletionFailedTest_ScopedReference_ConstructorDefinition to CompletionTest_VariableType_NestedPrefix + Modified expected results for CompletionTest_ConstructorReference + 2004-04-30 Hoda Amer Added CompletionFailedTest_ScopedReference_ConstructorDefinition Added CompletionTest_ScopedReference_NonCodeScope diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart38.cpp b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart38.cpp index e35a5d836e9..3e5a238a22c 100644 --- a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart38.cpp +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart38.cpp @@ -1,6 +1,7 @@ class Foo{ public: Foo(); +class DEF{}; void bar(); static void fum(); static int x; diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java index 871c17d2431..516e695fc1d 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java @@ -9,7 +9,7 @@ import junit.framework.Test; import junit.framework.TestSuite; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionFailedTest_MemberReference_Arrow_Prefix2; -import org.eclipse.cdt.ui.tests.text.contentassist.CompletionFailedTest_ScopedReference_ConstructorDefinition; +import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_VariableType_NestedPrefix; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_ArgumentType_NoPrefix; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_ArgumentType_NoPrefix2; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_ArgumentType_Prefix; @@ -44,6 +44,7 @@ import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_SingleName_Pre import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_TypeDef_NoPrefix; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_TypeRef_NoPrefix; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_TypeRef_Prefix; +import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_VariableType_NestedPrefix; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_VariableType_NoPrefix; import org.eclipse.cdt.ui.tests.text.contentassist.CompletionTest_VariableType_Prefix; import org.eclipse.cdt.ui.tests.textmanipulation.TextBufferTest; @@ -109,10 +110,10 @@ public class AutomatedSuite extends TestSuite { addTest(CompletionTest_FunctionReference_NoPrefix.suite()); addTest(CompletionTest_ConstructorReference.suite()); addTest(CompletionTest_TypeDef_NoPrefix.suite()); + addTest(CompletionTest_VariableType_NestedPrefix.suite()); // Failed Tests addTest(CompletionFailedTest_MemberReference_Arrow_Prefix2.suite()); - addTest(CompletionFailedTest_ScopedReference_ConstructorDefinition.suite()); } } diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionTest_ConstructorReference.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionTest_ConstructorReference.java index 7c54ae9016c..8e40b67e387 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionTest_ConstructorReference.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionTest_ConstructorReference.java @@ -35,9 +35,8 @@ public class CompletionTest_ConstructorReference extends CompletionProposalsBas private final CompletionKind expectedKind = CompletionKind.CONSTRUCTOR_REFERENCE; private final String expectedPrefix = ""; private final String[] expectedResults = { - // should be - // "xOtherClass(char*)", - // "xOtherClass(int)" + "xOtherClass(char*)", + "xOtherClass(int)" }; public CompletionTest_ConstructorReference(String name) { diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionFailedTest_ScopedReference_ConstructorDefinition.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionTest_VariableType_NestedPrefix.java similarity index 87% rename from core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionFailedTest_ScopedReference_ConstructorDefinition.java rename to core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionTest_VariableType_NestedPrefix.java index eaaf2757e33..792484c42cd 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionFailedTest_ScopedReference_ConstructorDefinition.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionTest_VariableType_NestedPrefix.java @@ -21,7 +21,7 @@ import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; * Bug#50152: Wrong context sent after a "::" * */ -public class CompletionFailedTest_ScopedReference_ConstructorDefinition extends CompletionProposalsBaseTest{ +public class CompletionTest_VariableType_NestedPrefix extends CompletionProposalsBaseTest{ private final String fileName = "CompletionTestStart38.cpp"; private final String fileFullPath ="resources/contentassist/" + fileName; @@ -29,19 +29,20 @@ public class CompletionFailedTest_ScopedReference_ConstructorDefinition extends private final String headerFileFullPath ="resources/contentassist/" + headerFileName; private final String expectedScopeName = "ASTCompilationUnit"; private final String expectedContextName = "ASTClassSpecifier"; - private final CompletionKind expectedKind = CompletionKind.VARIABLE_TYPE; // should be CompletionKind.CONSTRUCTOR_REFERENCE + private final CompletionKind expectedKind = CompletionKind.VARIABLE_TYPE; private final String expectedPrefix = ""; private final String[] expectedResults = { -// "Foo()" + "Foo()", + "DEF" }; - public CompletionFailedTest_ScopedReference_ConstructorDefinition(String name) { + public CompletionTest_VariableType_NestedPrefix(String name) { super(name); } public static Test suite() { - TestSuite suite= new TestSuite(CompletionFailedTest_ScopedReference_ConstructorDefinition.class.getName()); - suite.addTest(new CompletionFailedTest_ScopedReference_ConstructorDefinition("testCompletionProposals")); + TestSuite suite= new TestSuite(CompletionTest_VariableType_NestedPrefix.class.getName()); + suite.addTest(new CompletionTest_VariableType_NestedPrefix("testCompletionProposals")); return suite; } diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 7cc1670f074..959de6d13cb 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,8 @@ +2004-05-11 Andrew Niefer + - content assist bug 60298: + * src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java + * src/org/eclipse/cdt/ui/FunctionPrototypeSummary.java + 2004-05-11 Alain Magloire Preliminary work to get Parser IProblem in the CEditor. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java index c0b06c2c558..77935ee9de5 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java @@ -565,8 +565,14 @@ public class CompletionEngine implements RelevanceConstants { } } private void completionOnVariableType(IASTCompletionNode completionNode){ - // 1. basic completion on all types - completionOnTypeReference(completionNode); + IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[5]; + kinds[0] = IASTNode.LookupKind.STRUCTURES; + kinds[1] = IASTNode.LookupKind.ENUMERATIONS; + kinds[2] = IASTNode.LookupKind.NAMESPACES; + kinds[3] = IASTNode.LookupKind.TYPEDEFS; + kinds[4] = IASTNode.LookupKind.CONSTRUCTORS; + ILookupResult result = lookup(completionNode.getCompletionScope(), completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext(), null); + addToCompletions(result); } private void completionOnSingleNameReference(IASTCompletionNode completionNode){ @@ -781,11 +787,11 @@ public class CompletionEngine implements RelevanceConstants { } } else if(kind == CompletionKind.VARIABLE_TYPE) { - if (completionNode.getCompletionContext() == null){ + if (completionNode.getCompletionContext() != null){ // CompletionOnVariableType completionOnVariableType(completionNode); }else { - completionOnScopedReference(completionNode); + completionOnTypeReference( completionNode ); } } else if(kind == CompletionKind.ARGUMENT_TYPE){ diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/FunctionPrototypeSummary.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/FunctionPrototypeSummary.java index 98a824489c7..2d2617ae65d 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/FunctionPrototypeSummary.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/FunctionPrototypeSummary.java @@ -14,7 +14,7 @@ public class FunctionPrototypeSummary implements IFunctionSummary.IFunctionProto * @param The string describing the prototype which is properly * formed with following format -- returntype function(arguments) * The following formats will be converted as follows: - * function(arguments) --> void function(arguments) + * function(arguments) --> function(arguments) //constructors! * returntype function --> returntype function() * function --> void function() */ @@ -55,8 +55,8 @@ public class FunctionPrototypeSummary implements IFunctionSummary.IFunctionProto fname = proto.substring(namestart, nameend + 1).trim(); if(namestart == 0) { - //@@@ Should this be int instead? - freturn = "void"; //$NON-NLS-1$ + //Constructors are like this, don't stick a type on them. + freturn = ""; //$NON-NLS-1$ } else { freturn = proto.substring(0, namestart).trim(); } @@ -90,7 +90,7 @@ public class FunctionPrototypeSummary implements IFunctionSummary.IFunctionProto buffer.append(getArguments()); } buffer.append(")"); //$NON-NLS-1$ - if((namefirst) && (appendReturnType) ) { + if((namefirst) && (appendReturnType) && getReturnType().length() > 0 ) { buffer.append(" "); //$NON-NLS-1$ buffer.append(getReturnType()); }