public async override Task <CodeAction> GetFixAsync(FixAllContext fixAllContext) { var batchFixer = (BatchFixAllProvider)WellKnownFixAllProviders.BatchFixer; var suppressionFixer = (AbstractSuppressionCodeFixProvider)((WrapperCodeFixProvider)fixAllContext.CodeFixProvider).SuppressionFixProvider; var isGlobalSuppression = NestedSuppressionCodeAction.IsEquivalenceKeyForGlobalSuppression(fixAllContext.CodeActionEquivalenceKey); if (!isGlobalSuppression) { // Pragma warning fix all. batchFixer = new PragmaWarningBatchFixAllProvider(suppressionFixer); return(await batchFixer.GetFixAsync(fixAllContext).ConfigureAwait(false)); } var title = fixAllContext.CodeActionEquivalenceKey; if (fixAllContext.Document != null) { var documentsAndDiagnosticsToFixMap = await batchFixer.GetDocumentDiagnosticsToFixAsync(fixAllContext).ConfigureAwait(false); return(CreateGlobalSuppressionFixAllAction(title, suppressionFixer, fixAllContext.Document, documentsAndDiagnosticsToFixMap)); } else { var projectsAndDiagnosticsToFixMap = await batchFixer.GetProjectDiagnosticsToFixAsync(fixAllContext).ConfigureAwait(false); return(CreateGlobalSuppressionFixAllAction(title, suppressionFixer, fixAllContext.Project, projectsAndDiagnosticsToFixMap)); } }
public override async Task <CodeAction> GetFixAsync(FixAllContext fixAllContext) { // currently there's no FixAll support for local suppression, just bail out if (NestedSuppressionCodeAction.IsEquivalenceKeyForLocalSuppression(fixAllContext.CodeActionEquivalenceKey)) { return(null); } var suppressionFixer = (AbstractSuppressionCodeFixProvider)((WrapperCodeFixProvider)fixAllContext.CodeFixProvider).SuppressionFixProvider; if (NestedSuppressionCodeAction.IsEquivalenceKeyForGlobalSuppression(fixAllContext.CodeActionEquivalenceKey)) { var fallbackOptions = fixAllContext.GetOptionsProvider(); // For global suppressions, we defer to the global suppression system to handle directly. var title = fixAllContext.CodeActionEquivalenceKey; return(fixAllContext.Document != null ? GlobalSuppressMessageFixAllCodeAction.Create( title, suppressionFixer, fixAllContext.Document, await fixAllContext.GetDocumentDiagnosticsToFixAsync().ConfigureAwait(false), fallbackOptions) : GlobalSuppressMessageFixAllCodeAction.Create( title, suppressionFixer, fixAllContext.Project, await fixAllContext.GetProjectDiagnosticsToFixAsync().ConfigureAwait(false), fallbackOptions)); } if (NestedSuppressionCodeAction.IsEquivalenceKeyForPragmaWarning(fixAllContext.CodeActionEquivalenceKey)) { var batchFixer = new PragmaWarningBatchFixAllProvider(suppressionFixer); return(await batchFixer.GetFixAsync(fixAllContext).ConfigureAwait(false)); } if (NestedSuppressionCodeAction.IsEquivalenceKeyForRemoveSuppression(fixAllContext.CodeActionEquivalenceKey)) { var batchFixer = RemoveSuppressionCodeAction.GetBatchFixer(suppressionFixer); return(await batchFixer.GetFixAsync(fixAllContext).ConfigureAwait(false)); } throw ExceptionUtilities.Unreachable; }
public async override Task<CodeAction> GetFixAsync(FixAllContext fixAllContext) { var batchFixer = (BatchFixAllProvider)WellKnownFixAllProviders.BatchFixer; var suppressionFixer = (AbstractSuppressionCodeFixProvider)((WrapperCodeFixProvider)fixAllContext.CodeFixProvider).SuppressionFixProvider; var isGlobalSuppression = NestedSuppressionCodeAction.IsEquivalenceKeyForGlobalSuppression(fixAllContext.CodeActionEquivalenceKey); if (!isGlobalSuppression) { // Pragma warning fix all. batchFixer = new PragmaWarningBatchFixAllProvider(suppressionFixer); return await batchFixer.GetFixAsync(fixAllContext).ConfigureAwait(false); } var title = fixAllContext.CodeActionEquivalenceKey; if (fixAllContext.Document != null) { var documentsAndDiagnosticsToFixMap = await batchFixer.GetDocumentDiagnosticsToFixAsync(fixAllContext).ConfigureAwait(false); return CreateGlobalSuppressionFixAllAction(title, suppressionFixer, fixAllContext.Document, documentsAndDiagnosticsToFixMap); } else { var projectsAndDiagnosticsToFixMap = await batchFixer.GetProjectDiagnosticsToFixAsync(fixAllContext).ConfigureAwait(false); return CreateGlobalSuppressionFixAllAction(title, suppressionFixer, fixAllContext.Project, projectsAndDiagnosticsToFixMap); } }