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:
parent
4acf3441ad
commit
8d33b94810
6 changed files with 54 additions and 23 deletions
|
@ -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
|
||||
|
||||
|
|
BIN
core/org.eclipse.cdt.ui/icons/full/obj16/keyword_obj.gif
Normal file
BIN
core/org.eclipse.cdt.ui/icons/full/obj16/keyword_obj.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 853 B |
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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(),
|
||||
|
|
Loading…
Add table
Reference in a new issue