public IEnumerable <Completion> ToCompletionList(string codeSnippit) { Type resolvedType; string remainingCode; if (_typeNavigator.TryResolveType(_viewExplorer, codeSnippit, out resolvedType, out remainingCode)) { if (string.IsNullOrEmpty(remainingCode)) { return(ResolveTypeMemberCompletions(resolvedType)); } return(ResolveInstanceMemberCompletions(resolvedType, remainingCode)); } IEnumerable <string> namespaceElements = _typeNavigator.Types.Select(t => _typeNavigator.GetMatchingNamespaceElements(t, codeSnippit)); IEnumerable <ViewDataChunk> viewDataElements = _viewExplorer.GetViewDataVariableChunks(); IEnumerable <LocalVariableChunk> viewLocalElements = _viewExplorer.GetLocalVariableChunks(); if (string.IsNullOrEmpty(codeSnippit)) { IEnumerable <Type> triggerTypes = _typeNavigator.GetTriggerTypes(); IEnumerable <MemberInfo> viewMembers = _typeNavigator.GetViewInstanceMembers(triggerTypes); return(triggerTypes .Union(viewMembers).ToCompletionList() .Union(namespaceElements.ToCompletionList()) .Union(viewDataElements.ToCompletionList()) .Union(viewLocalElements.ToCompletionList())); } return(namespaceElements.ToCompletionList()); }