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
|
2004-04-06 Chris Wiebe
|
||||||
initial placement of non-ui code into org.eclipse.cdt.core.browser
|
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 |
|
@ -509,4 +509,8 @@ public class CElementImageProvider {
|
||||||
return getImageDescriptor(ICElement.C_NAMESPACE);
|
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_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_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_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_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_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$
|
public static final String IMG_OBJS_INCLUDE= NAME_PREFIX + "include_obj.gif"; //$NON-NLS-1$
|
||||||
|
@ -111,6 +113,8 @@ public class CPluginImages {
|
||||||
public static final ImageDescriptor DESC_OBJS_PUBLIC_FIELD= createManaged(T_OBJ, IMG_OBJS_PUBLIC_FIELD);
|
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_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_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_VAR_DECLARARION= createManaged(T_OBJ, IMG_OBJS_VAR_DECLARATION);
|
||||||
public static final ImageDescriptor DESC_OBJS_INCLUDE= createManaged(T_OBJ, IMG_OBJS_INCLUDE);
|
public static final ImageDescriptor DESC_OBJS_INCLUDE= createManaged(T_OBJ, IMG_OBJS_INCLUDE);
|
||||||
|
|
|
@ -283,18 +283,22 @@ public class CompletionEngine implements RelevanceConstants {
|
||||||
completionStart, completionLength, relevance);
|
completionStart, completionLength, relevance);
|
||||||
}
|
}
|
||||||
if(classkind == ASTClassKind.STRUCT){
|
if(classkind == ASTClassKind.STRUCT){
|
||||||
|
if (classSpecifier.getName().length() > 0){
|
||||||
int relevance = computeRelevance(ICElement.C_STRUCT, prefix, classSpecifier.getName());
|
int relevance = computeRelevance(ICElement.C_STRUCT, prefix, classSpecifier.getName());
|
||||||
|
|
||||||
requestor.acceptStruct(classSpecifier.getName(),
|
requestor.acceptStruct(classSpecifier.getName(),
|
||||||
completionStart, completionLength, relevance);
|
completionStart, completionLength, relevance);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(classkind == ASTClassKind.UNION){
|
if(classkind == ASTClassKind.UNION){
|
||||||
|
if(classSpecifier.getName().length() > 0){
|
||||||
int relevance = computeRelevance(ICElement.C_UNION, prefix, classSpecifier.getName());
|
int relevance = computeRelevance(ICElement.C_UNION, prefix, classSpecifier.getName());
|
||||||
|
|
||||||
requestor.acceptUnion(classSpecifier.getName(),
|
requestor.acceptUnion(classSpecifier.getName(),
|
||||||
completionStart, completionLength, relevance);
|
completionStart, completionLength, relevance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if(node instanceof IASTNamespaceDefinition){
|
else if(node instanceof IASTNamespaceDefinition){
|
||||||
IASTNamespaceDefinition namespace = (IASTNamespaceDefinition)node;
|
IASTNamespaceDefinition namespace = (IASTNamespaceDefinition)node;
|
||||||
int relevance = computeRelevance(ICElement.C_NAMESPACE, prefix, namespace.getName());
|
int relevance = computeRelevance(ICElement.C_NAMESPACE, prefix, namespace.getName());
|
||||||
|
@ -303,10 +307,12 @@ public class CompletionEngine implements RelevanceConstants {
|
||||||
}
|
}
|
||||||
else if(node instanceof IASTEnumerationSpecifier){
|
else if(node instanceof IASTEnumerationSpecifier){
|
||||||
IASTEnumerationSpecifier enumeration = (IASTEnumerationSpecifier)node;
|
IASTEnumerationSpecifier enumeration = (IASTEnumerationSpecifier)node;
|
||||||
|
if(enumeration.getName().length() > 0){
|
||||||
int relevance = computeRelevance(ICElement.C_ENUMERATION, prefix, enumeration.getName());
|
int relevance = computeRelevance(ICElement.C_ENUMERATION, prefix, enumeration.getName());
|
||||||
|
|
||||||
requestor.acceptEnumeration(enumeration.getName(), completionStart, completionLength, relevance);
|
requestor.acceptEnumeration(enumeration.getName(), completionStart, completionLength, relevance);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if(node instanceof IASTEnumerator){
|
else if(node instanceof IASTEnumerator){
|
||||||
IASTEnumerator enumerator = (IASTEnumerator)node;
|
IASTEnumerator enumerator = (IASTEnumerator)node;
|
||||||
int relevance = computeRelevance(ICElement.C_ENUMERATOR, prefix, enumerator.getName());
|
int relevance = computeRelevance(ICElement.C_ENUMERATOR, prefix, enumerator.getName());
|
||||||
|
@ -466,7 +472,7 @@ public class CompletionEngine implements RelevanceConstants {
|
||||||
IASTScope searchNode = completionNode.getCompletionScope();
|
IASTScope searchNode = completionNode.getCompletionScope();
|
||||||
// here we have to look for anything that could be referenced within this scope
|
// 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
|
// 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[0] = IASTNode.LookupKind.VARIABLES;
|
||||||
kinds[1] = IASTNode.LookupKind.STRUCTURES;
|
kinds[1] = IASTNode.LookupKind.STRUCTURES;
|
||||||
kinds[2] = IASTNode.LookupKind.ENUMERATIONS;
|
kinds[2] = IASTNode.LookupKind.ENUMERATIONS;
|
||||||
|
@ -475,6 +481,7 @@ public class CompletionEngine implements RelevanceConstants {
|
||||||
kinds[5] = IASTNode.LookupKind.FIELDS;
|
kinds[5] = IASTNode.LookupKind.FIELDS;
|
||||||
kinds[6] = IASTNode.LookupKind.METHODS;
|
kinds[6] = IASTNode.LookupKind.METHODS;
|
||||||
kinds[7] = IASTNode.LookupKind.FUNCTIONS;
|
kinds[7] = IASTNode.LookupKind.FUNCTIONS;
|
||||||
|
kinds[8] = IASTNode.LookupKind.ENUMERATORS;
|
||||||
|
|
||||||
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||||
// lookup static members (field / methods) in types
|
// lookup static members (field / methods) in types
|
||||||
|
@ -552,6 +559,8 @@ public class CompletionEngine implements RelevanceConstants {
|
||||||
else // prefix is empty
|
else // prefix is empty
|
||||||
{
|
{
|
||||||
if(searchNode instanceof IASTCodeScope){
|
if(searchNode instanceof IASTCodeScope){
|
||||||
|
if (((IASTCodeScope)searchNode).getContainingFunction() instanceof IASTMethod){
|
||||||
|
// we are inside of a method
|
||||||
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
|
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
|
||||||
kinds[0] = IASTNode.LookupKind.THIS;
|
kinds[0] = IASTNode.LookupKind.THIS;
|
||||||
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||||
|
@ -561,6 +570,13 @@ public class CompletionEngine implements RelevanceConstants {
|
||||||
kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
|
kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
|
||||||
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||||
addToCompletions(result);
|
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 {
|
} else {
|
||||||
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
|
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
|
||||||
kinds[0] = IASTNode.LookupKind.ALL;
|
kinds[0] = IASTNode.LookupKind.ALL;
|
||||||
|
|
|
@ -565,6 +565,9 @@ public class ResultCollector extends CompletionRequestorAdaptor {
|
||||||
replaceString = name;
|
replaceString = name;
|
||||||
displayString = name;
|
displayString = name;
|
||||||
|
|
||||||
|
ImageDescriptor imageDescriptor = CElementImageProvider.getKeywordImageDescriptor();
|
||||||
|
image = registry.get( imageDescriptor );
|
||||||
|
|
||||||
// no image for keywords
|
// no image for keywords
|
||||||
// create proposal and add it to completions list
|
// create proposal and add it to completions list
|
||||||
CCompletionProposal proposal = createProposal(replaceString, displayString, infoString.toString(),
|
CCompletionProposal proposal = createProposal(replaceString, displayString, infoString.toString(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue