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 16:47:15 +00:00
parent 4acf3441ad
commit 8d33b94810
6 changed files with 54 additions and 23 deletions

View file

@ -1,3 +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
2004-04-06 Chris Wiebe
initial placement of non-ui code into org.eclipse.cdt.core.browser

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

View file

@ -508,5 +508,9 @@ public class CElementImageProvider {
public static ImageDescriptor getNamespaceImageDescriptor(){
return getImageDescriptor(ICElement.C_NAMESPACE);
}
public static ImageDescriptor getKeywordImageDescriptor(){
return CPluginImages.DESC_OBJS_KEYWORD;
}
}

View file

@ -61,6 +61,8 @@ public class CPluginImages {
public static final String IMG_OBJS_PUBLIC_FIELD= NAME_PREFIX + "field_public_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_PROTECTED_FIELD= NAME_PREFIX + "field_protected_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_PRIVATE_FIELD= NAME_PREFIX + "field_private_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_KEYWORD= NAME_PREFIX + "keyword_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_DECLARATION= NAME_PREFIX + "cdeclaration_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_VAR_DECLARATION= NAME_PREFIX + "var_declaration_obj.gif"; //$NON-NLS-1$
public static final String IMG_OBJS_INCLUDE= NAME_PREFIX + "include_obj.gif"; //$NON-NLS-1$
@ -110,7 +112,9 @@ public class CPluginImages {
public static final ImageDescriptor DESC_OBJS_PRIVATE_METHOD= createManaged(T_OBJ, IMG_OBJS_PRIVATE_METHOD);
public static final ImageDescriptor DESC_OBJS_PUBLIC_FIELD= createManaged(T_OBJ, IMG_OBJS_PUBLIC_FIELD);
public static final ImageDescriptor DESC_OBJS_PROTECTED_FIELD= createManaged(T_OBJ, IMG_OBJS_PROTECTED_FIELD);
public static final ImageDescriptor DESC_OBJS_PRIVATE_FIELD= createManaged(T_OBJ, IMG_OBJS_PRIVATE_FIELD);
public static final ImageDescriptor DESC_OBJS_PRIVATE_FIELD= createManaged(T_OBJ, IMG_OBJS_PRIVATE_FIELD);
public static final ImageDescriptor DESC_OBJS_KEYWORD= createManaged(T_OBJ, IMG_OBJS_KEYWORD);
public static final ImageDescriptor DESC_OBJS_DECLARARION= createManaged(T_OBJ, IMG_OBJS_DECLARATION);
public static final ImageDescriptor DESC_OBJS_VAR_DECLARARION= createManaged(T_OBJ, IMG_OBJS_VAR_DECLARATION);
public static final ImageDescriptor DESC_OBJS_INCLUDE= createManaged(T_OBJ, IMG_OBJS_INCLUDE);

View file

@ -283,16 +283,20 @@ public class CompletionEngine implements RelevanceConstants {
completionStart, completionLength, relevance);
}
if(classkind == ASTClassKind.STRUCT){
int relevance = computeRelevance(ICElement.C_STRUCT, prefix, classSpecifier.getName());
requestor.acceptStruct(classSpecifier.getName(),
completionStart, completionLength, relevance);
if (classSpecifier.getName().length() > 0){
int relevance = computeRelevance(ICElement.C_STRUCT, prefix, classSpecifier.getName());
requestor.acceptStruct(classSpecifier.getName(),
completionStart, completionLength, relevance);
}
}
if(classkind == ASTClassKind.UNION){
int relevance = computeRelevance(ICElement.C_UNION, prefix, classSpecifier.getName());
requestor.acceptUnion(classSpecifier.getName(),
completionStart, completionLength, relevance);
if(classSpecifier.getName().length() > 0){
int relevance = computeRelevance(ICElement.C_UNION, prefix, classSpecifier.getName());
requestor.acceptUnion(classSpecifier.getName(),
completionStart, completionLength, relevance);
}
}
}
else if(node instanceof IASTNamespaceDefinition){
@ -303,9 +307,11 @@ public class CompletionEngine implements RelevanceConstants {
}
else if(node instanceof IASTEnumerationSpecifier){
IASTEnumerationSpecifier enumeration = (IASTEnumerationSpecifier)node;
int relevance = computeRelevance(ICElement.C_ENUMERATION, prefix, enumeration.getName());
requestor.acceptEnumeration(enumeration.getName(), completionStart, completionLength, relevance);
if(enumeration.getName().length() > 0){
int relevance = computeRelevance(ICElement.C_ENUMERATION, prefix, enumeration.getName());
requestor.acceptEnumeration(enumeration.getName(), completionStart, completionLength, relevance);
}
}
else if(node instanceof IASTEnumerator){
IASTEnumerator enumerator = (IASTEnumerator)node;
@ -466,7 +472,7 @@ public class CompletionEngine implements RelevanceConstants {
IASTScope searchNode = completionNode.getCompletionScope();
// here we have to look for anything that could be referenced within this scope
// 1. lookup local variables, global variables, functions, methods, structures, enums, and namespaces
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[8];
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[9];
kinds[0] = IASTNode.LookupKind.VARIABLES;
kinds[1] = IASTNode.LookupKind.STRUCTURES;
kinds[2] = IASTNode.LookupKind.ENUMERATIONS;
@ -475,6 +481,7 @@ public class CompletionEngine implements RelevanceConstants {
kinds[5] = IASTNode.LookupKind.FIELDS;
kinds[6] = IASTNode.LookupKind.METHODS;
kinds[7] = IASTNode.LookupKind.FUNCTIONS;
kinds[8] = IASTNode.LookupKind.ENUMERATORS;
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
// lookup static members (field / methods) in types
@ -552,15 +559,24 @@ public class CompletionEngine implements RelevanceConstants {
else // prefix is empty
{
if(searchNode instanceof IASTCodeScope){
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.THIS;
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
if (((IASTCodeScope)searchNode).getContainingFunction() instanceof IASTMethod){
// we are inside of a method
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.THIS;
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
} else {
// we are inside of a function
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
addToCompletions(result);
}
} else {
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
kinds[0] = IASTNode.LookupKind.ALL;

View file

@ -564,7 +564,10 @@ public class ResultCollector extends CompletionRequestorAdaptor {
// fill the replace, display and info strings
replaceString = name;
displayString = name;
ImageDescriptor imageDescriptor = CElementImageProvider.getKeywordImageDescriptor();
image = registry.get( imageDescriptor );
// no image for keywords
// create proposal and add it to completions list
CCompletionProposal proposal = createProposal(replaceString, displayString, infoString.toString(),