private IEnumerable <Completion> ResolveInstanceMemberCompletions(Type resolvedType, string remainingCode) { if (remainingCode.EndsWith("(")) { return(null); } string[] fragments = remainingCode.Split(new[] { ".", "(", ")" }, StringSplitOptions.RemoveEmptyEntries); var flags = Flags.Instance | Flags.Static; MemberInfo resolvedMember = _typeNavigator.GetResolvedMember(resolvedType, fragments.First(), flags); IEnumerable <string> remainingFragments = fragments.Skip(1); while (resolvedMember != null) { resolvedType = _typeNavigator.GetResolvedType(resolvedMember) ?? resolvedType; resolvedMember = _typeNavigator.GetResolvedMember(resolvedType, remainingFragments.FirstOrDefault(), flags); remainingFragments = remainingFragments.Skip(1); } IEnumerable <MemberInfo> instanceMembers = _typeNavigator.GetMembers(resolvedType, flags); return(instanceMembers.ToCompletionList()); }