protected override async Task <IReadOnlyObservableSet> GetIncludedItemsAsync(IEnumerable <IVsHierarchyItem> rootItems)
            {
                if (this.branchDiffValidator.ValidateBranch(this.package))
                {
                    // Create new tag tables everytime the filter is applied
                    BranchDiffFilterProvider.TagManager.CreateTagTables();
                    IVsHierarchyItem root = HierarchyUtilities.FindCommonAncestor(rootItems);

                    if (this.branchDiffValidator.ValidateSolution(this.solutionDirectory))
                    {
                        try
                        {
                            this.changeSet = this.branchDiffWorker.GenerateDiff(this.solutionDirectory, this.package.BranchToDiffAgainst);
                        }
                        catch (GitOperationException e)
                        {
                            this.errorPresenter.ShowError(e.Message);
                            return(null);
                        }

                        IReadOnlyObservableSet <IVsHierarchyItem> sourceItems = await this.vsHierarchyItemCollectionProvider.GetDescendantsAsync(
                            root.HierarchyIdentity.NestedHierarchy,
                            CancellationToken);

                        IFilteredHierarchyItemSet includedItems = await this.vsHierarchyItemCollectionProvider.GetFilteredHierarchyItemsAsync(
                            sourceItems,
                            ShouldIncludeInFilter,
                            CancellationToken);

                        return(includedItems);
                    }
                }

                return(null);
            }
            protected override async Task <IReadOnlyObservableSet> GetIncludedItemsAsync(IEnumerable <IVsHierarchyItem> rootItems)
            {
                IVsHierarchyItem root = HierarchyUtilities.FindCommonAncestor(rootItems);
                IReadOnlyObservableSet <IVsHierarchyItem> sourceItems;

                sourceItems = await _hierarchyCollectionProvider.GetDescendantsAsync(root.HierarchyIdentity.NestedHierarchy, CancellationToken);

                return(await _hierarchyCollectionProvider.GetFilteredHierarchyItemsAsync(sourceItems, MeetsFilter, CancellationToken));
            }
Exemplo n.º 3
0
            // Gets the items to be included from this filter provider.
            // rootItems is a collection that contains the root of your solution
            // Returns a collection of items to be included as part of the filter
            protected override async Task <IReadOnlyObservableSet> GetIncludedItemsAsync(IEnumerable <IVsHierarchyItem> rootItems)
            {
                IVsHierarchyItem root = HierarchyUtilities.FindCommonAncestor(rootItems);
                IReadOnlyObservableSet <IVsHierarchyItem> sourceItems;

                sourceItems = await _hierarchyCollectionProvider.GetDescendantsAsync(
                    root.HierarchyIdentity.NestedHierarchy,
                    CancellationToken);

                IFilteredHierarchyItemSet includedItems = await _hierarchyCollectionProvider.GetFilteredHierarchyItemsAsync(
                    sourceItems,
                    _shouldInclude == null?(Predicate <IVsHierarchyItem>) ShouldIncludeInFilterByRegex : (Predicate <IVsHierarchyItem>)ShouldIncludeInFilterByFunc,
                    CancellationToken);

                return(includedItems);
            }
Exemplo n.º 4
0
            // Gets the items to be included from this filter provider.
            // rootItems is a collection that contains the root of your solution
            // Returns a collection of items to be included as part of the filter
            protected override async Task <IReadOnlyObservableSet> GetIncludedItemsAsync(IEnumerable <IVsHierarchyItem> rootItems)
            {
                // get default hierarchy
                var root        = HierarchyUtilities.FindCommonAncestor(rootItems);
                var sourceItems = await _hierarchyCollectionProvider.GetDescendantsAsync(
                    root.HierarchyIdentity.NestedHierarchy,
                    CancellationToken);

                // switch thread context
                await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(CancellationToken);

                // get diff stats
                var stats = GetRepoStats();

                if (stats == null)
                {
                    return(sourceItems);
                }
                return(await _hierarchyCollectionProvider.GetFilteredHierarchyItemsAsync(
                           sourceItems,
                           ShouldIncludeInFilter(stats),
                           CancellationToken));
            }
Exemplo n.º 5
0
            protected override async Task <IReadOnlyObservableSet> GetIncludedItemsAsync(IEnumerable <IVsHierarchyItem> rootItems)
            {
                if (BranchDiffFilterValidator.ValidateBranch(this.package))
                {
                    // Create new tag tables everytime the filter is applied
                    BranchDiffFilterProvider.TagManager.CreateTagTables();
                    IVsHierarchyItem root = HierarchyUtilities.FindCommonAncestor(rootItems);

                    if (BranchDiffFilterValidator.ValidateSolution(this.solutionDirectory, this.solutionFile))
                    {
                        try
                        {
                            // TODO: The solution directory path may not always be the Git repo path!
                            // Git repo could be setup higher up. Write a service to find the Git repo upwards in the heirarchy and pass that here.
                            this.changeSet = this.branchDiffWorker.GenerateDiff(this.solutionDirectory, this.package.BranchToDiffAgainst);
                        }
                        catch (GitOperationException e)
                        {
                            ErrorPresenter.ShowError(e.Message);
                            return(null);
                        }

                        IReadOnlyObservableSet <IVsHierarchyItem> sourceItems = await this.vsHierarchyItemCollectionProvider.GetDescendantsAsync(
                            root.HierarchyIdentity.NestedHierarchy,
                            CancellationToken);

                        IFilteredHierarchyItemSet includedItems = await this.vsHierarchyItemCollectionProvider.GetFilteredHierarchyItemsAsync(
                            sourceItems,
                            ShouldIncludeInFilter,
                            CancellationToken);

                        return(includedItems);
                    }
                }

                return(null);
            }
Exemplo n.º 6
0
            // Gets the items to be included from this filter provider.
            // rootItems is a collection that contains the root of your solution
            // Returns a collection of items to be included as part of the filter
            protected override async Task <IReadOnlyObservableSet> GetIncludedItemsAsync(IEnumerable <IVsHierarchyItem> rootItems)
            {
                IVsHierarchyItem root = HierarchyUtilities.FindCommonAncestor(rootItems);
                IReadOnlyObservableSet <IVsHierarchyItem> sourceItems;

                sourceItems = await hierarchyCollectionProvider.GetDescendantsAsync(
                    root.HierarchyIdentity.NestedHierarchy,
                    CancellationToken);

                IFilteredHierarchyItemSet includedItems = await hierarchyCollectionProvider.GetFilteredHierarchyItemsAsync(
                    sourceItems,
                    FilesWithBookmarksFilteredHierarchyItemSet.IsFileWithBookmarks,
                    CancellationToken);

                var wrapper = new FilesWithBookmarksFilteredHierarchyItemSet(sourceItems, includedItems);

                if (FilesWithBookmarksFilteredHierarchyItemSet.Instance != null)
                {
                    FilesWithBookmarksFilteredHierarchyItemSet.Instance.Dispose();
                }
                FilesWithBookmarksFilteredHierarchyItemSet.Instance = wrapper;

                return(wrapper);
            }