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());
        }