private void ProcessNamespace(INamespace element, ISymbolScope scope, ICollection <HandlerCompletionItem> handlers) { var nestedNamespaces = element.GetNestedNamespaces(scope); foreach (var @namespace in nestedNamespaces) { ProcessNamespace(@namespace, scope, handlers); } var classes = element.GetNestedElements(scope).OfType <IClass>(); foreach (var @class in classes) { ProcessClass(@class, handlers); } }
private void PopulateAssemblyTypes(List<StaticDeclaredTypeWrapper> types, INamespace namespaceHandle, IDeclarationsCache cache, bool includeNonPublicTypes) { if (namespaceHandle == null || ! namespaceHandle.IsValid()) return; foreach (IDeclaredElement elementHandle in namespaceHandle.GetNestedElements(cache)) { ITypeElement typeHandle = elementHandle as ITypeElement; if (typeHandle != null) { PopulateAssemblyTypes(types, typeHandle, includeNonPublicTypes); } else { INamespace nestedNamespace = elementHandle as INamespace; if (nestedNamespace != null) PopulateAssemblyTypes(types, nestedNamespace, cache, includeNonPublicTypes); } } }