コード例 #1
0
 private FixMultipleSuggestedAction GetSuggestedAction(
     FixMultipleContext fixMultipleContext,
     Workspace workspace,
     FixAllProvider fixAllProvider,
     string title,
     string waitDialogMessage,
     bool showPreviewChangesDialog,
     CancellationToken cancellationToken)
 {
     var fixMultipleCodeAction = new FixMultipleCodeAction(fixMultipleContext, fixAllProvider, title, waitDialogMessage, showPreviewChangesDialog);
     return new FixMultipleSuggestedAction(_listener, workspace, _editHandler, _waitIndicator, fixMultipleCodeAction, fixAllProvider);
 }
コード例 #2
0
        internal FixMultipleSuggestedAction(
            Workspace workspace,
            ICodeActionEditHandlerService editHandler,
            FixMultipleCodeAction codeAction,
            FixAllProvider provider,
            ITextBuffer subjectBufferOpt = null)
            : base(workspace, subjectBufferOpt, editHandler, codeAction, provider, originalFixedDiagnostic: codeAction.GetTriggerDiagnostic())
        {
            _triggerDocumentOpt = codeAction.FixAllContext.Document;

            _telemetryId = GetTelemetryId(codeAction.FixAllContext.DiagnosticIds);
        }
コード例 #3
0
 private void ComputeAndApplyFix(
     FixMultipleContext fixMultipleContext,
     Workspace workspace,
     FixAllProvider fixAllProvider,
     string waitDialogAndPreviewChangesTitle,
     string waitDialogMessage,
     bool showPreviewChangesDialog,
     CancellationToken cancellationToken)
 {
     var fixMultipleCodeAction = new FixMultipleCodeAction(fixMultipleContext, fixAllProvider, title: waitDialogAndPreviewChangesTitle, previewChangesDialogTitle: waitDialogAndPreviewChangesTitle, computingFixWaitDialogMessage: waitDialogMessage, showPreviewChangesDialog: showPreviewChangesDialog);
     var fixMultipleSuggestedAction = new FixMultipleSuggestedAction(workspace, _editHandler, fixMultipleCodeAction, fixAllProvider);
     fixMultipleSuggestedAction.Invoke(cancellationToken);
 }
コード例 #4
0
        internal FixMultipleSuggestedAction(
            IAsynchronousOperationListener operationListener,
            Workspace workspace,
            ICodeActionEditHandlerService editHandler,
            IWaitIndicator waitIndicator,
            FixMultipleCodeAction codeAction,
            FixAllProvider provider,
            ITextBuffer subjectBufferOpt = null)
            : base(workspace, subjectBufferOpt, editHandler, waitIndicator, codeAction, provider, originalFixedDiagnostic: codeAction.GetTriggerDiagnostic(), operationListener: operationListener)
        {
            _triggerDocumentOpt = codeAction.FixAllState.Document;

            _telemetryId = GetTelemetryId(codeAction.FixAllState.DiagnosticIds);
        }
コード例 #5
0
        private Solution GetFixedSolution(
            FixAllState fixAllState,
            Workspace workspace,
            string title,
            string waitDialogMessage,
            CancellationToken cancellationToken)
        {
            var fixMultipleCodeAction = new FixMultipleCodeAction(
                fixAllState, title, waitDialogMessage);

            Solution newSolution = null;
            var extensionManager = workspace.Services.GetService<IExtensionManager>();
            extensionManager.PerformAction(fixAllState.FixAllProvider, () =>
            {
                // We don't need to post process changes here as the inner code action created for Fix multiple code fix already executes.
                newSolution = fixMultipleCodeAction.GetChangedSolutionInternalAsync(
                    postProcessChanges: false, cancellationToken: cancellationToken).WaitAndGetResult(cancellationToken);
            });

            return newSolution;
        }