示例#1
0
            /// <summary>
            /// If the provided fix all context is non-null and the context's code action Id matches the given code action's Id then,
            /// returns the set of fix all occurrences actions associated with the code action.
            /// </summary>
            internal SuggestedActionSet GetFixAllSuggestedActionSet(
                CodeAction action,
                int actionCount,
                FixAllState fixAllState,
                ImmutableArray <FixAllScope> supportedScopes,
                Diagnostic firstDiagnostic,
                Workspace workspace)
            {
                if (fixAllState == null)
                {
                    return(null);
                }

                if (actionCount > 1 && action.EquivalenceKey == null)
                {
                    return(null);
                }

                var fixAllSuggestedActions = ArrayBuilder <FixAllSuggestedAction> .GetInstance();

                foreach (var scope in supportedScopes)
                {
                    var fixAllStateForScope   = fixAllState.WithScopeAndEquivalenceKey(scope, action.EquivalenceKey);
                    var fixAllSuggestedAction = new FixAllSuggestedAction(
                        _owner, workspace, _subjectBuffer, fixAllStateForScope,
                        firstDiagnostic, action);

                    fixAllSuggestedActions.Add(fixAllSuggestedAction);
                }

                return(new SuggestedActionSet(
                           fixAllSuggestedActions.ToImmutableAndFree(),
                           title: EditorFeaturesResources.Fix_all_occurrences_in));
            }
        /// <summary>
        /// If the provided fix all context is non-null and the context's code action Id matches the given code action's Id then,
        /// returns the set of fix all occurrences actions associated with the code action.
        /// </summary>
        internal static SuggestedActionSet GetFixAllSuggestedActionSet(
            CodeAction action,
            int actionCount,
            FixAllCodeActionContext fixAllCodeActionContext,
            Workspace workspace,
            ITextBuffer subjectBuffer,
            ICodeActionEditHandlerService editHandler,
            IWaitIndicator waitIndicator)
        {
            if (fixAllCodeActionContext == null)
            {
                return(null);
            }

            if (actionCount > 1 && action.EquivalenceKey == null)
            {
                return(null);
            }

            var fixAllSuggestedActions = ImmutableArray.CreateBuilder <FixAllSuggestedAction>();

            foreach (var scope in fixAllCodeActionContext.SupportedScopes)
            {
                var fixAllContext         = fixAllCodeActionContext.GetContextForScopeAndActionId(scope, action.EquivalenceKey);
                var fixAllAction          = new FixAllCodeAction(fixAllContext, fixAllCodeActionContext.FixAllProvider, showPreviewChangesDialog: true);
                var fixAllSuggestedAction = new FixAllSuggestedAction(workspace, subjectBuffer, editHandler, waitIndicator,
                                                                      fixAllAction, fixAllCodeActionContext.FixAllProvider, fixAllCodeActionContext.OriginalDiagnostics.First());
                fixAllSuggestedActions.Add(fixAllSuggestedAction);
            }

            return(new SuggestedActionSet(fixAllSuggestedActions.ToImmutable(), title: EditorFeaturesResources.FixAllOccurrencesIn));
        }
示例#3
0
        /// <summary>
        /// If the provided fix all context is non-null and the context's code action Id matches the given code action's Id then,
        /// returns the set of fix all occurrences actions associated with the code action.
        /// </summary>
        internal static SuggestedActionSet GetFixAllSuggestedActionSet(
            CodeAction action,
            int actionCount,
            FixAllState fixAllState,
            IEnumerable <FixAllScope> supportedScopes,
            Diagnostic firstDiagnostic,
            Workspace workspace,
            ITextBuffer subjectBuffer,
            ICodeActionEditHandlerService editHandler,
            IWaitIndicator waitIndicator,
            IAsynchronousOperationListener operationListener)
        {
            if (fixAllState == null)
            {
                return(null);
            }

            if (actionCount > 1 && action.EquivalenceKey == null)
            {
                return(null);
            }

            var fixAllSuggestedActions = ArrayBuilder <FixAllSuggestedAction> .GetInstance();

            foreach (var scope in supportedScopes)
            {
                var fixAllStateForScope   = fixAllState.WithScopeAndEquivalenceKey(scope, action.EquivalenceKey);
                var fixAllAction          = new FixAllCodeAction(fixAllStateForScope, showPreviewChangesDialog: true);
                var fixAllSuggestedAction = new FixAllSuggestedAction(
                    workspace, subjectBuffer, editHandler, waitIndicator, fixAllAction,
                    fixAllStateForScope.FixAllProvider, firstDiagnostic, operationListener);
                fixAllSuggestedActions.Add(fixAllSuggestedAction);
            }

            return(new SuggestedActionSet(
                       fixAllSuggestedActions.ToImmutableAndFree(),
                       title: EditorFeaturesResources.Fix_all_occurrences_in));
        }