diff --git a/src/EditorFeatures/CSharpTest/GenerateFromMembers/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.cs b/src/EditorFeatures/CSharpTest/GenerateFromMembers/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.cs index 34668ce055deeb7c3ae18ee0445455954a6fceb2..86642fbc8c2c4361a36dfd6a517a9652543d928f 100644 --- a/src/EditorFeatures/CSharpTest/GenerateFromMembers/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.cs +++ b/src/EditorFeatures/CSharpTest/GenerateFromMembers/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.cs @@ -5,9 +5,7 @@ using Microsoft.CodeAnalysis.CodeStyle; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.CodeStyle; -using Microsoft.CodeAnalysis.CSharp.GenerateConstructorFromMembers; using Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings; -using Microsoft.CodeAnalysis.GenerateConstructorFromMembers; using Microsoft.CodeAnalysis.PickMembers; using Microsoft.CodeAnalysis.Test.Utilities; using Roslyn.Test.Utilities; diff --git a/src/EditorFeatures/VisualBasicTest/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.vb b/src/EditorFeatures/VisualBasicTest/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.vb index 41885967c853f24ccd0e6712f28daddcac63a2c9..2f2a2aa49aee8bceaebdab93ab166c2c909a813e 100644 --- a/src/EditorFeatures/VisualBasicTest/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.vb +++ b/src/EditorFeatures/VisualBasicTest/GenerateConstructorFromMembers/GenerateConstructorFromMembersTests.vb @@ -5,14 +5,13 @@ Imports Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings Imports Microsoft.CodeAnalysis.GenerateConstructorFromMembers Imports Microsoft.CodeAnalysis.Options Imports Microsoft.CodeAnalysis.PickMembers -Imports Microsoft.CodeAnalysis.VisualBasic.GenerateConstructorFromMembers Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.GenerateConstructorFromMembers Public Class GenerateConstructorFromMembersTests Inherits AbstractVisualBasicCodeActionTest Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, parameters As TestParameters) As CodeRefactoringProvider - Return New GenerateConstructorFromMembersVisualBasic(DirectCast(parameters.fixProviderData, IPickMembersService)) + Return New GenerateConstructorFromMembersCodeRefactoringProvider(DirectCast(parameters.fixProviderData, IPickMembersService)) End Function diff --git a/src/Features/CSharp/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCSharp.cs b/src/Features/CSharp/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCSharp.cs deleted file mode 100644 index a0856dd13e5cd2a1812d7c285163e4da4f4dc2f2..0000000000000000000000000000000000000000 --- a/src/Features/CSharp/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCSharp.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System.Composition; -using Microsoft.CodeAnalysis.CodeRefactorings; -using Microsoft.CodeAnalysis.GenerateConstructorFromMembers; -using Microsoft.CodeAnalysis.Options; -using Microsoft.CodeAnalysis.PickMembers; - -namespace Microsoft.CodeAnalysis.CSharp.GenerateConstructorFromMembers -{ - [ExportCodeRefactoringProvider(LanguageNames.CSharp, Name = PredefinedCodeRefactoringProviderNames.GenerateConstructorFromMembers), Shared] - [ExtensionOrder(Before = PredefinedCodeRefactoringProviderNames.GenerateEqualsAndGetHashCodeFromMembers)] - internal class GenerateConstructorFromMembersCSharp : AbstractGenerateConstructorFromMembersCodeRefactoringProvider - { - [ImportingConstructor] - public GenerateConstructorFromMembersCSharp() : this(null) - { - } - - /// - /// For testing purposes only. - /// - internal GenerateConstructorFromMembersCSharp(IPickMembersService pickMembersService_forTesting) - : base(pickMembersService_forTesting) - { - } - - protected override bool GetNullCheckOptionEnabled(DocumentOptionSet optionSet) - => optionSet.GetOption(GenerateConstructorFromMembersOptions.AddNullChecks); - } -} diff --git a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.ConstructorDelegatingCodeAction.cs b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.ConstructorDelegatingCodeAction.cs similarity index 95% rename from src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.ConstructorDelegatingCodeAction.cs rename to src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.ConstructorDelegatingCodeAction.cs index 1050302335e9faff02fbd8b537323c09e45820af..a3fae24e3aef57f976aa17ed9e9d6001506a7582 100644 --- a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.ConstructorDelegatingCodeAction.cs +++ b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.ConstructorDelegatingCodeAction.cs @@ -14,17 +14,17 @@ namespace Microsoft.CodeAnalysis.GenerateConstructorFromMembers { - internal partial class AbstractGenerateConstructorFromMembersCodeRefactoringProvider + internal partial class GenerateConstructorFromMembersCodeRefactoringProvider { private class ConstructorDelegatingCodeAction : CodeAction { - private readonly AbstractGenerateConstructorFromMembersCodeRefactoringProvider _service; + private readonly GenerateConstructorFromMembersCodeRefactoringProvider _service; private readonly Document _document; private readonly State _state; private readonly bool _addNullChecks; public ConstructorDelegatingCodeAction( - AbstractGenerateConstructorFromMembersCodeRefactoringProvider service, + GenerateConstructorFromMembersCodeRefactoringProvider service, Document document, State state, bool addNullChecks) diff --git a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.FieldDelegatingCodeAction.cs b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.FieldDelegatingCodeAction.cs similarity index 94% rename from src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.FieldDelegatingCodeAction.cs rename to src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.FieldDelegatingCodeAction.cs index bcc0e854da6329b17e8bbf97a1381efbc5a84eaf..4177faf06bff7037a94ecaae63b83e9eefccd736 100644 --- a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.FieldDelegatingCodeAction.cs +++ b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.FieldDelegatingCodeAction.cs @@ -13,17 +13,17 @@ namespace Microsoft.CodeAnalysis.GenerateConstructorFromMembers { - internal partial class AbstractGenerateConstructorFromMembersCodeRefactoringProvider + internal partial class GenerateConstructorFromMembersCodeRefactoringProvider { private class FieldDelegatingCodeAction : CodeAction { - private readonly AbstractGenerateConstructorFromMembersCodeRefactoringProvider _service; + private readonly GenerateConstructorFromMembersCodeRefactoringProvider _service; private readonly Document _document; private readonly State _state; private readonly bool _addNullChecks; public FieldDelegatingCodeAction( - AbstractGenerateConstructorFromMembersCodeRefactoringProvider service, + GenerateConstructorFromMembersCodeRefactoringProvider service, Document document, State state, bool addNullChecks) diff --git a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.GenerateConstructorWithDialogCodeAction.cs b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.GenerateConstructorWithDialogCodeAction.cs similarity index 94% rename from src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.GenerateConstructorWithDialogCodeAction.cs rename to src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.GenerateConstructorWithDialogCodeAction.cs index f2b25135efff94c54722c5a5b60f0f7d7eaa94b0..bc04fa5f90011ea031fcdd778b7698869455f5e5 100644 --- a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.GenerateConstructorWithDialogCodeAction.cs +++ b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.GenerateConstructorWithDialogCodeAction.cs @@ -12,13 +12,13 @@ namespace Microsoft.CodeAnalysis.GenerateConstructorFromMembers { - internal partial class AbstractGenerateConstructorFromMembersCodeRefactoringProvider : AbstractGenerateFromMembersCodeRefactoringProvider + internal partial class GenerateConstructorFromMembersCodeRefactoringProvider : AbstractGenerateFromMembersCodeRefactoringProvider { private class GenerateConstructorWithDialogCodeAction : CodeActionWithOptions { private readonly Document _document; private readonly INamedTypeSymbol _containingType; - private readonly AbstractGenerateConstructorFromMembersCodeRefactoringProvider _service; + private readonly GenerateConstructorFromMembersCodeRefactoringProvider _service; private readonly TextSpan _textSpan; private readonly ImmutableArray _viableMembers; private readonly ImmutableArray _pickMembersOptions; @@ -26,7 +26,7 @@ private class GenerateConstructorWithDialogCodeAction : CodeActionWithOptions public override string Title => FeaturesResources.Generate_constructor; public GenerateConstructorWithDialogCodeAction( - AbstractGenerateConstructorFromMembersCodeRefactoringProvider service, + GenerateConstructorFromMembersCodeRefactoringProvider service, Document document, TextSpan textSpan, INamedTypeSymbol containingType, ImmutableArray viableMembers, diff --git a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.State.cs b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.State.cs similarity index 94% rename from src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.State.cs rename to src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.State.cs index 7b5833be579ef7e623a6e9a44aea243672a9eebb..7d01b2cd93b9da14221431977fd236dba173c36e 100644 --- a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.State.cs +++ b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.State.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.GenerateConstructorFromMembers { - internal partial class AbstractGenerateConstructorFromMembersCodeRefactoringProvider + internal partial class GenerateConstructorFromMembersCodeRefactoringProvider { private class State { @@ -20,7 +20,7 @@ private class State public ImmutableArray Parameters { get; private set; } public static State TryGenerate( - AbstractGenerateConstructorFromMembersCodeRefactoringProvider service, + GenerateConstructorFromMembersCodeRefactoringProvider service, Document document, TextSpan textSpan, INamedTypeSymbol containingType, @@ -37,7 +37,7 @@ private class State } private bool TryInitialize( - AbstractGenerateConstructorFromMembersCodeRefactoringProvider service, + GenerateConstructorFromMembersCodeRefactoringProvider service, Document document, TextSpan textSpan, INamedTypeSymbol containingType, diff --git a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.cs b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.cs similarity index 91% rename from src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.cs rename to src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.cs index 46fc5715045ea850700ac6459b3bbe6c262e9808..b7f39acd4e84aa14dea852367a93b81fde944825 100644 --- a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersCodeRefactoringProvider.cs +++ b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersCodeRefactoringProvider.cs @@ -11,7 +11,6 @@ using Microsoft.CodeAnalysis.GenerateFromMembers; using Microsoft.CodeAnalysis.Internal.Log; using Microsoft.CodeAnalysis.LanguageServices; -using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.PickMembers; using Microsoft.CodeAnalysis.PooledObjects; using Microsoft.CodeAnalysis.Shared.Extensions; @@ -31,18 +30,24 @@ namespace Microsoft.CodeAnalysis.GenerateConstructorFromMembers /// something like "new MyType(x, y, z)", nor is it responsible for generating constructors /// in a derived type that delegate to a base type. Both of those are handled by other services. /// - internal abstract partial class AbstractGenerateConstructorFromMembersCodeRefactoringProvider : AbstractGenerateFromMembersCodeRefactoringProvider + [ExportCodeRefactoringProvider(LanguageNames.CSharp, LanguageNames.VisualBasic, + Name = PredefinedCodeRefactoringProviderNames.GenerateConstructorFromMembers), Shared] + [ExtensionOrder(Before = PredefinedCodeRefactoringProviderNames.GenerateEqualsAndGetHashCodeFromMembers)] + internal partial class GenerateConstructorFromMembersCodeRefactoringProvider : AbstractGenerateFromMembersCodeRefactoringProvider { private const string AddNullChecksId = nameof(AddNullChecksId); private readonly IPickMembersService _pickMembersService_forTesting; - protected abstract bool GetNullCheckOptionEnabled(DocumentOptionSet optionSet); + [ImportingConstructor] + public GenerateConstructorFromMembersCodeRefactoringProvider() : this(null) + { + } /// /// For testing purposes only. /// - internal AbstractGenerateConstructorFromMembersCodeRefactoringProvider(IPickMembersService pickMembersService_forTesting) + internal GenerateConstructorFromMembersCodeRefactoringProvider(IPickMembersService pickMembersService_forTesting) { _pickMembersService_forTesting = pickMembersService_forTesting; } @@ -117,7 +122,7 @@ private async Task HandleNonSelectionAsync(CodeRefactoringContext context) if (canAddNullCheck) { var options = await document.GetOptionsAsync(cancellationToken).ConfigureAwait(false); - var optionValue = GetNullCheckOptionEnabled(options); + var optionValue = options.GetOption(GenerateConstructorFromMembersOptions.AddNullChecks); pickMemberOptions.Add(new PickMembersOption( AddNullChecksId, diff --git a/src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersOptions.cs b/src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersOptions.cs similarity index 100% rename from src/Features/Core/Portable/GenerateConstructorFromMembers/AbstractGenerateConstructorFromMembersOptions.cs rename to src/Features/Core/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersOptions.cs diff --git a/src/Features/VisualBasic/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersVisualBasic.vb b/src/Features/VisualBasic/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersVisualBasic.vb deleted file mode 100644 index 40d07e6c07077f9572e5e0857362ba37574826f4..0000000000000000000000000000000000000000 --- a/src/Features/VisualBasic/Portable/GenerateConstructorFromMembers/GenerateConstructorFromMembersVisualBasic.vb +++ /dev/null @@ -1,30 +0,0 @@ -' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -Imports System.Composition -Imports Microsoft.CodeAnalysis.CodeRefactorings -Imports Microsoft.CodeAnalysis.GenerateConstructorFromMembers -Imports Microsoft.CodeAnalysis.Options -Imports Microsoft.CodeAnalysis.PickMembers - -Namespace Microsoft.CodeAnalysis.VisualBasic.GenerateConstructorFromMembers - - - - Friend Class GenerateConstructorFromMembersVisualBasic - Inherits AbstractGenerateConstructorFromMembersCodeRefactoringProvider - - - - Public Sub New() - Me.New(Nothing) - End Sub - - Public Sub New(pickMembersService_forTesting As IPickMembersService) - MyBase.New(pickMembersService_forTesting) - End Sub - - Protected Overrides Function GetNullCheckOptionEnabled(optionSet As DocumentOptionSet) As Boolean - Return False - End Function - End Class -End Namespace