IEnumerable<ICompletionData> HandleEnumContext()
{
var cu = ParseStub("a", false);
if (cu == null) {
return null;
}
var curType = cu.GetNodeAt<TypeDeclaration>(location);
if (curType == null || curType.ClassType != ClassType.Enum) {
cu = ParseStub("a {}", false);
var node = cu.GetNodeAt<AstType>(location);
if (node != null) {
var wrapper = new CompletionDataWrapper(this);
AddKeywords(wrapper, validEnumBaseTypes);
return wrapper.Result;
}
}
var member = cu.GetNodeAt<EnumMemberDeclaration>(location);
if (member != null && member.NameToken.EndLocation < location) {
return DefaultControlSpaceItems();
}
return null;
}