void ShowImportNamespaceSmartTagMenu(AssemblyNamespaceList assemblyNamespaces) { _ImportNamespaceItems = GetImportNamespaceSmartTagItems(assemblyNamespaces); SynchronizationContext.Current.Post(delegate(object state) { Point point = CodeRush.SmartTags.GetPopupMenuPoint(); TextView textView = CodeRush.TextViews.Active; if (textView != null) point.Offset(0, textView.LineHeight); CodeRush.SmartTags.ShowPopupMenu(point, stImportNamespace); }, null); }
static TypeToAssemblyNamespaceMap ScanProjectTypes(List<ProjectElement> projectsToGetTypes) { TypeToAssemblyNamespaceMap result = new TypeToAssemblyNamespaceMap(); if (projectsToGetTypes == null) return result; foreach (ProjectElement projectToGetTypes in projectsToGetTypes) { ITypeElement[] projectTypes = GetTypesDeclaredInProject(projectToGetTypes); if (projectTypes == null) continue; foreach (ITypeElement typeElement in projectTypes) { if (typeElement == null) continue; if (typeElement.ParentNamespace == null) continue; string typeNamespace = typeElement.ParentNamespace.FullName; if (String.IsNullOrEmpty(typeNamespace)) continue; AssemblyNamespaceList namespaceList; if (!result.TryGetValue(typeElement.Name, out namespaceList)) { namespaceList = new AssemblyNamespaceList(); result.Add(typeElement.Name, namespaceList); } AssemblyNamespace nameSpace = new AssemblyNamespace(); nameSpace.ReferenceProject = projectToGetTypes; nameSpace.Namespace = typeNamespace; namespaceList.Add(nameSpace); } } return result; }
// private methods... List<ISmartTagItem> GetImportNamespaceSmartTagItems(AssemblyNamespaceList assemblyNamespaces) { List<ISmartTagItem> result = new List<ISmartTagItem>(); foreach (AssemblyNamespace assemblyNamespace in assemblyNamespaces) { ImportNamespaceSmartTagItem item = new ImportNamespaceSmartTagItem(assemblyNamespace); item.Execute += delegate(object sender, EventArgs e) { Project envDteProject = CodeRush.Project.Active; if (envDteProject == null) return; AssemblyNamespace itemAssemblyNamespace = item.AssemblyNamespace; AddReference(envDteProject, itemAssemblyNamespace.Assembly); CodeRush.Source.DeclareNamespaceReference(itemAssemblyNamespace.Namespace); }; result.Add(item); } return result; }
static TypeToAssemblyNamespaceMap ScanAssemblyReferenceTypes(List<AssemblyReference> assemblyReferences) { TypeToAssemblyNamespaceMap result = new TypeToAssemblyNamespaceMap(); if (assemblyReferences == null) return result; foreach (AssemblyReference assemblyReference in assemblyReferences) { ITypeElement[] types = GetTypesDeclaredInAssembly(assemblyReference); if (types == null) continue; foreach (ITypeElement typeElement in types) { if (typeElement == null) continue; if (typeElement.ParentNamespace == null) continue; string typeNamespace = typeElement.ParentNamespace.FullName; if (String.IsNullOrEmpty(typeNamespace)) continue; AssemblyNamespaceList namespaceList; if (!result.TryGetValue(typeElement.Name, out namespaceList)) { namespaceList = new AssemblyNamespaceList(); result.Add(typeElement.Name, namespaceList); } AssemblyNamespace nameSpace = new AssemblyNamespace(); nameSpace.AssemblyFilePath = assemblyReference.FilePath; nameSpace.Namespace = typeNamespace; namespaceList.Add(nameSpace); } } return result; }
static NamespacesResult CombineResults(NamespacesResult first, NamespacesResult second) { NamespacesResult combinedResult = new NamespacesResult(); if (first.State == LoadState.TypeFound || second.State == LoadState.TypeFound) combinedResult.State = LoadState.TypeFound; if (combinedResult.State != LoadState.TypeFound) if (first.State == LoadState.FrameworkNotLoaded || second.State == LoadState.FrameworkNotLoaded) combinedResult.State = LoadState.FrameworkNotLoaded; AssemblyNamespaceList combinedList = new AssemblyNamespaceList(); combinedList.AddUnique(first.Namespaces); combinedList.AddUnique(second.Namespaces); combinedResult.Namespaces = combinedList; return combinedResult; }
public void Add(string key, AssemblyNamespaceList namespaceList) { _CaseSensitiveData.Add(key, namespaceList); _CaseInSensitiveData[key] = namespaceList; }
public bool TryGetValue(string key, bool caseSensitive, out AssemblyNamespaceList result) { Dictionary<string, AssemblyNamespaceList> dictionary = GetDataDictionary(caseSensitive); return dictionary.TryGetValue(key, out result); }
public bool TryGetValue(string key, out AssemblyNamespaceList result) { return TryGetValue(key, true, out result); }