From 3e84881981a9560eebea0fcfd6ae44545005a58b Mon Sep 17 00:00:00 2001 From: CyrusNajmabadi Date: Wed, 20 Apr 2016 18:18:02 -0700 Subject: [PATCH] Stop making FixAllCodeActionContext derive from FixAllContext. --- .../CodeFixes/CodeFixService.cs | 2 +- .../Suggestions/CodeFixSuggestedAction.cs | 4 +- .../Portable/CodeFixes/CodeFixCollection.cs | 6 +-- ...AllCodeActionContext.DiagnosticProvider.cs | 5 +- .../FixAllCodeActionContext.cs | 54 +++++++------------ 5 files changed, 27 insertions(+), 44 deletions(-) diff --git a/src/EditorFeatures/Core/Implementation/CodeFixes/CodeFixService.cs b/src/EditorFeatures/Core/Implementation/CodeFixes/CodeFixService.cs index b3aa16a9e51..582541a129c 100644 --- a/src/EditorFeatures/Core/Implementation/CodeFixes/CodeFixService.cs +++ b/src/EditorFeatures/Core/Implementation/CodeFixes/CodeFixService.cs @@ -288,7 +288,7 @@ public async Task> GetFixesAsync(Document documen var fixAllProviderInfo = extensionManager.PerformFunction(fixer, () => ImmutableInterlocked.GetOrAdd(ref _fixAllProviderMap, fixer, FixAllProviderInfo.Create), defaultValue: null); FixAllProvider fixAllProvider = null; - FixAllCodeActionContext fixAllContext = null; + FixAllContext fixAllContext = null; IEnumerable supportedScopes = null; if (fixAllProviderInfo != null) { diff --git a/src/EditorFeatures/Core/Implementation/Suggestions/CodeFixSuggestedAction.cs b/src/EditorFeatures/Core/Implementation/Suggestions/CodeFixSuggestedAction.cs index 29015a830f2..c79b8bf310d 100644 --- a/src/EditorFeatures/Core/Implementation/Suggestions/CodeFixSuggestedAction.cs +++ b/src/EditorFeatures/Core/Implementation/Suggestions/CodeFixSuggestedAction.cs @@ -47,7 +47,7 @@ internal class CodeFixSuggestedAction : SuggestedActionWithFlavors, ITelemetryDi CodeAction action, int actionCount, FixAllProvider fixAllProvider, - FixAllCodeActionContext fixAllCodeActionContext, + FixAllContext fixAllCodeActionContext, IEnumerable supportedScopes, Diagnostic firstDiagnostic, Workspace workspace, @@ -84,7 +84,7 @@ internal class CodeFixSuggestedAction : SuggestedActionWithFlavors, ITelemetryDi /// Transforms this context into the public to be used for invocation. /// private static FixAllContext GetContextForScopeAndActionId( - FixAllCodeActionContext context, + FixAllContext context, FixAllScope scope, string codeActionEquivalenceKey) { if (context.Scope == scope && context.CodeActionEquivalenceKey == codeActionEquivalenceKey) diff --git a/src/Features/Core/Portable/CodeFixes/CodeFixCollection.cs b/src/Features/Core/Portable/CodeFixes/CodeFixCollection.cs index 60e5012c78c..fd943d346c9 100644 --- a/src/Features/Core/Portable/CodeFixes/CodeFixCollection.cs +++ b/src/Features/Core/Portable/CodeFixes/CodeFixCollection.cs @@ -21,7 +21,7 @@ internal class CodeFixCollection /// Optional fix all context, which is non-null if the given supports fix all occurrences code fix. /// public FixAllProvider FixAllProvider { get; } - public FixAllCodeActionContext FixAllContext { get; } + public FixAllContext FixAllContext { get; } public IEnumerable SupportedScopes { get; } public Diagnostic FirstDiagnostic { get; } @@ -30,7 +30,7 @@ internal class CodeFixCollection TextSpan span, IEnumerable fixes, FixAllProvider fixAllProvider, - FixAllCodeActionContext fixAllContext, + FixAllContext fixAllContext, IEnumerable supportedScopes, Diagnostic firstDiagnostic) : this(provider, span, fixes.ToImmutableArray(), fixAllProvider, fixAllContext, supportedScopes, firstDiagnostic) @@ -42,7 +42,7 @@ internal class CodeFixCollection TextSpan span, ImmutableArray fixes, FixAllProvider fixAllProvider, - FixAllCodeActionContext fixAllContext, + FixAllContext fixAllContext, IEnumerable supportedScopes, Diagnostic firstDiagnostic) { diff --git a/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.DiagnosticProvider.cs b/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.DiagnosticProvider.cs index 6ecb7305918..1bfdc4e2861 100644 --- a/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.DiagnosticProvider.cs +++ b/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.DiagnosticProvider.cs @@ -13,9 +13,10 @@ namespace Microsoft.CodeAnalysis.CodeFixes /// /// FixAll context with some additional information specifically for . /// - internal partial class FixAllCodeActionContext : FixAllContext + internal partial class FixAllCodeActionContext { - internal class FixAllDiagnosticProvider : DiagnosticProvider + // Internal for testing purposes. + internal class FixAllDiagnosticProvider : FixAllContext.DiagnosticProvider { private readonly ImmutableHashSet _diagnosticIds; diff --git a/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.cs b/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.cs index fc3e58e14a6..af36832dfcb 100644 --- a/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.cs +++ b/src/Features/Core/Portable/CodeFixes/FixAllOccurrences/FixAllCodeActionContext.cs @@ -13,12 +13,9 @@ namespace Microsoft.CodeAnalysis.CodeFixes /// /// FixAll context with some additional information specifically for . /// - internal partial class FixAllCodeActionContext : FixAllContext + internal static partial class FixAllCodeActionContext { - private readonly FixAllProviderInfo _fixAllProviderInfo; - private readonly IEnumerable _originalFixDiagnostics; - - internal static FixAllCodeActionContext Create( + internal static FixAllContext Create( Document document, FixAllProviderInfo fixAllProviderInfo, CodeFixProvider originalFixProvider, @@ -29,10 +26,17 @@ internal partial class FixAllCodeActionContext : FixAllContext { var diagnosticIds = GetFixAllDiagnosticIds(fixAllProviderInfo, originalFixDiagnostics).ToImmutableHashSet(); var diagnosticProvider = new FixAllDiagnosticProvider(diagnosticIds, getDocumentDiagnosticsAsync, getProjectDiagnosticsAsync); - return new FixAllCodeActionContext(document, fixAllProviderInfo, originalFixProvider, originalFixDiagnostics, diagnosticIds, diagnosticProvider, cancellationToken); + return new FixAllContext( + document: document, + codeFixProvider: originalFixProvider, + scope: FixAllScope.Document, + codeActionEquivalenceKey: null, + diagnosticIds: diagnosticIds, + fixAllDiagnosticProvider: diagnosticProvider, + cancellationToken: cancellationToken); } - internal static FixAllCodeActionContext Create( + internal static FixAllContext Create( Project project, FixAllProviderInfo fixAllProviderInfo, CodeFixProvider originalFixProvider, @@ -43,35 +47,13 @@ internal partial class FixAllCodeActionContext : FixAllContext { var diagnosticIds = GetFixAllDiagnosticIds(fixAllProviderInfo, originalFixDiagnostics).ToImmutableHashSet(); var diagnosticProvider = new FixAllDiagnosticProvider(diagnosticIds, getDocumentDiagnosticsAsync, getProjectDiagnosticsAsync); - return new FixAllCodeActionContext(project, fixAllProviderInfo, originalFixProvider, originalFixDiagnostics, diagnosticIds, diagnosticProvider, cancellationToken); - } - - private FixAllCodeActionContext( - Document document, - FixAllProviderInfo fixAllProviderInfo, - CodeFixProvider originalFixProvider, - IEnumerable originalFixDiagnostics, - ImmutableHashSet diagnosticIds, - FixAllDiagnosticProvider diagnosticProvider, - CancellationToken cancellationToken) - : base(document, originalFixProvider, FixAllScope.Document, null, diagnosticIds, diagnosticProvider, cancellationToken) - { - _fixAllProviderInfo = fixAllProviderInfo; - _originalFixDiagnostics = originalFixDiagnostics; - } - - private FixAllCodeActionContext( - Project project, - FixAllProviderInfo fixAllProviderInfo, - CodeFixProvider originalFixProvider, - IEnumerable originalFixDiagnostics, - ImmutableHashSet diagnosticIds, - FixAllDiagnosticProvider diagnosticProvider, - CancellationToken cancellationToken) - : base(project, originalFixProvider, FixAllScope.Project, null, diagnosticIds, diagnosticProvider, cancellationToken) - { - _fixAllProviderInfo = fixAllProviderInfo; - _originalFixDiagnostics = originalFixDiagnostics; + return new FixAllContext( + project: project, + codeFixProvider: originalFixProvider, + scope: FixAllScope.Project, + codeActionEquivalenceKey: null, diagnosticIds: diagnosticIds, + fixAllDiagnosticProvider: diagnosticProvider, + cancellationToken: cancellationToken); } private static IEnumerable GetFixAllDiagnosticIds(FixAllProviderInfo fixAllProviderInfo, IEnumerable originalFixDiagnostics) -- GitLab