public static IEnumerable <ProjectItem> GetSelectedProjectItemsRecursively(StylerPackage package) { ThreadHelper.ThrowIfNotOnUIThread(); var selectedProjectItems = new List <ProjectItem>(); UIHierarchy solutionExplorer = package.IDE2.ToolWindows.SolutionExplorer; IEnumerable <UIHierarchyItem> selectedUIHierarchyItems = ((object[])solutionExplorer.SelectedItems).Cast <UIHierarchyItem>().ToList(); IEnumerable <object> selectedItems = selectedUIHierarchyItems .Select(uiHierarchyItem => { ThreadHelper.ThrowIfNotOnUIThread(); return(uiHierarchyItem.Object); }); foreach (object item in selectedItems) { selectedProjectItems.AddRange(GetProjectItemsRecursively(item)); } return(selectedProjectItems); }
public OptionsHelper(StylerPackage package) { this.package = package; }