1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Content Assist fixes

This commit is contained in:
Hoda Amer 2004-04-21 17:12:17 +00:00
parent 8d33b94810
commit fc6b681d61
2 changed files with 47 additions and 0 deletions

View file

@ -1,6 +1,7 @@
2004-04-21 Hoda Amer
Fix for bug#58703 :[Content Assist] An extra [^SPC] is required after appending to a prefix
Fix for bug#58708 :[Content Assist] Invalid proposals on nested classes
Fix for bug#58858 :[Content Assist] No completion when declaring a struct variable
2004-04-06 Chris Wiebe
initial placement of non-ui code into org.eclipse.cdt.core.browser

View file

@ -595,6 +595,34 @@ public class CompletionEngine implements RelevanceConstants {
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
}
private void completionOnStructReference(IASTCompletionNode completionNode){
// 1. Get the search scope node
IASTScope searchNode = completionNode.getCompletionScope();
// only look for classes
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.STRUCTS;
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
}
private void completionOnUnionReference(IASTCompletionNode completionNode){
// 1. Get the search scope node
IASTScope searchNode = completionNode.getCompletionScope();
// only look for classes
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.UNIONS;
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
}
private void completionOnEnumReference(IASTCompletionNode completionNode){
// 1. Get the search scope node
IASTScope searchNode = completionNode.getCompletionScope();
// only look for classes
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.ENUMERATIONS;
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
}
private void completionOnNamespaceReference(IASTCompletionNode completionNode){
// 1. Get the search scope node
@ -749,6 +777,18 @@ public class CompletionEngine implements RelevanceConstants {
// completionOnConstructorReference
completionOnConstructorReference(completionNode);
}
else if(kind == CompletionKind.STRUCT_REFERENCE){
// CompletionOnClassReference
completionOnStructReference(completionNode);
}
else if(kind == CompletionKind.UNION_REFERENCE){
// CompletionOnClassReference
completionOnUnionReference(completionNode);
}
else if(kind == CompletionKind.ENUM_REFERENCE){
// CompletionOnClassReference
completionOnEnumReference(completionNode);
}
// add keywords in all cases except for member and scoped reference cases.
if(kind != CompletionKind.MEMBER_REFERENCE){
@ -792,6 +832,12 @@ public class CompletionEngine implements RelevanceConstants {
kindStr = "PREPROCESSOR_DIRECTIVE"; //$NON-NLS-1$
else if(kind == IASTCompletionNode.CompletionKind.USER_SPECIFIED_NAME)
kindStr = "USER_SPECIFIED_NAME"; //$NON-NLS-1$
else if(kind == IASTCompletionNode.CompletionKind.STRUCT_REFERENCE)
kindStr = "STRUCT_REFERENCE"; //$NON-NLS-1$
else if(kind == IASTCompletionNode.CompletionKind.UNION_REFERENCE)
kindStr = "UNION_REFERENCE"; //$NON-NLS-1$
else if(kind == IASTCompletionNode.CompletionKind.ENUM_REFERENCE)
kindStr = "ENUM_REFERENCE"; //$NON-NLS-1$
else if(kind == IASTCompletionNode.CompletionKind.NO_SUCH_KIND)
kindStr = "NO_SUCH_KIND"; //$NON-NLS-1$