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); }
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); }
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); }
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); }
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; }