Browse Source

[CodeCompletion] Fixed type hints for enumerations.

newNRvisualizers
Mike Krüger 13 years ago
parent
commit
2bd3e6d904
  1. 5
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 7
      ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs

5
ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs

@ -2278,8 +2278,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -2278,8 +2278,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
if (resolvedType.Kind != TypeKind.Enum) {
return;
}
completionList.AddEnumMembers(resolvedType, state);
DefaultCompletionString = resolvedType.Name;
var type = completionList.AddEnumMembers(resolvedType, state);
if (type != null)
DefaultCompletionString = type.DisplayText;
}
IEnumerable<ICompletionData> CreateCompletionData(TextLocation location, ResolveResult resolveResult, AstNode resolvedNode, CSharpResolver state, Func<IType, IType> typePred = null)

7
ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs

@ -230,17 +230,18 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -230,17 +230,18 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
}
}
HashSet<IType> addedEnums = new HashSet<IType> ();
public void AddEnumMembers (IType resolvedType, CSharpResolver state)
public ICompletionData AddEnumMembers (IType resolvedType, CSharpResolver state)
{
if (addedEnums.Contains (resolvedType))
return;
return null;
addedEnums.Add (resolvedType);
AddType(resolvedType, true);
var result = AddType(resolvedType, true);
foreach (var field in resolvedType.GetFields ()) {
if (field.IsPublic && (field.IsConst || field.IsStatic)) {
Result.Add(Factory.CreateMemberCompletionData(resolvedType, field));
}
}
return result;
}
}
}

Loading…
Cancel
Save